Skip to content

Support for virtIO block #367

Support for virtIO block

Support for virtIO block #367

Workflow file for this run

name: CI
# @ivanv: TODO, should minisign Zig downloads
on:
pull_request:
push:
branches: [ "main" ]
jobs:
build_manual:
name: Build manual
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v25
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Create nix-shell and build PDF
run: nix-shell --pure -p texlive.combined.scheme-full pandoc librsvg --run "cd docs && pandoc MANUAL.md -o MANUAL.pdf"
- name: Upload manual PDF
uses: actions/upload-artifact@v4
with:
name: MANUAL
path: docs/MANUAL.pdf
build_linux_x86_64:
name: Build and run examples (Linux x86-64)
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Download Microkit SDK
run: ./ci/acquire_sdk.sh microkit-sdk.zip ${{ secrets.GITHUB_TOKEN }} linux-x86-64
shell: bash
- name: Extract Microkit SDK
run: unzip microkit-sdk.zip && tar -xf microkit-sdk-1.2.6.tar.gz
- name: Install dependencies (via apt)
# 'expect' is only a dependency for CI testing
run: sudo apt update && sudo apt install -y make clang lld llvm qemu-system-arm device-tree-compiler expect
- name: Install Zig
run: |
wget https://ziglang.org/builds/zig-linux-x86_64-0.12.0-dev.2150+63de8a598.tar.xz
tar xf zig-linux-x86_64-0.12.0-dev.2150+63de8a598.tar.xz
echo "${PWD}/zig-linux-x86_64-0.12.0-dev.2150+63de8a598/:$PATH" >> $GITHUB_PATH
- name: Install Rust
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- name: Build and run examples
run: ./ci/examples.sh ${PWD}/microkit-sdk-1.2.6
shell: bash
- name: Upload built system images
uses: actions/upload-artifact@v4
with:
# @ivanv: this needs to be fixed for the restructure
path: build_*/loader.img
build_macos_x86_64:
name: Build and run examples (macOS x86-64)
runs-on: macos-12
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Download Microkit SDK
run: ./ci/acquire_sdk.sh microkit-sdk.zip ${{ secrets.GITHUB_TOKEN }} macos-x86-64
shell: bash
- name: Extract Microkit SDK
run: unzip microkit-sdk.zip && tar -xf microkit-sdk-1.2.6.tar.gz
- name: Install dependencies (via Homebrew)
# 'expect' is only a dependency for CI testing
run: |
brew install llvm qemu dtc make expect
echo "/usr/local/opt/llvm/bin:$PATH" >> $GITHUB_PATH
- name: Install Zig
run: |
wget https://ziglang.org/builds/zig-macos-x86_64-0.12.0-dev.2150+63de8a598.tar.xz
tar xf zig-macos-x86_64-0.12.0-dev.2150+63de8a598.tar.xz
echo "${PWD}/zig-macos-x86_64-0.12.0-dev.2150+63de8a598/:$PATH" >> $GITHUB_PATH
- name: Install Rust
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- name: Build and run examples
run: ./ci/examples.sh ${PWD}/microkit-sdk-1.2.6
shell: bash
- name: Upload built system images
uses: actions/upload-artifact@v4
with:
path: build_*/loader.img
build_linux_x86_64_nix:
name: Build and run examples (Linux x86-64 via Nix)
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Download Microkit SDK
run: ./ci/acquire_sdk.sh microkit-sdk.zip ${{ secrets.GITHUB_TOKEN }} linux-x86-64
shell: bash
- name: Extract Microkit SDK
run: unzip microkit-sdk.zip && tar -xf microkit-sdk-1.2.6.tar.gz
- name: Install Nix
uses: cachix/install-nix-action@v25
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Build and run examples
run: nix-shell --pure --run "./ci/examples.sh ${PWD}/microkit-sdk-1.2.6"
- name: Upload built system images
uses: actions/upload-artifact@v4
with:
path: build_*/loader.img
build_macos_x86_64_nix:
name: Build and run examples (macOS x86-64 via Nix)
runs-on: macos-12
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Download Microkit SDK
run: ./ci/acquire_sdk.sh microkit-sdk.zip ${{ secrets.GITHUB_TOKEN }} macos-x86-64
shell: bash
- name: Extract Microkit SDK
run: unzip microkit-sdk.zip && tar -xf microkit-sdk-1.2.6.tar.gz
- name: Install Nix
uses: cachix/install-nix-action@v25
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Update Nix channel
run: nix-channel --update
- name: Build and run examples
run: nix-shell --pure --run "./ci/examples.sh ${PWD}/microkit-sdk-1.2.6"
- name: Upload built system images
uses: actions/upload-artifact@v4
with:
path: build_*/loader.img