Skip to content

Building virtio example with zig #756

Building virtio example with zig

Building virtio example with zig #756

Workflow file for this run

# Copyright 2024, UNSW
#
# SPDX-License-Identifier: BSD-2-Clause
name: CI
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: |
cd docs
nix-shell --run "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: |
wget https://github.com/seL4/microkit/releases/download/1.4.0/microkit-sdk-1.4.0-linux-x86-64.tar.gz
tar xf microkit-sdk-1.4.0-linux-x86-64.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 gcc-aarch64-linux-gnu
- name: Install Zig
run: |
wget https://ziglang.org/builds/zig-linux-x86_64-0.13.0.tar.xz
tar xf zig-linux-x86_64-0.13.0.tar.xz
echo "${PWD}/zig-linux-x86_64-0.13.0/:$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.4.0
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: |
wget https://github.com/seL4/microkit/releases/download/1.4.0/microkit-sdk-1.4.0-macos-x86-64.tar.gz
tar xf microkit-sdk-1.4.0-macos-x86-64.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.13.0.tar.xz
tar xf zig-macos-x86_64-0.13.0.tar.xz
echo "${PWD}/zig-macos-x86_64-0.13.0/:$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.4.0
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: |
wget https://github.com/seL4/microkit/releases/download/1.4.0/microkit-sdk-1.4.0-linux-x86-64.tar.gz
tar xf microkit-sdk-1.4.0-linux-x86-64.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 --run "./ci/examples.sh ${PWD}/microkit-sdk-1.4.0"
- 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