Some of the Github actions in this repository require secrets for access to hardware test or other compute infrastructure, or for deployment. When these are run in a fork on GitHub they are safe, but generate annoying error messages. This commit adds tests in the relevant actions whether they are run from the seL4 org or not, and skips the action when they are run outside. This should make the remaining actions more useful on forks. Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
154 lines
3.9 KiB
YAML
154 lines
3.9 KiB
YAML
# Copyright 2021, Proofcraft Pty Ltd
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
# Deploy default.xml to sel4test-manifest after successful runs.
|
|
|
|
name: seL4Test
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
paths-ignore:
|
|
- '**.md'
|
|
|
|
# allow manual trigger
|
|
workflow_dispatch:
|
|
|
|
# allow explict trigger from other repos when dependencies have changed
|
|
repository_dispatch:
|
|
types: [deps-update]
|
|
|
|
jobs:
|
|
code:
|
|
name: Freeze Code
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
xml: ${{ steps.repo.outputs.xml }}
|
|
steps:
|
|
- id: repo
|
|
uses: seL4/ci-actions/repo-checkout@master
|
|
with:
|
|
manifest_repo: sel4test-manifest
|
|
manifest: master.xml
|
|
|
|
sim:
|
|
name: Simulation
|
|
needs: code
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
march: [armv7a, armv8a, nehalem, rv32imac, rv64imac]
|
|
compiler: [gcc, clang]
|
|
exclude:
|
|
- march: rv32imac
|
|
compiler: clang
|
|
- march: rv64imac
|
|
compiler: clang
|
|
steps:
|
|
- uses: seL4/ci-actions/sel4test-sim@master
|
|
with:
|
|
xml: ${{ needs.code.outputs.xml }}
|
|
march: ${{ matrix.march }}
|
|
compiler: ${{ matrix.compiler }}
|
|
|
|
hw-build:
|
|
name: HW Build
|
|
needs: code
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
march: [armv7a, armv8a, nehalem]
|
|
compiler: [gcc, clang]
|
|
include:
|
|
- march: rv64imac
|
|
compiler: gcc
|
|
steps:
|
|
- name: Build
|
|
uses: seL4/ci-actions/sel4test-hw@master
|
|
with:
|
|
xml: ${{ needs.code.outputs.xml }}
|
|
march: ${{ matrix.march }}
|
|
compiler: ${{ matrix.compiler }}
|
|
- name: Upload images
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: images-${{ matrix.march }}-${{ matrix.compiler }}
|
|
path: '*-images.tar.gz'
|
|
|
|
hw-run:
|
|
name: HW Run
|
|
if: ${{ github.repository_owner == 'seL4' }}
|
|
runs-on: ubuntu-latest
|
|
needs: [sim, hw-build]
|
|
strategy:
|
|
matrix:
|
|
# commented-out platforms hopefully available soon
|
|
platform:
|
|
- sabre
|
|
# - hikey
|
|
- imx8mm_evk
|
|
- odroid_c2
|
|
# - odroid_xu4
|
|
- am335x_boneblack
|
|
- tx2
|
|
# - rpi3
|
|
- zynqmp
|
|
compiler: [gcc, clang]
|
|
include:
|
|
- platform: pc99
|
|
compiler: gcc
|
|
mode: 32
|
|
- platform: pc99
|
|
compiler: gcc
|
|
mode: 64
|
|
- platform: pc99
|
|
compiler: clang
|
|
mode: 32
|
|
- platform: pc99
|
|
compiler: clang
|
|
mode: 64
|
|
# include:
|
|
# - platform: hifive
|
|
# compiler: gcc
|
|
# do not run concurrently with other workflows, but do run concurrently in the build matrix
|
|
concurrency: hw-run-${{ strategy.job-index }}
|
|
steps:
|
|
- name: Get machine queue
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: seL4/machine_queue
|
|
path: machine_queue
|
|
token: ${{ secrets.PRIV_REPO_TOKEN }}
|
|
- name: Get march
|
|
id: plat
|
|
uses: seL4/ci-actions/march-of-platform@master
|
|
with:
|
|
platform: ${{ matrix.platform }}
|
|
- name: Download image
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
name: images-${{ steps.plat.outputs.march }}-${{ matrix.compiler }}
|
|
- name: Run
|
|
uses: seL4/ci-actions/sel4test-hw-run@master
|
|
with:
|
|
platform: ${{ matrix.platform }}
|
|
compiler: ${{ matrix.compiler }}
|
|
mode: ${{ matrix.mode }}
|
|
index: $${{ strategy.job-index }}
|
|
env:
|
|
HW_SSH: ${{ secrets.HW_SSH }}
|
|
|
|
deploy:
|
|
name: Deploy manifest
|
|
if: ${{ github.repository_owner == 'seL4' }}
|
|
runs-on: ubuntu-latest
|
|
needs: [code, hw-run]
|
|
steps:
|
|
- name: Deploy
|
|
uses: seL4/ci-actions/manifest-deploy@master
|
|
with:
|
|
xml: ${{ needs.code.outputs.xml }}
|
|
manifest_repo: sel4test-manifest
|
|
env:
|
|
GH_SSH: ${{ secrets.CI_SSH }}
|