seL4/.github/workflows/sel4test-deploy.yml
Gerwin Klein e5791a76cb github: run actions with secrets only in seL4 org
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>
2021-10-18 14:47:07 +11:00

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 }}