From 3d1140b8fb3f6fc0cfbbb1935d279323f4eb603b Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 11:53:42 +1000 Subject: [PATCH 01/42] copy across deploy Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 125 +++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 000000000..ac42955c3 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,125 @@ +# Copyright 2021, Proofcraft Pty Ltd +# Copyright 2026, UNSW +# +# SPDX-License-Identifier: BSD-2-Clause + +# Deploy default.xml to microkit-manifest after successful runs. + +name: Deploy + +on: + push: + # TEMP: remove + branches: [main, julia/ci] + paths-ignore: + - '**.md' + + # allow manual trigger + workflow_dispatch: + + # allow explicit trigger from other repos when dependencies have changed + repository_dispatch: + types: [deps-update] + +jobs: + code: + name: Freeze Code + runs-on: ubuntu-latest + outputs: + xml: ${{ steps.repo.outputs.xml }} + steps: + - id: repo + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit + with: + manifest_repo: au-ts/microkit-manifest + manifest: main.xml + + sim: + name: Simulation + needs: code + runs-on: ubuntu-latest + strategy: + matrix: + march: [aarch64, x86_64, riscv64] + compiler: [gcc] + steps: + - uses: au-ts/seL4-ci-actions/microkit-sim@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + march: ${{ matrix.march }} + compiler: ${{ matrix.compiler }} + + hw-build: + name: HW Build + needs: code + runs-on: ubuntu-latest + strategy: + matrix: + march: [aarch64, x86_64, riscv64] + compiler: [gcc] + steps: + - name: Build + uses: au-ts/seL4-ci-actions/microkit-hw@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + march: ${{ matrix.march }} + compiler: ${{ matrix.compiler }} + - name: Upload images + uses: actions/upload-artifact@v4 + with: + name: images-${{ matrix.march }}-${{ matrix.compiler }} + path: '*-images.tar.gz' + + the_matrix: + name: Matrix + needs: hw-build + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.matrix.outputs.matrix }} + steps: + - id: matrix + uses: au-ts/seL4-ci-actions/microkit-hw-matrix@julia/microkit + + hw-run: + name: HW Run + if: ${{ github.repository_owner == 'au-ts' }} + runs-on: ubuntu-latest + needs: [sim, the_matrix] + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.the_matrix.outputs.matrix) }} + # do not run concurrently with other workflows, but do run concurrently in the build matrix + concurrency: hw-run-${{ strategy.job-index }} + steps: + - name: Get machine queue + uses: actions/checkout@v4 + with: + repository: seL4/machine_queue + path: machine_queue + - name: Download image + uses: actions/download-artifact@v4 + with: + name: images-${{ matrix.march }}-${{ matrix.compiler }} + - name: Run + uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit + with: + platform: ${{ matrix.platform }} + compiler: ${{ matrix.compiler }} + mode: ${{ matrix.mode }} + index: $${{ strategy.job-index }} + env: + HW_SSH: ${{ secrets.HW_SSH }} + + deploy: + name: Deploy manifest + if: ${{ github.repository_owner == 'au-ts' }} + runs-on: ubuntu-22.04 + needs: [code, hw-run] + steps: + - name: Deploy + uses: au-ts/seL4-ci-actions/manifest-deploy@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + manifest_repo: au-ts/microkit-manifest + env: + GH_SSH: ${{ secrets.CI_SSH }} From 24e68d51d0e4e7bc86eedcf1cb18eb1a5d307668 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 12:09:58 +1000 Subject: [PATCH 02/42] fix2 Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ac42955c3..e2adac153 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -32,6 +32,7 @@ jobs: uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: manifest_repo: au-ts/microkit-manifest + manifest_branch: main manifest: main.xml sim: @@ -121,5 +122,6 @@ jobs: with: xml: ${{ needs.code.outputs.xml }} manifest_repo: au-ts/microkit-manifest + manifest_branch: main env: GH_SSH: ${{ secrets.CI_SSH }} From 0139efbeb77b26461cbb3685bc617e6aecd3511f Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 14:40:19 +1000 Subject: [PATCH 03/42] new Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 35 ++++++++++++++++++++++++----------- .github/workflows/sdk.yaml | 29 +---------------------------- 2 files changed, 25 insertions(+), 39 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e2adac153..2160dc266 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -50,26 +50,39 @@ jobs: march: ${{ matrix.march }} compiler: ${{ matrix.compiler }} - hw-build: - name: HW Build + sdk-build: + name: SDK Build needs: code runs-on: ubuntu-latest - strategy: - matrix: - march: [aarch64, x86_64, riscv64] - compiler: [gcc] steps: - name: Build uses: au-ts/seL4-ci-actions/microkit-hw@julia/microkit with: xml: ${{ needs.code.outputs.xml }} - march: ${{ matrix.march }} - compiler: ${{ matrix.compiler }} - - name: Upload images + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml + + - name: Upload SDK (macos-aarch64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz + - name: Upload SDK (macos-x86-64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz + - name: Upload SDK (linux-aarch64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz + - name: Upload SDK (linux-x86-64) uses: actions/upload-artifact@v4 with: - name: images-${{ matrix.march }}-${{ matrix.compiler }} - path: '*-images.tar.gz' + name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz the_matrix: name: Matrix diff --git a/.github/workflows/sdk.yaml b/.github/workflows/sdk.yaml index 72451d6d0..42d167deb 100644 --- a/.github/workflows/sdk.yaml +++ b/.github/workflows/sdk.yaml @@ -45,34 +45,7 @@ jobs: ref: ${{ env.SEL4_VERSION }} path: seL4 - name: Install SDK dependencies - run: | - rustup install 1.94.0 - rustup default 1.94.0 - rustup target add x86_64-unknown-linux-musl - rustup component add rust-src --toolchain 1.94.0-x86_64-unknown-linux-gnu - rustup target add aarch64-unknown-none - rustup target add riscv64gc-unknown-none-elf - rustup target add x86_64-unknown-none - sudo apt update - sudo apt install software-properties-common - sudo add-apt-repository ppa:deadsnakes/ppa - sudo apt install \ - gcc-x86-64-linux-gnu \ - gcc-riscv64-unknown-elf \ - cmake pandoc device-tree-compiler ninja-build \ - texlive-latex-base texlive-latex-recommended \ - texlive-fonts-recommended texlive-fonts-extra \ - libxml2-utils \ - python3.12 python3-pip python3.12-venv \ - qemu-system-arm qemu-system-misc - python3.12 -m venv pyenv - ./pyenv/bin/pip install --upgrade pip setuptools wheel - ./pyenv/bin/pip install -r requirements.txt - - name: Install AArch64 GCC toolchain - run: | - wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz%3Frev%3D28d5199f6db34e5980aae1062e5a6703%26hash%3DF6F5604BC1A2BBAAEAC4F6E98D8DC35B - tar xf aarch64-toolchain.tar.gz - echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH + run: ./.github/install_ubuntu_deps.sh - name: Set version run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV - name: Build SDK (x86-64) From 6858e9a88016153296157620e1580fa026ee99c5 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 14:41:35 +1000 Subject: [PATCH 04/42] fixup Signed-off-by: Julia Vassiliki --- .github/install_ubuntu_deps.sh | 30 ++++++++++++++++++++++++++++++ .github/repo_checkout.sh | 14 ++++++++++++++ .github/workflows/deploy.yml | 2 +- 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100755 .github/install_ubuntu_deps.sh create mode 100755 .github/repo_checkout.sh diff --git a/.github/install_ubuntu_deps.sh b/.github/install_ubuntu_deps.sh new file mode 100755 index 000000000..8bfb722d0 --- /dev/null +++ b/.github/install_ubuntu_deps.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +rustup install 1.94.0 +rustup default 1.94.0 +rustup target add x86_64-unknown-linux-musl +rustup component add rust-src --toolchain 1.94.0-x86_64-unknown-linux-gnu +rustup target add aarch64-unknown-none +rustup target add riscv64gc-unknown-none-elf +rustup target add x86_64-unknown-none + +sudo apt update +sudo apt install software-properties-common +sudo add-apt-repository ppa:deadsnakes/ppa +sudo apt install \ + gcc-x86-64-linux-gnu \ + gcc-riscv64-unknown-elf \ + cmake pandoc device-tree-compiler ninja-build \ + texlive-latex-base texlive-latex-recommended \ + texlive-fonts-recommended texlive-fonts-extra \ + libxml2-utils \ + python3.12 python3-pip python3.12-venv \ + qemu-system-arm qemu-system-misc + +python3.12 -m venv pyenv +./pyenv/bin/pip install --upgrade pip setuptools wheel +./pyenv/bin/pip install -r requirements.txt + +wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz%3Frev%3D28d5199f6db34e5980aae1062e5a6703%26hash%3DF6F5604BC1A2BBAAEAC4F6E98D8DC35B +tar xf aarch64-toolchain.tar.gz +echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH diff --git a/.github/repo_checkout.sh b/.github/repo_checkout.sh new file mode 100755 index 000000000..30be1de95 --- /dev/null +++ b/.github/repo_checkout.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -e + +echo "::group::Setting up" +export REPO_MANIFEST="master.xml" +export MANIFEST_URL="https://github.com/seL4/sel4bench-manifest.git" +checkout-manifest.sh + +fetch-branches.sh +echo "::endgroup::" + +# start test +python3 /builds/build.py diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2160dc266..ce248dd6d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -86,7 +86,7 @@ jobs: the_matrix: name: Matrix - needs: hw-build + needs: sdk-build runs-on: ubuntu-latest outputs: matrix: ${{ steps.matrix.outputs.matrix }} From 46c4e209deb2719a999206e0819bb5b8687c6301 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 15:29:01 +1000 Subject: [PATCH 05/42] add run matrix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 114 ++++++++++++++++++++++------------- build_sdk.py | 27 ++++++++- 2 files changed, 97 insertions(+), 44 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ce248dd6d..d9435a830 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -28,12 +28,12 @@ jobs: outputs: xml: ${{ steps.repo.outputs.xml }} steps: - - id: repo - uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit - with: - manifest_repo: au-ts/microkit-manifest - manifest_branch: main - manifest: main.xml + - id: repo + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit + with: + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml sim: name: Simulation @@ -44,45 +44,50 @@ jobs: march: [aarch64, x86_64, riscv64] compiler: [gcc] steps: - - uses: au-ts/seL4-ci-actions/microkit-sim@julia/microkit - with: - xml: ${{ needs.code.outputs.xml }} - march: ${{ matrix.march }} - compiler: ${{ matrix.compiler }} + - uses: au-ts/seL4-ci-actions/microkit-sim@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + march: ${{ matrix.march }} + compiler: ${{ matrix.compiler }} sdk-build: name: SDK Build needs: code - runs-on: ubuntu-latest + runs-on: [self-hosted, macos, ARM64] steps: - - name: Build - uses: au-ts/seL4-ci-actions/microkit-hw@julia/microkit - with: - xml: ${{ needs.code.outputs.xml }} - manifest_repo: au-ts/microkit-manifest - manifest_branch: main - manifest: main.xml - - - name: Upload SDK (macos-aarch64) - uses: actions/upload-artifact@v4 - with: - name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 - path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz - - name: Upload SDK (macos-x86-64) - uses: actions/upload-artifact@v4 - with: - name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 - path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz - - name: Upload SDK (linux-aarch64) - uses: actions/upload-artifact@v4 - with: - name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 - path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz - - name: Upload SDK (linux-x86-64) - uses: actions/upload-artifact@v4 - with: - name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 - path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + - name: Checkout code + uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + - name: Get Nix dependencies + run: nix develop -c bash -c 'echo Hello World' + working-directory: ./microkit/ + - name: Set version + run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV + working-directory: ./microkit/ + - name: Build SDK + run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" + working-directory: ./microkit/ + - name: Upload SDK (macos-aarch64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz + - name: Upload SDK (macos-x86-64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz + - name: Upload SDK (linux-aarch64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz + - name: Upload SDK (linux-x86-64) + uses: actions/upload-artifact@v4 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 + path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz the_matrix: name: Matrix @@ -91,8 +96,14 @@ jobs: outputs: matrix: ${{ steps.matrix.outputs.matrix }} steps: - - id: matrix - uses: au-ts/seL4-ci-actions/microkit-hw-matrix@julia/microkit + - name: Checkout code + uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + - id: matrix + working-directory: ./microkit/ + run: | + python3 build_sdk.py --sel4=../seL4 --matrix hw-run: name: HW Run @@ -124,11 +135,28 @@ jobs: env: HW_SSH: ${{ secrets.HW_SSH }} + # Not used for HW Run, just to confirm it builds on Linux outside of Nix. + sdk-build-linux: + name: Build SDK (Linux x86_64) + runs-on: ubuntu-24.04 + needs: code + steps: + - name: Checkout code + uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + - name: Install SDK dependencies + run: ./.github/install_ubuntu_deps.sh + - name: Set version + run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV + - name: Build SDK (x86-64) + run: ./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" + deploy: name: Deploy manifest if: ${{ github.repository_owner == 'au-ts' }} runs-on: ubuntu-22.04 - needs: [code, hw-run] + needs: [code, hw-run, sdk-build-linux] steps: - name: Deploy uses: au-ts/seL4-ci-actions/manifest-deploy@julia/microkit diff --git a/build_sdk.py b/build_sdk.py index 5ff324b1f..98e13f986 100644 --- a/build_sdk.py +++ b/build_sdk.py @@ -18,7 +18,7 @@ import shutil from pathlib import Path from dataclasses import dataclass -from sys import executable +from sys import executable, stderr from tarfile import open as tar_open, TarInfo import platform as host_platform from enum import IntEnum @@ -870,6 +870,26 @@ def build_initialiser( dest.chmod(0o744) +def github_actions_matrix(compiler: str) -> None: + def gh_output(assgn: str) -> None: + """Set a GitHub action output variable""" + fname = environ.get("GITHUB_OUTPUT") + if not fname: + print("Warning: GITHUB_OUTPUT not set, wrote to github.output", file=stderr) + fname = "github.output" + with open(fname, "a") as file: + print(assgn, file=file) + + matrix = { + "include": [ + { "platform": board.name, "march": board.arch.to_str(), "compiler": compiler } + for board in SUPPORTED_BOARDS + ], + } + + gh_output("matrix=" + json.dumps(matrix)) + + def main() -> None: parser = ArgumentParser() parser.add_argument("--sel4", type=Path, required=True) @@ -884,6 +904,7 @@ def main() -> None: parser.add_argument("--skip-docs", action="store_true", help="Docs will not be built") parser.add_argument("--skip-tar", action="store_true", help="SDK and source tarballs will not be built") parser.add_argument("--release-packaging", action="store_true", help="All SDKs for distribution will be produced") + parser.add_argument("--matrix", action="store_true", help="Print out GitHub actions HW run matrix") # Read from the version file as unless someone has specified # a version, that is the source of truth with open("VERSION", "r") as f: @@ -895,6 +916,10 @@ def main() -> None: args = parser.parse_args() + if args.matrix: + github_actions_matrix("llvm" if args.llvm else "gcc") + return + global TRIPLE_AARCH64 global TRIPLE_RISCV global TRIPLE_X86_64 From e6c7abd5e22d942c9de5bf2ef900b4b47f1665f2 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 15:40:57 +1000 Subject: [PATCH 06/42] update Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 70 +++++++++++++++++++++++++----------- build_sdk.py | 33 +++++++++-------- 2 files changed, 69 insertions(+), 34 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d9435a830..bcdfad9aa 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -50,8 +50,9 @@ jobs: march: ${{ matrix.march }} compiler: ${{ matrix.compiler }} - sdk-build: - name: SDK Build + # TODO: go back to that ^^ + sdk-build-macos: + name: Build SDK (macOS, all targets) needs: code runs-on: [self-hosted, macos, ARM64] steps: @@ -68,6 +69,51 @@ jobs: - name: Build SDK run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" working-directory: ./microkit/ + # - name: Upload SDK (macos-aarch64) + # uses: actions/upload-artifact@v4 + # with: + # name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 + # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz + # - name: Upload SDK (macos-x86-64) + # uses: actions/upload-artifact@v4 + # with: + # name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 + # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz + # - name: Upload SDK (linux-aarch64) + # uses: actions/upload-artifact@v4 + # with: + # name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 + # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz + # - name: Upload SDK (linux-x86-64) + # uses: actions/upload-artifact@v4 + # with: + # name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 + # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + + # Not used for HW Run, just to confirm it builds on Linux outside of Nix. + # TODO: go back to that ^^ + sdk-build: + name: Build SDK (Linux x86_64) + runs-on: ubuntu-24.04 + needs: code + steps: + - name: Checkout code + uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + - name: Install SDK dependencies + run: ./.github/install_ubuntu_deps.sh + working-directory: ./microkit/ + - name: Set version + run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV + working-directory: ./microkit/ + - name: Build SDK (x86-64) + # TODO: remove maaxboard + run: ./pyenv/bin/python build_sdk.py --boards maaxboard --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" --release-packaging + working-directory: ./microkit/ + + + # TODO: go back to that ^^ - name: Upload SDK (macos-aarch64) uses: actions/upload-artifact@v4 with: @@ -89,6 +135,7 @@ jobs: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + the_matrix: name: Matrix needs: sdk-build @@ -103,7 +150,7 @@ jobs: - id: matrix working-directory: ./microkit/ run: | - python3 build_sdk.py --sel4=../seL4 --matrix + python3 build_sdk.py --sel4=../seL4 --matrix --boards maaxboard hw-run: name: HW Run @@ -135,23 +182,6 @@ jobs: env: HW_SSH: ${{ secrets.HW_SSH }} - # Not used for HW Run, just to confirm it builds on Linux outside of Nix. - sdk-build-linux: - name: Build SDK (Linux x86_64) - runs-on: ubuntu-24.04 - needs: code - steps: - - name: Checkout code - uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit - with: - xml: ${{ needs.code.outputs.xml }} - - name: Install SDK dependencies - run: ./.github/install_ubuntu_deps.sh - - name: Set version - run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV - - name: Build SDK (x86-64) - run: ./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" - deploy: name: Deploy manifest if: ${{ github.repository_owner == 'au-ts' }} diff --git a/build_sdk.py b/build_sdk.py index 98e13f986..1c206ed09 100644 --- a/build_sdk.py +++ b/build_sdk.py @@ -870,20 +870,24 @@ def build_initialiser( dest.chmod(0o744) -def github_actions_matrix(compiler: str) -> None: - def gh_output(assgn: str) -> None: - """Set a GitHub action output variable""" - fname = environ.get("GITHUB_OUTPUT") - if not fname: - print("Warning: GITHUB_OUTPUT not set, wrote to github.output", file=stderr) - fname = "github.output" - with open(fname, "a") as file: - print(assgn, file=file) +def gh_output(assgn: str) -> None: + """Set a GitHub action output variable""" + fname = environ.get("GITHUB_OUTPUT") + if not fname: + print("Warning: GITHUB_OUTPUT not set, wrote to github.output", file=stderr) + fname = "github.output" + with open(fname, "a") as file: + print(assgn, file=file) + + +def github_actions_matrix( + compiler: str, build_goals: list[tuple[BoardInfo, list[ConfigInfo]]] +) -> None: matrix = { "include": [ - { "platform": board.name, "march": board.arch.to_str(), "compiler": compiler } - for board in SUPPORTED_BOARDS + {"platform": board.name, "march": board.arch.to_str(), "compiler": compiler} + for (board, _) in build_goals ], } @@ -916,9 +920,6 @@ def main() -> None: args = parser.parse_args() - if args.matrix: - github_actions_matrix("llvm" if args.llvm else "gcc") - return global TRIPLE_AARCH64 global TRIPLE_RISCV @@ -957,6 +958,10 @@ def main() -> None: build_goals.append((board, elaborated_configs)) + if args.matrix: + github_actions_matrix("llvm" if args.llvm else "gcc", build_goals) + return + sel4_dir = args.sel4.expanduser() if not sel4_dir.exists(): raise Exception(f"sel4_dir: {sel4_dir} does not exist") From ce31ec8fc599bc4b9a9d00cdd704aa2cfd426970 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 15:41:36 +1000 Subject: [PATCH 07/42] fix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index bcdfad9aa..940ecdf48 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -186,7 +186,8 @@ jobs: name: Deploy manifest if: ${{ github.repository_owner == 'au-ts' }} runs-on: ubuntu-22.04 - needs: [code, hw-run, sdk-build-linux] + needs: [code, hw-run] + # needs: [code, hw-run, sdk-build-linux] steps: - name: Deploy uses: au-ts/seL4-ci-actions/manifest-deploy@julia/microkit From a9f87dd9e9df133a16498aa29fa00c641fc09bd4 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 15:56:52 +1000 Subject: [PATCH 08/42] update Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 940ecdf48..fadd03671 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -51,24 +51,24 @@ jobs: compiler: ${{ matrix.compiler }} # TODO: go back to that ^^ - sdk-build-macos: - name: Build SDK (macOS, all targets) - needs: code - runs-on: [self-hosted, macos, ARM64] - steps: - - name: Checkout code - uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit - with: - xml: ${{ needs.code.outputs.xml }} - - name: Get Nix dependencies - run: nix develop -c bash -c 'echo Hello World' - working-directory: ./microkit/ - - name: Set version - run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV - working-directory: ./microkit/ - - name: Build SDK - run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" - working-directory: ./microkit/ + # sdk-build-macos: + # name: Build SDK (macOS, all targets) + # needs: code + # runs-on: [self-hosted, macos, ARM64] + # steps: + # - name: Checkout code + # uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + # with: + # xml: ${{ needs.code.outputs.xml }} + # - name: Get Nix dependencies + # run: nix develop -c bash -c 'echo Hello World' + # working-directory: ./microkit/ + # - name: Set version + # run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV + # working-directory: ./microkit/ + # - name: Build SDK + # run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" + # working-directory: ./microkit/ # - name: Upload SDK (macos-aarch64) # uses: actions/upload-artifact@v4 # with: From c10722c7a583f21643d57c367be3520535c8406c Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:04:14 +1000 Subject: [PATCH 09/42] hi Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fadd03671..dcf3faa3a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -98,21 +98,27 @@ jobs: needs: code steps: - name: Checkout code - uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: xml: ${{ needs.code.outputs.xml }} - - name: Install SDK dependencies - run: ./.github/install_ubuntu_deps.sh + # needed for reasons... + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml + - name: Fetch tags + run: git fetch --tags working-directory: ./microkit/ - name: Set version run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV working-directory: ./microkit/ + - name: Install SDK dependencies + run: ./.github/install_ubuntu_deps.sh + working-directory: ./microkit/ - name: Build SDK (x86-64) # TODO: remove maaxboard run: ./pyenv/bin/python build_sdk.py --boards maaxboard --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" --release-packaging working-directory: ./microkit/ - # TODO: go back to that ^^ - name: Upload SDK (macos-aarch64) uses: actions/upload-artifact@v4 @@ -147,6 +153,10 @@ jobs: uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit with: xml: ${{ needs.code.outputs.xml }} + # needed for reasons... + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml - id: matrix working-directory: ./microkit/ run: | From f25e34fda8c4eaf127a0ed14078f56a2ff4a3d5f Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:13:00 +1000 Subject: [PATCH 10/42] fixes Signed-off-by: Julia Vassiliki --- .github/repo_checkout.sh | 14 -------------- {ci => .github}/sdk_version.sh | 4 +++- .github/workflows/deploy.yml | 2 +- 3 files changed, 4 insertions(+), 16 deletions(-) delete mode 100755 .github/repo_checkout.sh rename {ci => .github}/sdk_version.sh (77%) diff --git a/.github/repo_checkout.sh b/.github/repo_checkout.sh deleted file mode 100755 index 30be1de95..000000000 --- a/.github/repo_checkout.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -set -e - -echo "::group::Setting up" -export REPO_MANIFEST="master.xml" -export MANIFEST_URL="https://github.com/seL4/sel4bench-manifest.git" -checkout-manifest.sh - -fetch-branches.sh -echo "::endgroup::" - -# start test -python3 /builds/build.py diff --git a/ci/sdk_version.sh b/.github/sdk_version.sh similarity index 77% rename from ci/sdk_version.sh rename to .github/sdk_version.sh index 9c500cf14..48225aa55 100755 --- a/ci/sdk_version.sh +++ b/.github/sdk_version.sh @@ -14,5 +14,7 @@ if [[ $NUM_COMMITS -eq 0 ]]; then echo "$VERSION" else - echo "$VERSION.$NUM_COMMITS+$HEAD" + VERSION="$VERSION.$NUM_COMMITS+$HEAD" fi + +echo "SDK_VERSION=${VERSION}" >> $GITHUB_ENV diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index dcf3faa3a..77fda9cd7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -109,7 +109,7 @@ jobs: run: git fetch --tags working-directory: ./microkit/ - name: Set version - run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV + run: ./.github/sdk_version.sh working-directory: ./microkit/ - name: Install SDK dependencies run: ./.github/install_ubuntu_deps.sh From 4ffcffd5c76ad3c7793e4f9da1d3a16f313e9f64 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:17:56 +1000 Subject: [PATCH 11/42] debug Signed-off-by: Julia Vassiliki --- .github/sdk_version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/sdk_version.sh b/.github/sdk_version.sh index 48225aa55..acd5c0551 100755 --- a/.github/sdk_version.sh +++ b/.github/sdk_version.sh @@ -3,7 +3,7 @@ # Copyright 2024, UNSW # SPDX-License-Identifier: BSD-2-Clause -set -e +set -ex VERSION=`cat VERSION` LATEST_TAG=`git describe --tags --abbrev=0` @@ -17,4 +17,4 @@ else VERSION="$VERSION.$NUM_COMMITS+$HEAD" fi -echo "SDK_VERSION=${VERSION}" >> $GITHUB_ENV +echo "SDK_VERSION=${VERSION}" >> "${GITHUB_ENV}" From 36d82924abf4a4405bcbbfb8267201e9ef474b08 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:20:40 +1000 Subject: [PATCH 12/42] depth Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 77fda9cd7..42ca1d22d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -105,6 +105,8 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml + env: + REPO_DEPTH: 0 - name: Fetch tags run: git fetch --tags working-directory: ./microkit/ From 830712ff3d7cd5ee04e3dd01b4cbbafceefdce84 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:22:53 +1000 Subject: [PATCH 13/42] test Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 42ca1d22d..fa5ec320b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -105,10 +105,8 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml - env: - REPO_DEPTH: 0 - name: Fetch tags - run: git fetch --tags + run: git fetch --tags --unshallow working-directory: ./microkit/ - name: Set version run: ./.github/sdk_version.sh From 29e9ad05800c97fc9c04578f763508bed82c5691 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:27:46 +1000 Subject: [PATCH 14/42] fix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fa5ec320b..a90fa4fc9 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -116,7 +116,7 @@ jobs: working-directory: ./microkit/ - name: Build SDK (x86-64) # TODO: remove maaxboard - run: ./pyenv/bin/python build_sdk.py --boards maaxboard --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" --release-packaging + run: ./pyenv/bin/python build_sdk.py --boards maaxboard --sel4=../seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" --release-packaging working-directory: ./microkit/ # TODO: go back to that ^^ From dcbe241d27025ef8dcbb90c7777f3fc791ac844b Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:46:31 +1000 Subject: [PATCH 15/42] macos Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 94 +++++++++++++----------------------- 1 file changed, 34 insertions(+), 60 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a90fa4fc9..8856ca176 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -50,76 +50,24 @@ jobs: march: ${{ matrix.march }} compiler: ${{ matrix.compiler }} - # TODO: go back to that ^^ - # sdk-build-macos: - # name: Build SDK (macOS, all targets) - # needs: code - # runs-on: [self-hosted, macos, ARM64] - # steps: - # - name: Checkout code - # uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit - # with: - # xml: ${{ needs.code.outputs.xml }} - # - name: Get Nix dependencies - # run: nix develop -c bash -c 'echo Hello World' - # working-directory: ./microkit/ - # - name: Set version - # run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV - # working-directory: ./microkit/ - # - name: Build SDK - # run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" - # working-directory: ./microkit/ - # - name: Upload SDK (macos-aarch64) - # uses: actions/upload-artifact@v4 - # with: - # name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 - # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz - # - name: Upload SDK (macos-x86-64) - # uses: actions/upload-artifact@v4 - # with: - # name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 - # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz - # - name: Upload SDK (linux-aarch64) - # uses: actions/upload-artifact@v4 - # with: - # name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 - # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz - # - name: Upload SDK (linux-x86-64) - # uses: actions/upload-artifact@v4 - # with: - # name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 - # path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz - - # Not used for HW Run, just to confirm it builds on Linux outside of Nix. - # TODO: go back to that ^^ sdk-build: - name: Build SDK (Linux x86_64) - runs-on: ubuntu-24.04 + name: Build SDK (macOS, all targets) needs: code + runs-on: [self-hosted, macos, ARM64] steps: - name: Checkout code - uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit + uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit with: xml: ${{ needs.code.outputs.xml }} - # needed for reasons... - manifest_repo: au-ts/microkit-manifest - manifest_branch: main - manifest: main.xml - - name: Fetch tags - run: git fetch --tags --unshallow + - name: Get Nix dependencies + run: nix develop -c bash -c 'echo Hello World' working-directory: ./microkit/ - name: Set version - run: ./.github/sdk_version.sh - working-directory: ./microkit/ - - name: Install SDK dependencies - run: ./.github/install_ubuntu_deps.sh + run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV working-directory: ./microkit/ - - name: Build SDK (x86-64) - # TODO: remove maaxboard - run: ./pyenv/bin/python build_sdk.py --boards maaxboard --sel4=../seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" --release-packaging + - name: Build SDK + run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" working-directory: ./microkit/ - - # TODO: go back to that ^^ - name: Upload SDK (macos-aarch64) uses: actions/upload-artifact@v4 with: @@ -141,6 +89,32 @@ jobs: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + # Not used for HW Run, just to confirm it builds on Linux outside of Nix. + sdk-build-linux: + name: Build SDK (Linux x86_64) + runs-on: ubuntu-24.04 + needs: code + steps: + - name: Checkout code + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + # needed for reasons... + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml + - name: Fetch tags + run: git fetch --tags --unshallow + working-directory: ./microkit/ + - name: Set version + run: ./.github/sdk_version.sh + working-directory: ./microkit/ + - name: Install SDK dependencies + run: ./.github/install_ubuntu_deps.sh + working-directory: ./microkit/ + - name: Build SDK (x86-64) + run: ./pyenv/bin/python build_sdk.py--sel4=../seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" + working-directory: ./microkit/ the_matrix: name: Matrix From d45580fc0433ed7d6c2b68545bea7846cdb567d8 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:47:20 +1000 Subject: [PATCH 16/42] fix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8856ca176..76d869a6a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -124,7 +124,7 @@ jobs: matrix: ${{ steps.matrix.outputs.matrix }} steps: - name: Checkout code - uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: xml: ${{ needs.code.outputs.xml }} # needed for reasons... From 5153bac11c9a01e0df5090da2d6ee0db0e2abf42 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:48:48 +1000 Subject: [PATCH 17/42] fix2 Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 76d869a6a..b2d444c4a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -56,9 +56,13 @@ jobs: runs-on: [self-hosted, macos, ARM64] steps: - name: Checkout code - uses: au-ts/seL4-ci-actions/repo-checkout-xml@julia/microkit + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: xml: ${{ needs.code.outputs.xml }} + # needed for reasons... + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml - name: Get Nix dependencies run: nix develop -c bash -c 'echo Hello World' working-directory: ./microkit/ From 02095e8403bc9b724047ce1da6f00d821208ca8f Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:53:23 +1000 Subject: [PATCH 18/42] fix3 Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b2d444c4a..0a5453cfa 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -117,7 +117,7 @@ jobs: run: ./.github/install_ubuntu_deps.sh working-directory: ./microkit/ - name: Build SDK (x86-64) - run: ./pyenv/bin/python build_sdk.py--sel4=../seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" + run: ./pyenv/bin/python build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }}-linux-x86-64 --tool-target-triple="x86_64-unknown-linux-musl" working-directory: ./microkit/ the_matrix: From e772a7bc5c8a3d668cbe396319c4567585d7ba9a Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:54:51 +1000 Subject: [PATCH 19/42] fix4 Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0a5453cfa..a533abcd1 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -63,12 +63,14 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml + - name: Set version + run: | + git fetch --tags --unshallow + ./.github/sdk_version.sh + working-directory: ./microkit/ - name: Get Nix dependencies run: nix develop -c bash -c 'echo Hello World' working-directory: ./microkit/ - - name: Set version - run: echo "SDK_VERSION=$(./ci/sdk_version.sh)" >> $GITHUB_ENV - working-directory: ./microkit/ - name: Build SDK run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" working-directory: ./microkit/ @@ -107,11 +109,10 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml - - name: Fetch tags - run: git fetch --tags --unshallow - working-directory: ./microkit/ - name: Set version - run: ./.github/sdk_version.sh + run: | + git fetch --tags --unshallow + ./.github/sdk_version.sh working-directory: ./microkit/ - name: Install SDK dependencies run: ./.github/install_ubuntu_deps.sh From 719b26de30e717668efa7fa26640078270f624bb Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 16:56:40 +1000 Subject: [PATCH 20/42] build less Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a533abcd1..d46ba40e2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -72,7 +72,8 @@ jobs: run: nix develop -c bash -c 'echo Hello World' working-directory: ./microkit/ - name: Build SDK - run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" + # TODO: remove boards + run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --boards maaxboard --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" working-directory: ./microkit/ - name: Upload SDK (macos-aarch64) uses: actions/upload-artifact@v4 From 0d9809dd23b99989c363259ef29ad03d4051075c Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 17:32:34 +1000 Subject: [PATCH 21/42] update Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 6 ++---- build_sdk.py | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d46ba40e2..c6a5801bd 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -158,16 +158,14 @@ jobs: with: repository: seL4/machine_queue path: machine_queue - - name: Download image + - name: Download microkit SDK uses: actions/download-artifact@v4 with: - name: images-${{ matrix.march }}-${{ matrix.compiler }} + name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 - name: Run uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit with: platform: ${{ matrix.platform }} - compiler: ${{ matrix.compiler }} - mode: ${{ matrix.mode }} index: $${{ strategy.job-index }} env: HW_SSH: ${{ secrets.HW_SSH }} diff --git a/build_sdk.py b/build_sdk.py index 1c206ed09..6912a0a5d 100644 --- a/build_sdk.py +++ b/build_sdk.py @@ -886,7 +886,7 @@ def github_actions_matrix( matrix = { "include": [ - {"platform": board.name, "march": board.arch.to_str(), "compiler": compiler} + {"platform": board.name, "march": board.arch.to_str()} for (board, _) in build_goals ], } From ea863e18404913ae6ae63c4add614ef05f76c0b9 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 17:35:36 +1000 Subject: [PATCH 22/42] fix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c6a5801bd..a514427ba 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -34,6 +34,7 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml + use_venv: true sim: name: Simulation @@ -55,6 +56,8 @@ jobs: needs: code runs-on: [self-hosted, macos, ARM64] steps: + - name: clean work dir (because self hosted) + run: rm -rf ./* - name: Checkout code uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: @@ -63,6 +66,7 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml + use_venv: true - name: Set version run: | git fetch --tags --unshallow @@ -110,6 +114,7 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml + use_venv: true - name: Set version run: | git fetch --tags --unshallow @@ -137,6 +142,7 @@ jobs: manifest_repo: au-ts/microkit-manifest manifest_branch: main manifest: main.xml + use_venv: true - id: matrix working-directory: ./microkit/ run: | From c88757212c8a1dc5d1b0af24d35e7692714b6318 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Tue, 14 Apr 2026 18:17:08 +1000 Subject: [PATCH 23/42] hi Signed-off-by: Julia Vassiliki --- .github/sdk_version.sh | 1 + .github/workflows/deploy.yml | 24 ++++++++++++++++++++---- build_sdk.py | 9 ++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.github/sdk_version.sh b/.github/sdk_version.sh index acd5c0551..9f031c74b 100755 --- a/.github/sdk_version.sh +++ b/.github/sdk_version.sh @@ -18,3 +18,4 @@ else fi echo "SDK_VERSION=${VERSION}" >> "${GITHUB_ENV}" +echo "SDK_VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a514427ba..ea70f5c3f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -55,8 +55,10 @@ jobs: name: Build SDK (macOS, all targets) needs: code runs-on: [self-hosted, macos, ARM64] + outputs: + SDK_VERSION: ${{ steps.version.outputs.SDK_VERSION }} steps: - - name: clean work dir (because self hosted) + - name: clean work dir (because self hosted) (this doesn't actually work) run: rm -rf ./* - name: Checkout code uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit @@ -68,6 +70,7 @@ jobs: manifest: main.xml use_venv: true - name: Set version + id: version run: | git fetch --tags --unshallow ./.github/sdk_version.sh @@ -132,7 +135,8 @@ jobs: needs: sdk-build runs-on: ubuntu-latest outputs: - matrix: ${{ steps.matrix.outputs.matrix }} + gh_matrix: ${{ steps.matrix.outputs.gh_matrix }} + test_cases: ${{ steps.matrix.outputs.test_cases }} steps: - name: Checkout code uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit @@ -152,13 +156,24 @@ jobs: name: HW Run if: ${{ github.repository_owner == 'au-ts' }} runs-on: ubuntu-latest - needs: [sim, the_matrix] + needs: [sim, the_matrix, sdk-build] strategy: fail-fast: false - matrix: ${{ fromJson(needs.the_matrix.outputs.matrix) }} + matrix: ${{ fromJson(needs.the_matrix.outputs.gh_matrix) }} # do not run concurrently with other workflows, but do run concurrently in the build matrix concurrency: hw-run-${{ strategy.job-index }} + env: + SDK_VERSION: ${{ needs.sdk-build.outputs.SDK_VERSION }} steps: + - name: Checkout code + uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit + with: + xml: ${{ needs.code.outputs.xml }} + # needed for reasons... + manifest_repo: au-ts/microkit-manifest + manifest_branch: main + manifest: main.xml + use_venv: true - name: Get machine queue uses: actions/checkout@v4 with: @@ -174,6 +189,7 @@ jobs: platform: ${{ matrix.platform }} index: $${{ strategy.job-index }} env: + TEST_CASES: ${{ needs.the_matrix.outputs.test_cases }} HW_SSH: ${{ secrets.HW_SSH }} deploy: diff --git a/build_sdk.py b/build_sdk.py index 6912a0a5d..029e78a88 100644 --- a/build_sdk.py +++ b/build_sdk.py @@ -891,7 +891,14 @@ def github_actions_matrix( ], } - gh_output("matrix=" + json.dumps(matrix)) + test_cases = [ + { "platform": board.name, "march": board.arch.to_str(), "config": config.name } + for (board, configs) in build_goals + for config in configs + ] + + gh_output("gh_matrix=" + json.dumps(matrix)) + gh_output("test_cases=" + json.dumps(test_cases)) def main() -> None: From fd341ecb62b6995e9e81aa30685a7ca95643f429 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Wed, 15 Apr 2026 14:57:19 +1000 Subject: [PATCH 24/42] extract microkit sdk Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ea70f5c3f..1982bac27 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -183,6 +183,11 @@ jobs: uses: actions/download-artifact@v4 with: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 + - name: Extract microkit SDK + run: | + tar xzvf ./microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + tree ./ + echo "MICROKIT_SDK=$(pwd)" >> "${GITHUB_ENV}" - name: Run uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit with: From 9ec7310c6eeaca5defcbbf411ae92947a999809e Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Wed, 15 Apr 2026 15:13:17 +1000 Subject: [PATCH 25/42] setup microkit sdk env var Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1982bac27..b303ddfbe 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -186,8 +186,9 @@ jobs: - name: Extract microkit SDK run: | tar xzvf ./microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz - tree ./ - echo "MICROKIT_SDK=$(pwd)" >> "${GITHUB_ENV}" + export "MICROKIT_SDK=$(realpath ./microkit-sdk-${{ env.SDK_VERSION }}/)" + stat "${MICROKIT_SDK}" + echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" - name: Run uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit with: From 2a89186d00807fc0b62216c8e319a76cac84eb8e Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Wed, 15 Apr 2026 16:43:26 +1000 Subject: [PATCH 26/42] remove verbose Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b303ddfbe..b0a5104cb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -185,7 +185,7 @@ jobs: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 - name: Extract microkit SDK run: | - tar xzvf ./microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + tar xzf ./microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz export "MICROKIT_SDK=$(realpath ./microkit-sdk-${{ env.SDK_VERSION }}/)" stat "${MICROKIT_SDK}" echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" From 935726b1eb7c4d84191af2046ef533d43a756967 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Wed, 15 Apr 2026 17:46:48 +1000 Subject: [PATCH 27/42] split out builds Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 46 +++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b0a5104cb..983e1215a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -152,8 +152,8 @@ jobs: run: | python3 build_sdk.py --sel4=../seL4 --matrix --boards maaxboard - hw-run: - name: HW Run + hw-build: + name: HW Test Builds if: ${{ github.repository_owner == 'au-ts' }} runs-on: ubuntu-latest needs: [sim, the_matrix, sdk-build] @@ -161,7 +161,7 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.the_matrix.outputs.gh_matrix) }} # do not run concurrently with other workflows, but do run concurrently in the build matrix - concurrency: hw-run-${{ strategy.job-index }} + concurrency: hw-build-${{ strategy.job-index }} env: SDK_VERSION: ${{ needs.sdk-build.outputs.SDK_VERSION }} steps: @@ -174,11 +174,6 @@ jobs: manifest_branch: main manifest: main.xml use_venv: true - - name: Get machine queue - uses: actions/checkout@v4 - with: - repository: seL4/machine_queue - path: machine_queue - name: Download microkit SDK uses: actions/download-artifact@v4 with: @@ -189,6 +184,41 @@ jobs: export "MICROKIT_SDK=$(realpath ./microkit-sdk-${{ env.SDK_VERSION }}/)" stat "${MICROKIT_SDK}" echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" + - name: Install SDK dependencies + run: ./.github/install_ubuntu_deps.sh + - name: Build + uses: au-ts/seL4-ci-actions/microkit-hw-build@julia/microkit + with: + platform: ${{ matrix.platform }} + index: $${{ strategy.job-index }} + env: + TEST_CASES: ${{ needs.the_matrix.outputs.test_cases }} + - name: Upload test case builds + uses: actions/upload-artifact@v4 + with: + name: loader-img-${{ matrix.platform }} + path: '*.loader.img' + + hw-run: + name: HW Run + if: ${{ github.repository_owner == 'au-ts' }} + runs-on: ubuntu-latest + needs: [sim, the_matrix, hw-build] + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.the_matrix.outputs.gh_matrix) }} + # do not run concurrently with other workflows, but do run concurrently in the build matrix + concurrency: hw-run-${{ strategy.job-index }} + steps: + - name: Get machine queue + uses: actions/checkout@v4 + with: + repository: seL4/machine_queue + path: machine_queue + - name: Download test cases builds + uses: actions/download-artifact@v4 + with: + name: loader-img-${{ matrix.platform }} - name: Run uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit with: From ab2ed49c1408df4eb7231351056e652451f61aef Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Wed, 15 Apr 2026 17:54:36 +1000 Subject: [PATCH 28/42] fix ubuild dir Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 983e1215a..97747ec49 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -185,7 +185,9 @@ jobs: stat "${MICROKIT_SDK}" echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" - name: Install SDK dependencies + # TODO: install only the required build deps for platform based on march run: ./.github/install_ubuntu_deps.sh + working-directory: ./microkit/ - name: Build uses: au-ts/seL4-ci-actions/microkit-hw-build@julia/microkit with: From 08c343749506f7856712945b02e8037d8eae918b Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 10:51:21 +1000 Subject: [PATCH 29/42] todo Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 97747ec49..31cbb2941 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -36,6 +36,7 @@ jobs: manifest: main.xml use_venv: true + # TODO: This is a noop that vacuuously succeeds. We should fix that. sim: name: Simulation needs: code From 13eada3d6e70eb8af57de9b5e69c146aba5a1ec5 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 11:19:02 +1000 Subject: [PATCH 30/42] install less stuff Signed-off-by: Julia Vassiliki --- .github/install_march_build_deps.sh | 41 +++++++++++++++++++++++++++++ .github/install_ubuntu_deps.sh | 18 ++++++------- .github/workflows/deploy.yml | 3 +-- 3 files changed, 51 insertions(+), 11 deletions(-) create mode 100755 .github/install_march_build_deps.sh diff --git a/.github/install_march_build_deps.sh b/.github/install_march_build_deps.sh new file mode 100755 index 000000000..bf55bf725 --- /dev/null +++ b/.github/install_march_build_deps.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +if [[ -z "${NO_APT_UPDATE}" ]]; then + sudo apt-get update +fi + +march="$1" +shift + +do_aarch64() { + wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz%3Frev%3D28d5199f6db34e5980aae1062e5a6703%26hash%3DF6F5604BC1A2BBAAEAC4F6E98D8DC35B + tar xf aarch64-toolchain.tar.gz + echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH +} + +do_riscv64() { + sudo apt-get install -qq gcc-riscv64-unknown-elf +} + +do_x86_64() { + sudo apt-get install -qq gcc-x86-64-linux-gnu +} + +case "${march}" in + aarch64) + do_aarch64 + ;; + + riscv64) + do_riscv64 + ;; + + x86_64) + do_x86_64 + ;; + + *) + echo "Unknown or empty march value '${march}'" >&2 + exit 1 + ;; +esac diff --git a/.github/install_ubuntu_deps.sh b/.github/install_ubuntu_deps.sh index 8bfb722d0..a414641e4 100755 --- a/.github/install_ubuntu_deps.sh +++ b/.github/install_ubuntu_deps.sh @@ -8,12 +8,16 @@ rustup target add aarch64-unknown-none rustup target add riscv64gc-unknown-none-elf rustup target add x86_64-unknown-none -sudo apt update -sudo apt install software-properties-common +sudo apt-get update + +NO_APT_UPDATE=1 ./install_march_build_deps.sh aarch64 +NO_APT_UPDATE=1 ./install_march_build_deps.sh riscv64 +NO_APT_UPDATE=1 ./install_march_build_deps.sh x86_64 + +# sel4-only dependencies +sudo apt-get install -qq software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa -sudo apt install \ - gcc-x86-64-linux-gnu \ - gcc-riscv64-unknown-elf \ +sudo apt-get install -qq \ cmake pandoc device-tree-compiler ninja-build \ texlive-latex-base texlive-latex-recommended \ texlive-fonts-recommended texlive-fonts-extra \ @@ -24,7 +28,3 @@ sudo apt install \ python3.12 -m venv pyenv ./pyenv/bin/pip install --upgrade pip setuptools wheel ./pyenv/bin/pip install -r requirements.txt - -wget -O aarch64-toolchain.tar.gz https://sel4-toolchains.s3.us-east-2.amazonaws.com/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz%3Frev%3D28d5199f6db34e5980aae1062e5a6703%26hash%3DF6F5604BC1A2BBAAEAC4F6E98D8DC35B -tar xf aarch64-toolchain.tar.gz -echo "$(pwd)/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf/bin" >> $GITHUB_PATH diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 31cbb2941..0c1466546 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -186,8 +186,7 @@ jobs: stat "${MICROKIT_SDK}" echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" - name: Install SDK dependencies - # TODO: install only the required build deps for platform based on march - run: ./.github/install_ubuntu_deps.sh + run: ./.github/install_march_build_deps.sh ${{ matrix.march }} working-directory: ./microkit/ - name: Build uses: au-ts/seL4-ci-actions/microkit-hw-build@julia/microkit From 91573de002750145a3d4ab68bea7c829aaff117c Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 11:49:53 +1000 Subject: [PATCH 31/42] allow concurrent hw-build Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0c1466546..b6fb97328 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -161,8 +161,6 @@ jobs: strategy: fail-fast: false matrix: ${{ fromJson(needs.the_matrix.outputs.gh_matrix) }} - # do not run concurrently with other workflows, but do run concurrently in the build matrix - concurrency: hw-build-${{ strategy.job-index }} env: SDK_VERSION: ${{ needs.sdk-build.outputs.SDK_VERSION }} steps: From 176c1c7ac9ceac503f9e59ef7a4ab49c68183390 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 16:14:44 +1000 Subject: [PATCH 32/42] make tags better Signed-off-by: Julia Vassiliki --- .github/sdk_version.sh | 12 ++++++++---- .github/workflows/deploy.yml | 6 ++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/sdk_version.sh b/.github/sdk_version.sh index 9f031c74b..f72f95870 100755 --- a/.github/sdk_version.sh +++ b/.github/sdk_version.sh @@ -6,16 +6,20 @@ set -ex VERSION=`cat VERSION` -LATEST_TAG=`git describe --tags --abbrev=0` -NUM_COMMITS=`git rev-list --count $LATEST_TAG..HEAD` + HEAD=`git rev-parse --short HEAD` -if [[ $NUM_COMMITS -eq 0 ]]; -then +if ! LATEST_TAG=`git describe --tags --abbrev=0`; then + VERSION="$VERSION.unknown+$HEAD" +elif ! NUM_COMMITS=`git rev-list --count $LATEST_TAG..HEAD`; then + VERSION="$VERSION.unknown+$HEAD" +elif [[ $NUM_COMMITS -eq 0 ]]; then echo "$VERSION" else VERSION="$VERSION.$NUM_COMMITS+$HEAD" fi +echo "SDK Version is '${VERSION}'" + echo "SDK_VERSION=${VERSION}" >> "${GITHUB_ENV}" echo "SDK_VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b6fb97328..012b46e7f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -59,8 +59,8 @@ jobs: outputs: SDK_VERSION: ${{ steps.version.outputs.SDK_VERSION }} steps: - - name: clean work dir (because self hosted) (this doesn't actually work) - run: rm -rf ./* + - name: Clean build + run: rm -rf . - name: Checkout code uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: @@ -73,7 +73,6 @@ jobs: - name: Set version id: version run: | - git fetch --tags --unshallow ./.github/sdk_version.sh working-directory: ./microkit/ - name: Get Nix dependencies @@ -121,7 +120,6 @@ jobs: use_venv: true - name: Set version run: | - git fetch --tags --unshallow ./.github/sdk_version.sh working-directory: ./microkit/ - name: Install SDK dependencies From c718d8b5dcb0ec95afb2496a05a6e470266ea893 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 16:25:50 +1000 Subject: [PATCH 33/42] fix rm rf Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 012b46e7f..f80085afe 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -60,7 +60,9 @@ jobs: SDK_VERSION: ${{ steps.version.outputs.SDK_VERSION }} steps: - name: Clean build - run: rm -rf . + run: | + rm -rf "$GITHUB_WORKSPACE" + mkdir -p "$GITHUB_WORKSPACE" - name: Checkout code uses: au-ts/seL4-ci-actions/repo-checkout@julia/microkit with: From 3e269c2443b98d0de33251c790aa94e284f02b24 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 16:31:07 +1000 Subject: [PATCH 34/42] remove nodejs version warnings Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 16 ++++++++-------- .github/workflows/sdk.yaml | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f80085afe..e094b7290 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -85,22 +85,22 @@ jobs: run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --boards maaxboard --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" working-directory: ./microkit/ - name: Upload SDK (macos-aarch64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz - name: Upload SDK (macos-x86-64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz - name: Upload SDK (linux-aarch64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz - name: Upload SDK (linux-x86-64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 path: microkit/release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz @@ -174,7 +174,7 @@ jobs: manifest: main.xml use_venv: true - name: Download microkit SDK - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 - name: Extract microkit SDK @@ -194,7 +194,7 @@ jobs: env: TEST_CASES: ${{ needs.the_matrix.outputs.test_cases }} - name: Upload test case builds - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: loader-img-${{ matrix.platform }} path: '*.loader.img' @@ -211,12 +211,12 @@ jobs: concurrency: hw-run-${{ strategy.job-index }} steps: - name: Get machine queue - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: seL4/machine_queue path: machine_queue - name: Download test cases builds - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: loader-img-${{ matrix.platform }} - name: Run diff --git a/.github/workflows/sdk.yaml b/.github/workflows/sdk.yaml index 42d167deb..0234e980c 100644 --- a/.github/workflows/sdk.yaml +++ b/.github/workflows/sdk.yaml @@ -75,22 +75,22 @@ jobs: - name: Build SDK run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" - name: Upload SDK (macos-aarch64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 path: release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz - name: Upload SDK (macos-x86-64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 path: release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz - name: Upload SDK (linux-aarch64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 path: release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz - name: Upload SDK (linux-x86-64) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 path: release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz From ed5aae836a7a8514ad7e8a1208487aead5395120 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 16:32:30 +1000 Subject: [PATCH 35/42] fix relative path Signed-off-by: Julia Vassiliki --- .github/install_ubuntu_deps.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/install_ubuntu_deps.sh b/.github/install_ubuntu_deps.sh index a414641e4..4e30cb0a6 100755 --- a/.github/install_ubuntu_deps.sh +++ b/.github/install_ubuntu_deps.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + rustup install 1.94.0 rustup default 1.94.0 rustup target add x86_64-unknown-linux-musl @@ -10,9 +12,9 @@ rustup target add x86_64-unknown-none sudo apt-get update -NO_APT_UPDATE=1 ./install_march_build_deps.sh aarch64 -NO_APT_UPDATE=1 ./install_march_build_deps.sh riscv64 -NO_APT_UPDATE=1 ./install_march_build_deps.sh x86_64 +NO_APT_UPDATE=1 $SCRIPT_DIR/install_march_build_deps.sh aarch64 +NO_APT_UPDATE=1 $SCRIPT_DIR/install_march_build_deps.sh riscv64 +NO_APT_UPDATE=1 $SCRIPT_DIR/install_march_build_deps.sh x86_64 # sel4-only dependencies sudo apt-get install -qq software-properties-common From 8a360bb959e470af782caa103a4432c2f45580d2 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Thu, 16 Apr 2026 16:33:14 +1000 Subject: [PATCH 36/42] build everything Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e094b7290..c0f2592ad 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -82,7 +82,7 @@ jobs: working-directory: ./microkit/ - name: Build SDK # TODO: remove boards - run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --boards maaxboard --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" + run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=../seL4 --version ${{ env.SDK_VERSION }} --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --release-packaging" working-directory: ./microkit/ - name: Upload SDK (macos-aarch64) uses: actions/upload-artifact@v7 @@ -151,7 +151,7 @@ jobs: - id: matrix working-directory: ./microkit/ run: | - python3 build_sdk.py --sel4=../seL4 --matrix --boards maaxboard + python3 build_sdk.py --sel4=../seL4 --matrix hw-build: name: HW Test Builds From 95cf7c9ce503b6297636cc54e820d7c8827cbaae Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Fri, 17 Apr 2026 14:35:01 +1000 Subject: [PATCH 37/42] fi the matrix to only generated useful oens Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 18 ++++++++++++------ build_sdk.py | 35 +++++++++-------------------------- 2 files changed, 21 insertions(+), 32 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c0f2592ad..8f6487c86 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -148,10 +148,16 @@ jobs: manifest_branch: main manifest: main.xml use_venv: true - - id: matrix + - name: Get board matrix from microkit build_sdk working-directory: ./microkit/ run: | - python3 build_sdk.py --sel4=../seL4 --matrix + python3 build_sdk.py --sel4=../seL4 --matrix=../build_sdk_matrix.json + TEST_CASES+$(cat ../build_sdk_matrix.json) + echo "test_cases=${TEST_CASES}" >> "${GITHUB_OUTPUT}" + echo "TEST_CASES=${TEST_CASES}" >> "${GITHUB_ENV}" + # uses test cases env var + - id: matrix + uses: au-ts/seL4-ci-actions/microkit-hw-matrix@julia/microkit hw-build: name: HW Test Builds @@ -189,14 +195,14 @@ jobs: - name: Build uses: au-ts/seL4-ci-actions/microkit-hw-build@julia/microkit with: - platform: ${{ matrix.platform }} + board: ${{ matrix.board }} index: $${{ strategy.job-index }} env: TEST_CASES: ${{ needs.the_matrix.outputs.test_cases }} - name: Upload test case builds uses: actions/upload-artifact@v7 with: - name: loader-img-${{ matrix.platform }} + name: loader-img-${{ matrix.board }} path: '*.loader.img' hw-run: @@ -218,11 +224,11 @@ jobs: - name: Download test cases builds uses: actions/download-artifact@v8 with: - name: loader-img-${{ matrix.platform }} + name: loader-img-${{ matrix.board }} - name: Run uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit with: - platform: ${{ matrix.platform }} + board: ${{ matrix.board }} index: $${{ strategy.job-index }} env: TEST_CASES: ${{ needs.the_matrix.outputs.test_cases }} diff --git a/build_sdk.py b/build_sdk.py index 029e78a88..3947d9ed1 100644 --- a/build_sdk.py +++ b/build_sdk.py @@ -870,35 +870,18 @@ def build_initialiser( dest.chmod(0o744) -def gh_output(assgn: str) -> None: - """Set a GitHub action output variable""" - fname = environ.get("GITHUB_OUTPUT") - if not fname: - print("Warning: GITHUB_OUTPUT not set, wrote to github.output", file=stderr) - fname = "github.output" - with open(fname, "a") as file: - print(assgn, file=file) - - -def github_actions_matrix( - compiler: str, build_goals: list[tuple[BoardInfo, list[ConfigInfo]]] +def github_actions_board_matrix( + matrix_file: Path, build_goals: list[tuple[BoardInfo, list[ConfigInfo]]] ) -> None: - matrix = { - "include": [ - {"platform": board.name, "march": board.arch.to_str()} - for (board, _) in build_goals - ], - } - - test_cases = [ - { "platform": board.name, "march": board.arch.to_str(), "config": config.name } + board_matrix = [ + { "board": board.name, "march": board.arch.to_str(), "config": config.name } for (board, configs) in build_goals for config in configs ] - gh_output("gh_matrix=" + json.dumps(matrix)) - gh_output("test_cases=" + json.dumps(test_cases)) + with open(matrix_file, "w") as f: + json.dump(board_matrix, f) def main() -> None: @@ -915,7 +898,7 @@ def main() -> None: parser.add_argument("--skip-docs", action="store_true", help="Docs will not be built") parser.add_argument("--skip-tar", action="store_true", help="SDK and source tarballs will not be built") parser.add_argument("--release-packaging", action="store_true", help="All SDKs for distribution will be produced") - parser.add_argument("--matrix", action="store_true", help="Print out GitHub actions HW run matrix") + parser.add_argument("--matrix", type=Path, help="Print out elaborated configs to a matrix for GitHub actions") # Read from the version file as unless someone has specified # a version, that is the source of truth with open("VERSION", "r") as f: @@ -965,8 +948,8 @@ def main() -> None: build_goals.append((board, elaborated_configs)) - if args.matrix: - github_actions_matrix("llvm" if args.llvm else "gcc", build_goals) + if args.matrix is not None: + github_actions_board_matrix(args.matrix, build_goals) return sel4_dir = args.sel4.expanduser() From 3a42484d2fdece007bebba538021010f063aade4 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Fri, 17 Apr 2026 15:02:02 +1000 Subject: [PATCH 38/42] typo fix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8f6487c86..5db78ef4b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -152,7 +152,7 @@ jobs: working-directory: ./microkit/ run: | python3 build_sdk.py --sel4=../seL4 --matrix=../build_sdk_matrix.json - TEST_CASES+$(cat ../build_sdk_matrix.json) + TEST_CASES=$(cat ../build_sdk_matrix.json) echo "test_cases=${TEST_CASES}" >> "${GITHUB_OUTPUT}" echo "TEST_CASES=${TEST_CASES}" >> "${GITHUB_ENV}" # uses test cases env var From 255c34732342134d15890ce2cb446782b6819d4d Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Fri, 17 Apr 2026 16:01:54 +1000 Subject: [PATCH 39/42] move everything into the action Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 5db78ef4b..3b971afe7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -148,14 +148,6 @@ jobs: manifest_branch: main manifest: main.xml use_venv: true - - name: Get board matrix from microkit build_sdk - working-directory: ./microkit/ - run: | - python3 build_sdk.py --sel4=../seL4 --matrix=../build_sdk_matrix.json - TEST_CASES=$(cat ../build_sdk_matrix.json) - echo "test_cases=${TEST_CASES}" >> "${GITHUB_OUTPUT}" - echo "TEST_CASES=${TEST_CASES}" >> "${GITHUB_ENV}" - # uses test cases env var - id: matrix uses: au-ts/seL4-ci-actions/microkit-hw-matrix@julia/microkit From 25211ce6b150f5defc40ece17122d05dbdae7245 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Fri, 17 Apr 2026 17:22:11 +1000 Subject: [PATCH 40/42] extract sdk for the hw runs for x86 Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3b971afe7..54bda5de6 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -179,9 +179,8 @@ jobs: run: | tar xzf ./microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz export "MICROKIT_SDK=$(realpath ./microkit-sdk-${{ env.SDK_VERSION }}/)" - stat "${MICROKIT_SDK}" echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" - - name: Install SDK dependencies + - name: Install build dependencies run: ./.github/install_march_build_deps.sh ${{ matrix.march }} working-directory: ./microkit/ - name: Build @@ -217,6 +216,15 @@ jobs: uses: actions/download-artifact@v8 with: name: loader-img-${{ matrix.board }} + - name: Download microkit SDK + uses: actions/download-artifact@v8 + with: + name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 + - name: Extract microkit SDK + run: | + tar xzf ./microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz + export "MICROKIT_SDK=$(realpath ./microkit-sdk-${{ env.SDK_VERSION }}/)" + echo "MICROKIT_SDK=${MICROKIT_SDK}" >> "${GITHUB_ENV}" - name: Run uses: au-ts/seL4-ci-actions/microkit-hw-run@julia/microkit with: From 2303ece073b452b2773873d306a0c23ef2f1cc5f Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Mon, 20 Apr 2026 10:53:07 +1000 Subject: [PATCH 41/42] fix hw matrix Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 54bda5de6..937fbaa99 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -150,6 +150,10 @@ jobs: use_venv: true - id: matrix uses: au-ts/seL4-ci-actions/microkit-hw-matrix@julia/microkit + env: + # We don't actually care what this is set to, but for the files for + # each platform it expects this path to exist, so we set it up. + MICROKIT_SDK: /dummy-microkit-sdk-for-matrix hw-build: name: HW Test Builds From 62395706697fd5685262e9ba413cf71354beccb5 Mon Sep 17 00:00:00 2001 From: Julia Vassiliki Date: Mon, 20 Apr 2026 12:14:32 +1000 Subject: [PATCH 42/42] add SDK_VERSION env var to hw-run Signed-off-by: Julia Vassiliki --- .github/workflows/deploy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 937fbaa99..02cd3826a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -204,12 +204,14 @@ jobs: name: HW Run if: ${{ github.repository_owner == 'au-ts' }} runs-on: ubuntu-latest - needs: [sim, the_matrix, hw-build] + needs: [sim, the_matrix, hw-build, sdk-build] strategy: fail-fast: false matrix: ${{ fromJson(needs.the_matrix.outputs.gh_matrix) }} # do not run concurrently with other workflows, but do run concurrently in the build matrix concurrency: hw-run-${{ strategy.job-index }} + env: + SDK_VERSION: ${{ needs.sdk-build.outputs.SDK_VERSION }} steps: - name: Get machine queue uses: actions/checkout@v6