Add GPU-accelerated mutectcaller from Parabricks #222
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| pull_request_review: | |
| types: [submitted] | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| inputs: | |
| somatic: | |
| description: "Somatic full test" | |
| type: boolean | |
| default: false | |
| germline: | |
| description: "Germline full test" | |
| type: boolean | |
| default: false | |
| germline_ncbench_agilent: | |
| description: "Germline Agilent NCBench test" | |
| type: boolean | |
| default: false | |
| jobs: | |
| setup-matrix: | |
| name: Build test matrix | |
| if: github.repository == 'nf-core/sarek' && (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 | |
| outputs: | |
| matrix: ${{ steps.build-matrix.outputs.matrix }} | |
| steps: | |
| - name: Build matrix from inputs | |
| id: build-matrix | |
| run: | | |
| # All available profiles | |
| all='[ | |
| { | |
| "profile": "test_full_aws", | |
| "test": "somatic", | |
| "compute_env": "TOWER_COMPUTE_ENV", | |
| "workdir": "TOWER_BUCKET_AWS" | |
| }, | |
| { | |
| "profile": "test_full_germline_aws", | |
| "test": "germline", | |
| "compute_env": "TOWER_COMPUTE_ENV", | |
| "workdir": "TOWER_BUCKET_AWS" | |
| }, | |
| { | |
| "profile": "test_full_germline_ncbench_agilent", | |
| "test": "germline_ncbench_agilent", | |
| "compute_env": "TOWER_COMPUTE_ENV", | |
| "workdir": "TOWER_BUCKET_AWS" | |
| } | |
| ]' | |
| if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then | |
| # Filter to only selected profiles | |
| matrix=$(echo "$all" | jq -c '[.[] | select( | |
| (.test == "somatic" and ${{ inputs.somatic }}) or | |
| (.test == "germline" and ${{ inputs.germline }}) or | |
| (.test == "germline_ncbench_agilent" and ${{ inputs.germline_ncbench_agilent }}) | |
| )]') | |
| else | |
| # PR review or release: run all profiles | |
| matrix=$(echo "$all" | jq -c '.') | |
| fi | |
| echo "matrix={\"include\":$matrix}" >> "$GITHUB_OUTPUT" | |
| run-platform: | |
| needs: setup-matrix | |
| if: fromJson(needs.setup-matrix.outputs.matrix).include[0] != null | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix) }} | |
| name: Run ${{ matrix.profile }} | |
| 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 | |
| id: tower-launch | |
| uses: seqeralabs/action-tower-launch@51565b514bff1827cf34620de25d0055759f1fc9 # v2 | |
| with: | |
| run_name: sarek_${{ matrix.profile }} | |
| workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} | |
| access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} | |
| compute_env: ${{ secrets[matrix.compute_env] }} | |
| revision: ${{ steps.revision.outputs.revision }} | |
| workdir: ${{ secrets[matrix.workdir] }}/work/sarek/work-${{ steps.revision.outputs.revision }}/${{ matrix.profile }} | |
| parameters: | | |
| { | |
| "outdir": "${{ secrets[matrix.workdir] }}/sarek/results-${{ steps.revision.outputs.revision }}/${{ matrix.profile }}/" | |
| } | |
| nextflow_config: | | |
| plugins { | |
| id 'nf-slack@0.5.0' | |
| } | |
| slack { | |
| enabled = true | |
| bot { | |
| token = '${{ secrets.NFSLACK_BOT_TOKEN }}' | |
| channel = 'sarek_dev' | |
| } | |
| onStart { | |
| enabled = false | |
| } | |
| onComplete { | |
| message = ':white_check_mark: *sarek/${{ matrix.profile }}* completed successfully! :tada:' | |
| } | |
| onError { | |
| message = ':x: *sarek/${{ matrix.profile }}* failed :crying_cat_face:' | |
| } | |
| } | |
| profiles: ${{ matrix.profile }} | |
| - name: Comment Platform link on PR | |
| if: github.event_name == 'pull_request_review' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| gh pr comment ${{ github.event.pull_request.number }} \ | |
| --repo ${{ github.repository }} \ | |
| --body "Cloud test **${{ matrix.profile }}** launched on [Seqera Platform](${{ steps.tower-launch.outputs.workflowUrl }})" | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: Seqera Platform debug log file - ${{ matrix.profile }} | |
| path: | | |
| tower_action_*.log | |
| tower_action_*.json |