# 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' 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: [sim, the_matrix] strategy: 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@v2 with: repository: seL4/machine_queue path: machine_queue token: ${{ secrets.PRIV_REPO_TOKEN }} - name: Download image uses: actions/download-artifact@v2 with: name: images-${{ matrix.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 }}