Skip to content

examples/timer: remove duplicate variable from meta.py #2783

examples/timer: remove duplicate variable from meta.py

examples/timer: remove duplicate variable from meta.py #2783

Workflow file for this run

# Copyright 2024, UNSW
#
# SPDX-License-Identifier: BSD-2-Clause
# Build and test example code
name: Examples
on:
pull_request:
push:
branches: [ "main" ]
schedule:
# 19.37 AEST on a Thursday weekly
# i.e. 07.37 UTC on Thursday weekly.
# This is a random time as GitHub suggests non-hour-aligned times as their
# runners are busier at that time, and it has been scheduled to avoid
# conflicts with humans trying to use the boards.
- cron: '37 7 * * 4'
env:
MICROKIT_VERSION: 2.1.0
MICROKIT_URL: https://github.com/seL4/microkit/releases/download/2.1.0
SDFGEN_VERSION: 0.28.1
ZIG_VERSION: 0.15.1
jobs:
build_linux_x86_64:
name: Build (Linux x86-64)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download Microkit SDK
run: |
wget ${{ env.MICROKIT_URL }}/microkit-sdk-${{ env.MICROKIT_VERSION }}-linux-x86-64.tar.gz
tar xf microkit-sdk-${{ env.MICROKIT_VERSION }}-linux-x86-64.tar.gz
- name: Install dependencies (via apt)
run: sudo apt update && sudo apt install -y make llvm lld imagemagick device-tree-compiler
- name: Install Zig
uses: mlugg/[email protected]
with:
version: ${{ env.ZIG_VERSION }}
- name: Setup pyenv
run: |
python3 -m venv venv
./venv/bin/pip install --upgrade sdfgen==${{ env.SDFGEN_VERSION }}
- name: Build examples
run: ./ci/build.py ${PWD}/microkit-sdk-${{ env.MICROKIT_VERSION }} $(nproc)
shell: bash
env:
PYTHON: ${{ github.workspace }}/venv/bin/python
build_linux_x86_64_nix:
name: Build (Linux x86-64 Nix)
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Nix
uses: cachix/install-nix-action@v27
- name: Get Nix dependencies
run: nix develop -c bash -c 'echo Hello World'
- name: Build examples
run: nix develop --ignore-environment -c bash -c 'CI=1 ./ci/build.py $MICROKIT_SDK $(nproc)'
- name: Archive image artifacts
uses: actions/upload-artifact@v4
with:
name: loader-images
path: |
ci_build/**/loader.img
ci_build/**/sel4_32.elf
if-no-files-found: error
build_macos_arm64_nix:
name: Build (macOS ARM64 Nix)
runs-on: [self-hosted, macos, ARM64]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get Nix dependencies
run: nix develop -c bash -c 'echo Hello World'
- name: Build examples
run: nix develop --ignore-environment -c bash -c 'CI=1 ./ci/build.py $MICROKIT_SDK $(nproc)'
build_macos_arm64:
name: Build (macOS ARM64)
runs-on: macos-14
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download Microkit SDK
run: |
wget ${{ env.MICROKIT_URL }}/microkit-sdk-${{ env.MICROKIT_VERSION }}-macos-aarch64.tar.gz
tar xf microkit-sdk-${{ env.MICROKIT_VERSION }}-macos-aarch64.tar.gz
- name: Install dependencies (via Homebrew)
run: |
brew install llvm lld make imagemagick dtc
echo "/opt/homebrew/opt/llvm/bin:$PATH" >> $GITHUB_PATH
- name: Install Zig
uses: mlugg/[email protected]
with:
version: ${{ env.ZIG_VERSION }}
- name: Setup pyenv
run: |
python3.13 -m venv venv
./venv/bin/pip install --upgrade sdfgen==${{ env.SDFGEN_VERSION }}
- name: Build examples
run: python3.13 ./ci/build.py ${PWD}/microkit-sdk-${{ env.MICROKIT_VERSION }} $(nproc)
shell: bash
env:
PYTHON: ${{ github.workspace }}/venv/bin/python
run_qemu:
name: Run (QEMU)
runs-on: ubuntu-latest
needs: build_linux_x86_64_nix
steps:
- name: Checkout sDDF repository
uses: actions/checkout@v4
- name: Install dependencies (via apt)
run: |
sudo apt update
sudo apt-get install qemu-system-arm qemu-system-misc qemu-system-x86
- name: Download images
uses: actions/download-artifact@v4
with:
name: loader-images
path: ci_build
- name: Run tests
run: |
export PATH="$(pwd)/machine_queue":$PATH
exec ./ci/run.py --only-qemu
- name: Archive logs
if: always()
uses: actions/upload-artifact@v4
with:
name: ci-logs-qemu
path: ci_logs
if-no-files-found: error
run_hardware:
name: Run (hardware)
runs-on: ubuntu-latest
if: ${{ contains(github.event.pull_request.labels.*.name, 'hardware-test') ||
(github.event_name == 'schedule') }}
needs: build_linux_x86_64_nix
concurrency:
group: ${{ github.workflow }}-sddf-hardware-tests-${{ github.event.number }}-${{ strategy.job-index }}
cancel-in-progress: true
steps:
- name: Checkout sDDF repository
uses: actions/checkout@v4
- name: Get machine queue
uses: actions/checkout@v4
with:
repository: seL4/machine_queue
path: machine_queue
- name: Download images
uses: actions/download-artifact@v4
with:
name: loader-images
path: ci_build
- name: Setup machine queue SSH key
run: .github/workflows/setup_ssh_key.sh
env:
MACHINE_QUEUE_KEY: ${{ secrets.MACHINE_QUEUE_KEY }}
- name: Run tests
run: |
export PATH="$(pwd)/machine_queue":$PATH
# GitHub Actions is broken
# https://github.com/ringerc/github-actions-signal-handling-demo#why-child-process-tasks-dont-get-a-chance-to-clean-up-on-job-cancel
exec ./ci/run.py --no-only-qemu
- name: Archive logs
if: always()
uses: actions/upload-artifact@v4
with:
name: ci-logs-hardware
path: ci_logs
if-no-files-found: error