# Copyright 2021 Proofcraft Pty Ltd
#
# SPDX-License-Identifier: BSD-2-Clause

name: Proofs

on:
  pull_request_target:
    types: [labeled, synchronize]

jobs:
  cproof:
    name: C Proofs
    runs-on: ubuntu-latest
    # run on any normal trigger when the label exists, and run when the label is added
    # don't run again when other labels are added
    if: ${{ github.repository_owner == 'seL4' &&
            (github.event.action != 'labeled' &&
               contains(github.event.pull_request.labels.*.name, 'proof-test') ||
             github.event.action == 'labeled' && github.event.label.name == 'proof-test') }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - arch: ARM
            session: CRefine SimplExportAndRefine
          - arch: ARM_HYP
            session: CRefine
          - arch: RISCV64
            session: CRefine SimplExportAndRefine
          - arch: X64
            session: CRefine
    steps:
    - name: Proofs
      uses: seL4/ci-actions/aws-proofs@master
      with:
        L4V_ARCH: ${{ matrix.arch }}
        isa_branch: ts-2021
        session: ${{ matrix.session }}
        manifest: default.xml
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        AWS_SSH: ${{ secrets.AWS_SSH }}
        GH_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
    - name: Upload logs
      uses: actions/upload-artifact@v2
      with:
        name: logs-${{ matrix.arch }}
        path: logs.tar.xz
