# Copyright 2021, Proofcraft Pty Ltd # # SPDX-License-Identifier: BSD-2-Clause # Deploy default.xml to sel4test-manifest after successful runs. name: Deploy 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 build-matrix: name: Build Matrix runs-on: ubuntu-latest outputs: matrix: ${{ steps.matrix.outputs.matrix }} steps: - id: matrix uses: seL4/ci-actions/sel4test-hw-matrix@master with: matrix: build sim: name: Simulation needs: code runs-on: ubuntu-latest strategy: matrix: march: [armv7a, armv8a, nehalem, rv32imac, rv64imac] compiler: [gcc, 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, build-matrix] runs-on: ubuntu-latest strategy: matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} steps: - name: Build uses: seL4/ci-actions/sel4test-hw@master with: xml: ${{ needs.code.outputs.xml }} march: ${{ matrix.march }} compiler: ${{ matrix.compiler }} subgroup: ${{ matrix.subgroup }} - name: Upload images uses: actions/upload-artifact@v7 with: name: images-${{ matrix.march }}-${{ matrix.compiler }}${{ matrix.subgroup && format('-{0}', matrix.subgroup) }} path: '*-images.tar.gz' the_matrix: name: Matrix needs: hw-build runs-on: ubuntu-latest outputs: matrix: ${{ steps.matrix.outputs.matrix }} steps: - id: matrix uses: seL4/ci-actions/sel4test-hw-matrix@master hw-run: name: HW Run if: ${{ github.repository_owner == 'seL4' }} runs-on: ubuntu-latest needs: [the_matrix] strategy: fail-fast: false matrix: ${{ fromJson(needs.the_matrix.outputs.matrix) }} # 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@v6 with: repository: seL4/machine_queue path: machine_queue - name: Download image uses: actions/download-artifact@v8 with: name: images-${{ matrix.march }}-${{ matrix.compiler }}${{ matrix.subgroup && format('-{0}', matrix.subgroup) }} - 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-22.04 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 }}