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