Skip to content

add RTC and use HSE if possible #627

add RTC and use HSE if possible

add RTC and use HSE if possible #627

Workflow file for this run

on:
push:
branches:
- 'main'
pull_request:
merge_group:
workflow_dispatch:
name: Osiris CI
env:
CARGO_TERM_COLOR: always
TERM: xterm-256color
jobs:
container:
name: Build Container
runs-on: ubuntu-latest
permissions:
packages: write
outputs:
container_name: ${{ steps.set_output.outputs.container_name }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set container name as output
id: set_output
run: |
REPO=$(echo "${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]')
CONTAINER_NAME="ghcr.io/${REPO}/devcontainer:latest"
echo "container_name=$CONTAINER_NAME" >> $GITHUB_OUTPUT
echo "container_without_tag=ghcr.io/${REPO}/devcontainer" >> $GITHUB_OUTPUT
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: .devcontainer/Dockerfile
push: ${{ github.ref == 'refs/heads/main' }}
tags: ${{ steps.set_output.outputs.container_name }}
cache-from: type=registry,ref=${{ steps.set_output.outputs.container_name }}-cache
cache-to: type=registry,ref=${{ steps.set_output.outputs.container_name }}-cache,mode=max
checks:
name: ${{ matrix.task }} (${{ matrix.preset }})
runs-on: ubuntu-latest
needs: [container]
strategy:
fail-fast: false
matrix:
preset:
- stm32l4r5zi
task:
- build
- test
- verify
- docs
include:
- preset: stm32l4r5zi
config:
name: stm32l4r5zi_def
target: thumbv7em-none-eabi
container:
image: ${{ needs.container.outputs.container_name }}
permissions:
contents: read
packages: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Load config
run: just config load ${{ matrix.config.name }} --no-confirm
- name: Run task
run: just ${{ matrix.task }}
- name: Upload docs artifact
if: matrix.task == 'docs'
uses: actions/upload-artifact@v4
with:
name: docs-${{ matrix.preset }}
path: target/${{ matrix.config.target }}/doc
examples:
name: example ${{ matrix.example }} (${{ matrix.preset }})
runs-on: ubuntu-latest
needs: [container]
strategy:
fail-fast: false
matrix:
preset:
- stm32l4r5zi
example:
- hello-world
- gpio-button
- blinkyworld
include:
- preset: stm32l4r5zi
config:
name: stm32l4r5zi_def
target: thumbv7em-none-eabi
container:
image: ${{ needs.container.outputs.container_name }}
permissions:
contents: read
packages: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Load config
run: just config load ${{ matrix.config.name }} --no-confirm
- name: Build example
run: just example ${{ matrix.example }}
fmt:
name: Check formatting
runs-on: ubuntu-latest
needs: [container]
container:
image: ${{ needs.container.outputs.container_name }}
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Check formatting for all Cargo manifests
run: just fmt --check
deploy-docs:
name: Deploy the documentation online
runs-on: ubuntu-latest
needs: [checks]
if: github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
contents: read
pages: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
sparse-checkout: website
- name: Download docs
uses: actions/download-artifact@v4
with:
pattern: docs-*
path: website/docs
merge-multiple: false
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'website'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4