Add support for FPU flag for PDs #1266
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright 2023, UNSW | |
| # | |
| # SPDX-License-Identifier: BSD-2-Clause | |
| # It is to be noted that this CI workflow is temporary and simply attempts | |
| # to build (but not test) the SDK. It is only for the purposes of seeing | |
| # whether a particular commit has devastatingly broken the Microkit SDK | |
| name: SDK | |
| on: | |
| # Run the SDK CI on any activity on the main branch as well as on any pull | |
| # request activity (e.g when it is created and also when it is updated). | |
| pull_request: | |
| push: | |
| branches: [ "main" ] | |
| env: | |
| SEL4_VERSION: 14.0.0 | |
| # To reduce the load we cancel any older runs of this workflow for the current | |
| # PR. For deployment to the main branch, the workflow will run on each push, | |
| # and the `run_id` parameter will prevent cancellation. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || format('run-{0}', github.run_id) }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| build_linux: | |
| name: Build SDK (Linux x86-64, ARM64) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout Microkit repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-tags: true | |
| fetch-depth: 0 | |
| - name: Checkout seL4 repository | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: seL4/seL4 | |
| ref: ${{ env.SEL4_VERSION }} | |
| path: seL4 | |
| - name: Install SDK dependencies | |
| run: | | |
| rustup install 1.90.0 | |
| rustup default 1.90.0 | |
| rustup target add x86_64-unknown-linux-musl | |
| rustup component add rust-src --toolchain 1.90.0-x86_64-unknown-linux-gnu | |
| rustup target add aarch64-unknown-linux-musl | |
| rustup component add rust-src --toolchain 1.90.0-aarch64-unknown-linux-musl | |
| 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 | |
| - name: Set version | |
| run: echo "SDK_VERSION=$(./ci/dev_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" | |
| - name: Upload SDK (x86-64) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64 | |
| path: release/microkit-sdk-${{ env.SDK_VERSION }}-linux-x86-64.tar.gz | |
| - name: Build SDK (ARM64) | |
| run: ./pyenv/bin/python build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-linux-aarch64 --tool-target-triple="aarch64-unknown-linux-musl" | |
| - name: Upload SDK (ARM64) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64 | |
| path: release/microkit-sdk-${{ env.SDK_VERSION }}-linux-aarch64.tar.gz | |
| build_macos: | |
| name: Build SDK (macOS x86-64, ARM64) | |
| runs-on: [self-hosted, macos, ARM64] | |
| steps: | |
| - name: Checkout Microkit repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-tags: true | |
| fetch-depth: 0 | |
| - name: Checkout seL4 repository | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: seL4/seL4 | |
| ref: ${{ env.SEL4_VERSION }} | |
| path: seL4 | |
| - name: Get Nix dependencies | |
| run: nix develop -c bash -c 'echo Hello World' | |
| - name: Set version | |
| run: echo "SDK_VERSION=$(./ci/dev_version.sh)" >> $GITHUB_ENV | |
| - name: Build SDK (x86-64) | |
| run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-macos-x86-64 --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --tool-target-triple=x86_64-apple-darwin" | |
| - name: Upload SDK (x86-64) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64 | |
| path: release/microkit-sdk-${{ env.SDK_VERSION }}-macos-x86-64.tar.gz | |
| - name: Build SDK (ARM64) | |
| run: nix develop --ignore-environment -c bash -c "python3 build_sdk.py --sel4=seL4 --version ${{ env.SDK_VERSION }}-macos-aarch64 --gcc-toolchain-prefix-x86_64 x86_64-elf --gcc-toolchain-prefix-riscv64 riscv64-none-elf --tool-target-triple=aarch64-apple-darwin" | |
| - name: Upload SDK (ARM64) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64 | |
| path: release/microkit-sdk-${{ env.SDK_VERSION }}-macos-aarch64.tar.gz |