name: nf-core AWS full size tests
# This workflow is triggered on PRs opened against the main/master branch.
# It can be additionally triggered manually with GitHub actions workflow dispatch button.
# It runs the -profile 'test_full' on AWS batch

on:
  workflow_dispatch:
  pull_request_review:
    types: [submitted]
  release:
    types: [published]

jobs:
  run-platform:
    name: Run AWS full tests
    # run only if the PR is approved by at least 2 reviewers and against the master/main branch or manually triggered
    if: github.repository == 'nf-core/scdownstream' && github.event.review.state == 'approved' && (github.event.pull_request.base.ref == 'master' || github.event.pull_request.base.ref == 'main') || github.event_name == 'workflow_dispatch' || github.event_name == 'release'
    runs-on: ubuntu-latest
    steps:
      - name: Set revision variable
        id: revision
        run: |
          echo "revision=${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'release') && github.sha || 'dev' }}" >> "$GITHUB_OUTPUT"

      - name: Launch workflow via Seqera Platform
        uses: seqeralabs/action-tower-launch@51565b514bff1827cf34620de25d0055759f1fc9 # v2
        # TODO nf-core: You can customise AWS full pipeline tests as required
        # Add full size test data (but still relatively small datasets for few samples)
        # on the `test_full.config` test runs with only one set of parameters
        with:
          workspace_id: ${{ vars.TOWER_WORKSPACE_ID }}
          access_token: ${{ secrets.TOWER_ACCESS_TOKEN }}
          compute_env: ${{ vars.TOWER_COMPUTE_ENV }}
          revision: ${{ steps.revision.outputs.revision }}
          workdir: s3://${{ vars.AWS_S3_BUCKET }}/work/scdownstream/work-${{ steps.revision.outputs.revision }}
          nextflow_config: |
            plugins {
              id 'nf-slack@0.5.0'
            }
            slack {
              enabled = true
              bot {
                token = '${{ secrets.NFSLACK_BOT_TOKEN }}'
                channel = 'scdownstream'
              }
              onStart {
                enabled = false
              }
              onComplete {
                message = ':white_check_mark: *scdownstream/test_full* completed successfully! :tada:'
              }
              onError {
                message = ':x: *scdownstream/test_full* failed :crying_cat_face:'
              }
            }
          parameters: |
            {
              "outdir": "s3://${{ vars.AWS_S3_BUCKET }}/scdownstream/results-${{ steps.revision.outputs.revision }}"
            }
          profiles: test_full

      - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
        with:
          name: Seqera Platform debug log file
          path: |
            tower_action_*.log
            tower_action_*.json
