From 0b0bb55db6f53a62d1c2b3c674aada5a6c4f6d04 Mon Sep 17 00:00:00 2001 From: Gerwin Klein Date: Sat, 24 Oct 2026 19:20:29 +1100 Subject: [PATCH] github: set up correct tests for this repo This repo is not used by sel4test and not included in its manifest, which means the update logic of the existing workflows does not work and they fail. Instead add the CAmkES VM tests, which do use this repo. Signed-off-by: Gerwin Klein --- .github/workflows/camkes-vm-hw.yml | 107 ++++++++++++++++++++++++++++ .github/workflows/camkes-vm-sim.yml | 23 ++++++ .github/workflows/hw-tests.yml | 26 ------- .github/workflows/sel4test-sim.yml | 21 ------ 4 files changed, 130 insertions(+), 47 deletions(-) create mode 100644 .github/workflows/camkes-vm-hw.yml create mode 100644 .github/workflows/camkes-vm-sim.yml delete mode 100644 .github/workflows/hw-tests.yml delete mode 100644 .github/workflows/sel4test-sim.yml diff --git a/.github/workflows/camkes-vm-hw.yml b/.github/workflows/camkes-vm-hw.yml new file mode 100644 index 0000000..4cc101d --- /dev/null +++ b/.github/workflows/camkes-vm-hw.yml @@ -0,0 +1,107 @@ +# Copyright 2021, Proofcraft Pty Ltd +# +# SPDX-License-Identifier: BSD-2-Clause + +# camkes-vm-examples hardware builds and runs +# +# See camkes-vm-hw/builds.yml in the repo seL4/ci-actions for configs. + +name: CAmkES VM (HW) + +on: + # needs PR target for secrets access; guard by requiring label + pull_request_target: + types: [opened, reopened, synchronize, labeled] + +# downgrade permissions to read-only as you would have in a standard PR action +permissions: + contents: read + +# To reduce the load (especiually on the machine queue) we cancel any older runs +# of this workflow for the current PR. Such runs exist, if there were new pushes +# to the PR's branch without waiting for the workflow to finish. As a side +# effect, pushing new commits now becomes a convenient way to cancel all the +# older runs, e.g. if they are stuck and would only be stopped by the timeout +# eventually. +# Note that we could do the concurrency handling at a finer level, and only wrap +# the actual run on the hardware. But there seems not much gain in letting the +# older builds run, as these are usually obsolete with new pushes also. +concurrency: + group: ${{ github.workflow }}-pr-${{ github.event.number }} + cancel-in-progress: true + +jobs: + code: + name: Freeze Code + runs-on: ubuntu-latest + if: ${{ github.event_name == 'push' || + github.event_name == 'pull_request_target' && + github.event.action != 'labeled' && + (contains(github.event.pull_request.labels.*.name, 'hw-build') || + contains(github.event.pull_request.labels.*.name, 'hw-test')) || + github.event_name == 'pull_request_target' && + github.event.action == 'labeled' && + (github.event.label.name == 'hw-build' || + github.event.label.name == 'hw-test') }} + outputs: + xml: ${{ steps.repo.outputs.xml }} + steps: + - id: repo + uses: seL4/ci-actions/repo-checkout@master + with: + manifest_repo: camkes-vm-examples-manifest + manifest: master.xml + sha: ${{ github.event.pull_request.head.sha }} + + build: + name: Build + needs: code + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + march: [nehalem, armv7a, armv8a] + steps: + - uses: seL4/ci-actions/camkes-vm@master + with: + xml: ${{ needs.code.outputs.xml }} + march: ${{ matrix.march }} + - name: Upload images + uses: actions/upload-artifact@v7 + with: + name: images-${{ matrix.march }} + path: '*-images.tar.gz' + + run: + name: Hardware + runs-on: ubuntu-latest + needs: [build] + if: ${{ github.repository_owner == 'seL4' && + (github.event_name == 'push' || + github.event_name == 'pull_request_target' && + github.event.action != 'labeled' && + contains(github.event.pull_request.labels.*.name, 'hw-test') || + github.event_name == 'pull_request_target' && + github.event.action == 'labeled' && + github.event.label.name == 'hw-test') }} + strategy: + fail-fast: true + matrix: + march: [nehalem, armv7a, armv8a] + steps: + - name: Get machine queue + uses: actions/checkout@v6 + with: + repository: seL4/machine_queue + path: machine_queue + - name: Download image + uses: actions/download-artifact@v8 + with: + name: images-${{ matrix.march }} + - name: Run + uses: seL4/ci-actions/camkes-vm-hw@master + with: + march: ${{ matrix.march }} + index: ${{ strategy.job-index }} + env: + HW_SSH: ${{ secrets.HW_SSH }} diff --git a/.github/workflows/camkes-vm-sim.yml b/.github/workflows/camkes-vm-sim.yml new file mode 100644 index 0000000..f8850d9 --- /dev/null +++ b/.github/workflows/camkes-vm-sim.yml @@ -0,0 +1,23 @@ +# Copyright 2021, Proofcraft Pty Ltd +# +# SPDX-License-Identifier: BSD-2-Clause + +# Actions to run on pull requests + +name: Camkes VM (Simulation) + +on: + pull_request: + +jobs: + test: + name: Test + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + march: [nehalem, armv7a, armv8a] + steps: + - uses: seL4/ci-actions/camkes-vm@master + with: + march: ${{ matrix.march }} diff --git a/.github/workflows/hw-tests.yml b/.github/workflows/hw-tests.yml deleted file mode 100644 index 79673b7..0000000 --- a/.github/workflows/hw-tests.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2024, Proofcraft Pty Ltd -# -# SPDX-License-Identifier: BSD-2-Clause - -# sel4test and sel4bench hardware builds and runs -# -# See sel4test-hw/builds.yml and sel4bench-hw/builds.yml in the repo -# seL4/ci-actions for configs. - -name: HW - -on: - # needs PR target for secrets access; guard by requiring label - pull_request_target: - types: [synchronize, labeled] - -jobs: - sel4test: - name: seL4Test - uses: seL4/ci-actions/.github/workflows/sel4test-hw.yml@master - secrets: inherit - - sel4bench: - name: seL4Bench - uses: seL4/ci-actions/.github/workflows/sel4bench-hw.yml@master - secrets: inherit diff --git a/.github/workflows/sel4test-sim.yml b/.github/workflows/sel4test-sim.yml deleted file mode 100644 index aa431b9..0000000 --- a/.github/workflows/sel4test-sim.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2021, Proofcraft Pty Ltd -# -# SPDX-License-Identifier: BSD-2-Clause - -# sel4test simulation runs -# -# See sel4test-sim/builds.yml in the repo seL4/ci-actions for configs. - -name: seL4Test - -on: - pull_request: - paths-ignore: - - 'LICENSES/**' - - '*.md' - workflow_dispatch: - -jobs: - sim: - name: Sim - uses: seL4/ci-actions/.github/workflows/sel4test-sim.yml@master