Skip to content

Make queue implementation growable #130

Make queue implementation growable

Make queue implementation growable #130

Workflow file for this run

on:
push:
branches-ignore:
- "gh-readonly-queue/**"
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: |
BRANCH=$(echo "${GITHUB_REF}" | sed 's|refs/heads/||' | tr '[:upper:]' '[:lower:]')
REPO=$(echo "${GITHUB_REPOSITORY}" | tr '[:upper:]' '[:lower:]')
CONTAINER_NAME="ghcr.io/${REPO}/devcontainer:${BRANCH//\//-}"
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: .devcontainer
file: .devcontainer/Dockerfile
push: true
tags: ${{ steps.set_output.outputs.container_name }}
cache-from: |
type=registry,ref=${{ steps.set_output.outputs.container_name }}-cache
type=registry,ref=${{ steps.set_output.outputs.container_without_tag }}:main-cache
cache-to: type=registry,ref=${{ steps.set_output.outputs.container_name }}-cache,mode=max
test:
name: Testing
needs: [container]
runs-on: ubuntu-latest
container:
image: ${{ needs.container.outputs.container_name }}
options: --user root --privileged
permissions:
contents: read
issues: write
pull-requests: write
packages: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Run tests
run: make test
- name: Report code coverage
uses: xarantolus/github-actions-report-lcov@v5
with:
coverage-files: lcov.info
github-token: ${{ secrets.GITHUB_TOKEN }}
update-comment: true
fmt:
name: Check formatting
needs: [container]
runs-on: ubuntu-latest
container:
image: ${{ needs.container.outputs.container_name }}
options: --user root
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Check formatting for all Cargo manifests
run: make check-format
kani:
name: Kani verification
needs: [container]
runs-on: ubuntu-latest
container:
image: ${{ needs.container.outputs.container_name }}
options: --user root
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Run Kani
run: make verify
build-stm32-nucleo-l4r5zi:
name: Build for the STM32 Nucleo L4R5ZI
needs: [container]
runs-on: ubuntu-latest
container:
image: ${{ needs.container.outputs.container_name }}
options: --user root
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
run: make osiris