Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions .github/workflows/camkes-vm-hw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# Copyright 2021, Proofcraft Pty Ltd
#
# SPDX-License-Identifier: BSD-2-Clause

# camkes-vm-examples hardware builds and runs
#
# See camkes-vm-hw/builds.yml in the repo seL4/ci-actions for configs.

name: CAmkES VM (HW)

on:
# needs PR target for secrets access; guard by requiring label
pull_request_target:
types: [opened, reopened, synchronize, labeled]

# downgrade permissions to read-only as you would have in a standard PR action
permissions:
contents: read

# To reduce the load (especiually on the machine queue) we cancel any older runs
# of this workflow for the current PR. Such runs exist, if there were new pushes
# to the PR's branch without waiting for the workflow to finish. As a side
# effect, pushing new commits now becomes a convenient way to cancel all the
# older runs, e.g. if they are stuck and would only be stopped by the timeout
# eventually.
# Note that we could do the concurrency handling at a finer level, and only wrap
# the actual run on the hardware. But there seems not much gain in letting the
# older builds run, as these are usually obsolete with new pushes also.
concurrency:
group: ${{ github.workflow }}-pr-${{ github.event.number }}
cancel-in-progress: true

jobs:
code:
name: Freeze Code
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' ||
github.event_name == 'pull_request_target' &&
github.event.action != 'labeled' &&
(contains(github.event.pull_request.labels.*.name, 'hw-build') ||
contains(github.event.pull_request.labels.*.name, 'hw-test')) ||
github.event_name == 'pull_request_target' &&
github.event.action == 'labeled' &&
(github.event.label.name == 'hw-build' ||
github.event.label.name == 'hw-test') }}
outputs:
xml: ${{ steps.repo.outputs.xml }}
steps:
- id: repo
uses: seL4/ci-actions/repo-checkout@master
with:
manifest_repo: camkes-vm-examples-manifest
manifest: master.xml
sha: ${{ github.event.pull_request.head.sha }}

build:
name: Build
needs: code
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
march: [nehalem, armv7a, armv8a]
steps:
- uses: seL4/ci-actions/camkes-vm@master
with:
xml: ${{ needs.code.outputs.xml }}
march: ${{ matrix.march }}
- name: Upload images
uses: actions/upload-artifact@v7
with:
name: images-${{ matrix.march }}
path: '*-images.tar.gz'

run:
name: Hardware
runs-on: ubuntu-latest
needs: [build]
if: ${{ github.repository_owner == 'seL4' &&
(github.event_name == 'push' ||
github.event_name == 'pull_request_target' &&
github.event.action != 'labeled' &&
contains(github.event.pull_request.labels.*.name, 'hw-test') ||
github.event_name == 'pull_request_target' &&
github.event.action == 'labeled' &&
github.event.label.name == 'hw-test') }}
strategy:
fail-fast: true
matrix:
march: [nehalem, armv7a, armv8a]
steps:
- name: Get machine queue
uses: actions/checkout@v6
with:
repository: seL4/machine_queue
path: machine_queue
- name: Download image
uses: actions/download-artifact@v8
with:
name: images-${{ matrix.march }}
- name: Run
uses: seL4/ci-actions/camkes-vm-hw@master
with:
march: ${{ matrix.march }}
index: ${{ strategy.job-index }}
env:
HW_SSH: ${{ secrets.HW_SSH }}
23 changes: 23 additions & 0 deletions .github/workflows/camkes-vm-sim.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2021, Proofcraft Pty Ltd
#
# SPDX-License-Identifier: BSD-2-Clause

# Actions to run on pull requests

name: Camkes VM (Simulation)

on:
pull_request:

jobs:
test:
name: Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
march: [nehalem, armv7a, armv8a]
steps:
- uses: seL4/ci-actions/camkes-vm@master
with:
march: ${{ matrix.march }}
26 changes: 0 additions & 26 deletions .github/workflows/hw-tests.yml

This file was deleted.

21 changes: 0 additions & 21 deletions .github/workflows/sel4test-sim.yml

This file was deleted.

Loading