Skip to content

Restructure the code into a library #210

Restructure the code into a library

Restructure the code into a library #210

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 VMM repository
uses: actions/checkout@v3
- name: Install pandoc/latex via apt
run: sudo apt update && sudo apt install -y pandoc texlive-latex-base texlive-fonts-recommended texlive-formats-extra
- name: Convert manual from Markdown to PDF
run: pandoc docs/MANUAL.md -f gfm -o MANUAL.pdf
- name: Upload manual PDF
uses: actions/upload-artifact@v3
with:
name: MANUAL
path: MANUAL.pdf
build_linux_x86_64:
name: Build and run examples (Linux x86-64)
runs-on: ubuntu-20.04
steps:
- name: Checkout VMM repository
uses: actions/checkout@v3
- 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 VMM 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/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz
tar xf zig-linux-x86_64-0.11.0.tar.xz
echo "${PWD}/zig-linux-x86_64-0.11.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.2.6
shell: bash
- name: Upload built system images
uses: actions/upload-artifact@v3
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 VMM repository
uses: actions/checkout@v3
- 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 VMM 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/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz
tar xf zig-macos-x86_64-0.11.0.tar.xz
echo "${PWD}/zig-macos-x86_64-0.11.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.2.6
shell: bash
- name: Upload built system images
uses: actions/upload-artifact@v3
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 VMM repository
uses: actions/checkout@v3
- 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@v22
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@v3
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 VMM repository
uses: actions/checkout@v3
- 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@v22
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@v3
with:
path: build_*/loader.img