| # Copyright 2021, Proofcraft Pty Ltd |
| # |
| # SPDX-License-Identifier: BSD-2-Clause |
| |
| # CAmkES regression tests |
| |
| name: CAmkES |
| |
| 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: camkes-manifest |
| manifest: master.xml |
| |
| build: |
| name: Build |
| needs: code |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| platform: |
| # - ODROID_XU |
| - ODROID_XU4 |
| - PC99 |
| # - TX1 |
| - TX2 |
| - IMX8MM_EVK |
| # - IMX8MQ_EVK |
| steps: |
| - uses: seL4/ci-actions/camkes-test@master |
| with: |
| xml: ${{ needs.code.outputs.xml }} |
| platform: ${{ matrix.platform }} |
| - name: Upload images |
| uses: actions/upload-artifact@v2 |
| with: |
| name: images-${{ matrix.platform }} |
| path: '*-images.tar.gz' |
| |
| sim: |
| name: Simulate |
| needs: code |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| platform: [sim] |
| name: [sabre, ia32, x86_64, cakeml_1, cakeml_2, spike64_1, spike64_2] |
| steps: |
| - uses: seL4/ci-actions/camkes-test@master |
| with: |
| xml: ${{ needs.code.outputs.xml }} |
| platform: ${{ matrix.platform }} |
| name: ${{ matrix.name }} |
| |
| hw-run: |
| name: Hardware |
| runs-on: ubuntu-latest |
| needs: [build] # , sim] |
| strategy: |
| matrix: |
| platform: |
| # - ODROID_XU |
| - ODROID_XU4 |
| - PC99 |
| # - TX1 |
| - TX2 |
| - IMX8MM_EVK |
| # - IMX8MQ_EVK |
| # do not run concurrently with other workflows, but do run concurrently in the build matrix |
| concurrency: camkes-hw-${{ 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.platform }} |
| - name: Run |
| uses: seL4/ci-actions/camkes-hw@master |
| with: |
| platform: ${{ matrix.platform }} |
| index: $${{ strategy.job-index }} |
| env: |
| HW_SSH: ${{ secrets.HW_SSH }} |
| |
| deploy: |
| name: Deploy manifest |
| 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: camkes-manifest |
| env: |
| GH_SSH: ${{ secrets.CI_SSH }} |