From 779e1433e05bce99652d0e2235477f53280141a1 Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 14 Nov 2024 10:47:50 -0500 Subject: [PATCH 01/18] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index fbe40eea..c548ad37 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -27,7 +27,7 @@ Closes #XXX - [ ] Follow the parameters requirements. - [ ] Follow the input/output options guidelines. - [ ] Add a resource `label`. -- [ ] Use Jfrog if possible to fulfil software requirements. +- [ ] Use Jfrog if possible to fulfill software requirements. - Ensure that the test works with either Docker / Singularity. Conda CI tests can be quite flaky: - For modules: - [ ] `nf-core modules --git-remote https://github.com/mskcc-omics-workflows/modules.git -b test --profile docker` From b2dd6f80c910aa1c9925a2c8929596558820e6ab Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 13:18:01 -0500 Subject: [PATCH 02/18] Update main.nf --- modules/msk/gbcms/main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 5a0ebbd3..044b4e4b 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -11,6 +11,7 @@ process GBCMS { path(fastafai) output: + // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From a47b343e97eb5acb57474ee55bf6428ea418b926 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 18:19:03 +0000 Subject: [PATCH 03/18] Update CODEOWNERS file --- .github/CODEOWNERS | 72 +++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6947500f..08db581a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,38 +1,38 @@ # Review from a member of the review-team is required * @mskcc-omics-workflows/reviewers -./modules/msk/custom/splitfastqbylane/** @anoronh4 @mskcc-omics-workflows/reviewers -./modules/msk/facets/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/gatk4/applybqsr/** @yocra3 @FriederikeHanssen @mskcc-omics-workflows/reviewers -./modules/msk/gbcms/** @buehlere @mskcc-omics-workflows/reviewers -./modules/msk/genomenexus/annotationpipeline/** @rnaidu @mskcc-omics-workflows/reviewers -./modules/msk/genomenexus/vcf2maf/** @rnaidu @mskcc-omics-workflows/reviewers -./modules/msk/genotypevariants/all/** @buehlere @mskcc-omics-workflows/reviewers -./modules/msk/mutect1/** @rnaidu @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenediting/aligntoiedb/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenediting/computefitness/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenutils/convertannotjson/** @johnoooh @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenutils/formatnetmhcpan/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenutils/generatehlastring/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenutils/generatemutfasta/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/neoantigenutils/neoantigeninput/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/neosv/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/netmhc3/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/netmhcpan4/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/netmhcstabpan/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/phylowgs/createinput/** @pintoa1-mskcc @mskcc-omics-workflows/reviewers -./modules/msk/phylowgs/multievolve/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/phylowgs/parsecnvs/** @pintoa1-mskcc @mskcc-omics-workflows/reviewers -./modules/msk/phylowgs/writeresults/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/polysolver/** @anoronh4 @mskcc-omics-workflows/reviewers -./modules/msk/ppflagfixer/** @huyu335 @mskcc-omics-workflows/reviewers -./modules/msk/pvmaf/concat/** @buehlere @mskcc-omics-workflows/reviewers -./modules/msk/pvmaf/tagtraceback/** @buehlere @mskcc-omics-workflows/reviewers -./modules/msk/rediscoverte/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/salmon/index/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/salmon/quant/** @nikhil @mskcc-omics-workflows/reviewers -./modules/msk/snppileup/** @nikhil @mskcc-omics-workflows/reviewers -./subworkflows/msk/genome_nexus/** @rnaidu @mskcc-omics-workflows/reviewers -./subworkflows/msk/neoantigen_editing/** @johnoooh @mskcc-omics-workflows/reviewers -./subworkflows/msk/netmhcstabandpan/** @nikhil @mskcc-omics-workflows/reviewers -./subworkflows/msk/phylowgs/** @nikhil @mskcc-omics-workflows/reviewers -./subworkflows/msk/traceback/** @buehlere @mskcc-omics-workflows/reviewers +modules/msk/custom/splitfastqbylane/** @anoronh4 @mskcc-omics-workflows/reviewers +modules/msk/facets/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/gatk4/applybqsr/** @yocra3 @FriederikeHanssen @mskcc-omics-workflows/reviewers +modules/msk/gbcms/** @buehlere @mskcc-omics-workflows/reviewers +modules/msk/genomenexus/annotationpipeline/** @rnaidu @mskcc-omics-workflows/reviewers +modules/msk/genomenexus/vcf2maf/** @rnaidu @mskcc-omics-workflows/reviewers +modules/msk/genotypevariants/all/** @buehlere @mskcc-omics-workflows/reviewers +modules/msk/mutect1/** @rnaidu @mskcc-omics-workflows/reviewers +modules/msk/neoantigenediting/aligntoiedb/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/neoantigenediting/computefitness/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/neoantigenutils/convertannotjson/** @johnoooh @mskcc-omics-workflows/reviewers +modules/msk/neoantigenutils/formatnetmhcpan/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/neoantigenutils/generatehlastring/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/neoantigenutils/generatemutfasta/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/neoantigenutils/neoantigeninput/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/neosv/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/netmhc3/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/netmhcpan4/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/netmhcstabpan/** @johnoooh @nikhil @mskcc-omics-workflows/reviewers +modules/msk/phylowgs/createinput/** @pintoa1-mskcc @mskcc-omics-workflows/reviewers +modules/msk/phylowgs/multievolve/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/phylowgs/parsecnvs/** @pintoa1-mskcc @mskcc-omics-workflows/reviewers +modules/msk/phylowgs/writeresults/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/polysolver/** @anoronh4 @mskcc-omics-workflows/reviewers +modules/msk/ppflagfixer/** @huyu335 @mskcc-omics-workflows/reviewers +modules/msk/pvmaf/concat/** @buehlere @mskcc-omics-workflows/reviewers +modules/msk/pvmaf/tagtraceback/** @buehlere @mskcc-omics-workflows/reviewers +modules/msk/rediscoverte/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/salmon/index/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/salmon/quant/** @nikhil @mskcc-omics-workflows/reviewers +modules/msk/snppileup/** @nikhil @mskcc-omics-workflows/reviewers +subworkflows/msk/genome_nexus/** @rnaidu @mskcc-omics-workflows/reviewers +subworkflows/msk/neoantigen_editing/** @johnoooh @mskcc-omics-workflows/reviewers +subworkflows/msk/netmhcstabandpan/** @nikhil @mskcc-omics-workflows/reviewers +subworkflows/msk/phylowgs/** @nikhil @mskcc-omics-workflows/reviewers +subworkflows/msk/traceback/** @buehlere @mskcc-omics-workflows/reviewers From c2addb92e3f0281d8fd36227677ac81b64916ca1 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 13:35:36 -0500 Subject: [PATCH 04/18] test --- modules/msk/gbcms/main.nf | 1 + modules/msk/gbcms/tests/main.nf.test.snap | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 044b4e4b..a9790331 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -12,6 +12,7 @@ process GBCMS { output: // small change + // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions diff --git a/modules/msk/gbcms/tests/main.nf.test.snap b/modules/msk/gbcms/tests/main.nf.test.snap index cd3ce8a2..00a966c1 100644 --- a/modules/msk/gbcms/tests/main.nf.test.snap +++ b/modules/msk/gbcms/tests/main.nf.test.snap @@ -40,6 +40,10 @@ ] } ], - "timestamp": "2023-12-13T15:05:34.981489" + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.3" + }, + "timestamp": "2024-12-18T13:34:21.989594" } -} +} \ No newline at end of file From dc75c90503462e472ad45f3432643eb5d7a9cad5 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 13:44:19 -0500 Subject: [PATCH 05/18] attempting to update tests --- .github/conda_skip.yml | 74 ++++ .github/workflows/actions/action.yml | 97 +++++ .github/workflows/nf-test.yml | 129 +++++++ .github/workflows/pytest-workflow.yml | 247 ++++++++++++ .github/workflows/test.yml | 532 -------------------------- modules/msk/gbcms/main.nf | 1 + 6 files changed, 548 insertions(+), 532 deletions(-) create mode 100644 .github/conda_skip.yml create mode 100644 .github/workflows/actions/action.yml create mode 100644 .github/workflows/nf-test.yml create mode 100644 .github/workflows/pytest-workflow.yml delete mode 100644 .github/workflows/test.yml diff --git a/.github/conda_skip.yml b/.github/conda_skip.yml new file mode 100644 index 00000000..ffcaad47 --- /dev/null +++ b/.github/conda_skip.yml @@ -0,0 +1,74 @@ +exclude: + - tags: "nf-test" + - profile: "conda" + tags: gbcms + - profile: "conda" + tags: polysolver + - profile: "conda" + tags: snppileup + - profile: "conda" + tags: facets + - profile: "conda" + tags: mutect1 + - profile: "conda" + tags: phylowgs/createinput + - profile: "conda" + tags: phylowgs/parsecnvs + - profile: "conda" + tags: phylowgs/multievolve + - profile: "conda" + tags: phylowgs/writeresults + - profile: "conda" + tags: netmhcpan4 + - profile: "conda" + tags: neoantigeninput + - profile: "conda" + tags: neoantigenediting/aligntoIEDB + - profile: "conda" + tags: neoantigenediting/computeFitness + - profile: "conda" + tags: subworkflows/neoantigen_editing + - profile: "conda" + tags: subworkflows/phylowgs + - profile: "conda" + tags: netmhcstabpan + - profile: "conda" + tags: ppflagfixer + - profile: "conda" + tags: neoantigenutils/generatemutfasta + - profile: "conda" + tags: neoantigenutils/formatnetmhcpan + - profile: "conda" + tags: neoantigenutils/generatehlastring + - profile: "conda" + tags: neoantigenutils/neoantigeninput + - profile: "conda" + tags: subworkflows/netmhcstabandpan + - profile: "conda" + tags: salmon/index + - profile: "conda" + tags: genomenexus/vcf2maf + - profile: "conda" + tags: genomenexus/annotationpipeline + - profile: "conda" + tags: ppflagfixer + - profile: "conda" + tags: pvmaf/tagtraceback + - profile: "conda" + tags: pvmaf/concat + - profile: "conda" + tags: genotypevariants/all + - profile: "conda" + tags: subworkflows/traceback + - profile: "conda" + tags: salmon/index + - profile: "conda" + tags: subworkflows/genome_nexus + - profile: "conda" + tags: salmon/quant + - profile: "conda" + tags: rediscoverte + - profile: "conda" + tags: neosv + - profile: "conda" + tags: netmhc3 diff --git a/.github/workflows/actions/action.yml b/.github/workflows/actions/action.yml new file mode 100644 index 00000000..a6f2532f --- /dev/null +++ b/.github/workflows/actions/action.yml @@ -0,0 +1,97 @@ +name: "nf-test Action" +description: "Runs nf-test with common setup steps" +inputs: + profile: + description: "Profile to use" + required: true + shard: + description: "Shard number for this CI job" + required: true + total_shards: + description: "Total number of test shards(NOT the total number of matrix jobs)" + required: true + paths: + description: "Test paths" + required: true + +runs: + using: "composite" + steps: + - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4 + with: + distribution: "temurin" + java-version: "17" + + - name: Setup Nextflow + uses: nf-core/setup-nextflow@v2 + with: + version: "${{ env.NXF_VERSION }}" + + - name: Set up Python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + with: + python-version: "3.11" + + - name: Install nf-test + uses: nf-core/setup-nf-test@v1 + with: + version: "${{ env.NFT_VER }}" + install-pdiff: true + + - name: Setup apptainer + if: contains(inputs.profile, 'singularity') + uses: eWaterCycle/setup-apptainer@main + + - name: Set up Singularity + if: contains(inputs.profile, 'singularity') + shell: bash + run: | + mkdir -p $NXF_SINGULARITY_CACHEDIR + mkdir -p $NXF_SINGULARITY_LIBRARYDIR + + - name: Conda setup + if: ${{inputs.profile == 'conda'}} + uses: conda-incubator/setup-miniconda@d2e6a045a86077fb6cad6f5adf368e9076ddaa8d # v3 + with: + auto-update-conda: true + conda-solver: libmamba + conda-remove-defaults: true + + # Set up secrets + - name: Set up nextflow secrets + if: env.SENTIEON_ENCRYPTION_KEY != '' && env.SENTIEON_LICENSE_MESSAGE != '' + shell: bash + run: | + python -m pip install cryptography + nextflow secrets set SENTIEON_AUTH_DATA $(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") + + # TODO Skip failing conda tests and document their failures + # https://github.com/nf-core/modules/issues/7017 + - name: Run nf-test + shell: bash + env: + SENTIEON_LICSRVR_IP: ${{ env.SENTIEON_LICSRVR_IP }} + SENTIEON_AUTH_MECH: "GitHub Actions - token" + run: | + NFT_WORKDIR=~ \ + nf-test test \ + --profile=${{ inputs.profile }} \ + --tap=test.tap \ + --verbose \ + --ci \ + --shard ${{ inputs.shard }}/${{ inputs.total_shards }} \ + --filter process,workflow \ + ${{ inputs.paths }} + + # TODO If no test.tap, then make one to spoof? + - uses: pcolby/tap-summary@0959cbe1d4422e62afc65778cdaea6716c41d936 # v1 + if: ${{ inputs.path != '' }} + with: + path: >- + test.tap + + - name: Clean up + if: always() + shell: bash + run: | + sudo rm -rf /home/ubuntu/tests/ diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml new file mode 100644 index 00000000..027b661e --- /dev/null +++ b/.github/workflows/nf-test.yml @@ -0,0 +1,129 @@ +name: Run nf-test +on: + push: + branches: + # https://docs.renovatebot.com/key-concepts/automerge/#branch-vs-pr-automerging + - "renovate/**" # branches Renovate creates + pull_request: + branches: [master] + merge_group: + types: [checks_requested] + branches: [master] + workflow_dispatch: + inputs: + runners: + description: "Runners to test on" + type: choice + options: + - "ubuntu-latest" + - "self-hosted" + default: "self-hosted" + +# Cancel if a newer run is started +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # renovate: datasource=github-releases depName=askimed/nf-test versioning=semver + NFT_VER: "0.9.2" + NXF_ANSI_LOG: false + NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity + NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity + # renovate: datasource=github-releases depName=nextflow/nextflow versioning=semver + NXF_VER: "24.10.2" + +jobs: + nf-test-changes: + name: nf-test-changes + runs-on: ubuntu-latest + outputs: + # Expose detected tags as 'modules' and 'workflows' output variables + paths: ${{ steps.list.outputs.components }} + modules: ${{ steps.outputs.outputs.modules }} + subworkflows: ${{ steps.outputs.outputs.subworkflows}} + # Prod for version bumping + steps: + - name: Clean Workspace # Purge the workspace in case it's running on a self-hosted runner + run: | + ls -la ./ + rm -rf ./* || true + rm -rf ./.??* || true + ls -la ./ + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 0 + + - name: List nf-test files + id: list + uses: adamrtalbot/detect-nf-test-changes@de3c3c8e113031b4f15a3c1104b5f135e8346997 # v0.0.6 + with: + head: ${{ github.sha }} + base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }} + n_parents: 0 + exclude_tags: "gpu" + + - name: Separate modules and subworkflows + id: outputs + run: | + echo modules=$(echo '${{ steps.list.outputs.components }}' | jq -c '. | map(select(contains("modules"))) | map(gsub("modules/nf-core/"; ""))') >> $GITHUB_OUTPUT + echo subworkflows=$(echo '${{ steps.list.outputs.components }}' | jq '. | map(select(contains("subworkflows"))) | map(gsub("subworkflows/nf-core/"; ""))') >> $GITHUB_OUTPUT + - name: debug + run: | + echo ${{ steps.list.outputs.components }} + echo ${{ steps.outputs.outputs.modules }} + echo ${{ steps.outputs.outputs.subworkflows }} + nf-test: + runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + name: "Test | ${{ matrix.profile }} | ${{ matrix.shard }}" + needs: nf-test-changes + if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }} + strategy: + fail-fast: false + matrix: + shard: [1, 2, 3, 4, 5] + profile: [conda, docker_self_hosted, singularity] + env: + NXF_ANSI_LOG: false + TOTAL_SHARDS: 5 + + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 0 + - name: Run nf-test Action + uses: ./.github/actions/nf-test-action + env: + SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }} + SENTIEON_LICENSE_MESSAGE: ${{ secrets.SENTIEON_LICENSE_MESSAGE }} + SENTIEON_LICSRVR_IP: ${{ secrets.SENTIEON_LICSRVR_IP }} + SENTIEON_AUTH_MECH: "GitHub Actions - token" + with: + profile: ${{ matrix.profile }} + shard: ${{ matrix.shard }} + total_shards: ${{ env.TOTAL_SHARDS }} + paths: "${{ join(fromJson(needs.nf-test-changes.outputs.paths), ' ') }}" + + confirm-pass: + runs-on: ubuntu-latest + needs: [nf-test] + if: always() + steps: + - name: One or more tests failed + if: ${{ contains(needs.*.result, 'failure') }} + run: exit 1 + + - name: One or more tests cancelled + if: ${{ contains(needs.*.result, 'cancelled') }} + run: exit 1 + + - name: All tests ok + if: ${{ contains(needs.*.result, 'success') }} + run: exit 0 + + - name: debug-print + if: always() + run: | + echo "toJSON(needs) = ${{ toJSON(needs) }}" + echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml new file mode 100644 index 00000000..47bb584d --- /dev/null +++ b/.github/workflows/pytest-workflow.yml @@ -0,0 +1,247 @@ +name: Run pytest-workflow +on: + push: + branches: + # https://docs.renovatebot.com/key-concepts/automerge/#branch-vs-pr-automerging + - "renovate/**" # branches Renovate creates + pull_request: + branches: [master] + merge_group: + types: [checks_requested] + branches: [master] + workflow_dispatch: + inputs: + runners: + description: "Runners to test on" + type: choice + options: + - "ubuntu-latest" + - "self-hosted" + default: "self-hosted" + +# Cancel if a newer run is started +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +env: + NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity + NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # renovate: datasource=github-releases depName=nextflow-io/nextflow versioning=semver + NXF_VER: "24.10.2" + +jobs: + pytest-changes: + name: pytest-changes + runs-on: ubuntu-latest + outputs: + tags: ${{ steps.filter.outputs.changes }} + modules: ${{ steps.tags.outputs.modules }} + subworkflows: ${{ steps.tags.outputs.subworkflows }} + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + fetch-depth: 2 # To retrieve the preceding commit. + + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3 + id: filter + with: + filters: "tests/config/pytest_modules.yml" + token: "" + + - name: Fetch module tags + id: tags + run: | + echo modules=$(echo '${{ steps.filter.outputs.changes }}' | jq -c '. | map(select(contains("modules"))) | map(gsub("modules/"; ""))') >> $GITHUB_OUTPUT + echo subworkflows=$(echo '${{ steps.filter.outputs.changes }}' | jq '. | map(select(contains("subworkflow"))) | map(gsub("subworkflows/"; ""))') >> $GITHUB_OUTPUT + + - name: debug + run: | + echo ${{ steps.tags.outputs.modules }} + echo ${{ steps.tags.outputs.subworkflows }} + + pytest: + runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + name: pytest + needs: [pytest-changes] + if: needs.pytest-changes.outputs.tags != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.pytest-changes.outputs.tags) }}"] + profile: [conda, docker, singularity] + exclude: + - tags: "nf-test" + - profile: "conda" + tags: gbcms + - profile: "conda" + tags: polysolver + - profile: "conda" + tags: snppileup + - profile: "conda" + tags: facets + - profile: "conda" + tags: mutect1 + - profile: "conda" + tags: phylowgs/createinput + - profile: "conda" + tags: phylowgs/parsecnvs + - profile: "conda" + tags: phylowgs/multievolve + - profile: "conda" + tags: phylowgs/writeresults + - profile: "conda" + tags: netmhcpan4 + - profile: "conda" + tags: neoantigeninput + - profile: "conda" + tags: neoantigenediting/aligntoIEDB + - profile: "conda" + tags: neoantigenediting/computeFitness + - profile: "conda" + tags: subworkflows/neoantigen_editing + - profile: "conda" + tags: subworkflows/phylowgs + - profile: "conda" + tags: netmhcstabpan + - profile: "conda" + tags: ppflagfixer + - profile: "conda" + tags: neoantigenutils/generatemutfasta + - profile: "conda" + tags: neoantigenutils/formatnetmhcpan + - profile: "conda" + tags: neoantigenutils/generatehlastring + - profile: "conda" + tags: neoantigenutils/neoantigeninput + - profile: "conda" + tags: subworkflows/netmhcstabandpan + - profile: "conda" + tags: salmon/index + - profile: "conda" + tags: genomenexus/vcf2maf + - profile: "conda" + tags: genomenexus/annotationpipeline + - profile: "conda" + tags: ppflagfixer + - profile: "conda" + tags: pvmaf/tagtraceback + - profile: "conda" + tags: pvmaf/concat + - profile: "conda" + tags: genotypevariants/all + - profile: "conda" + tags: subworkflows/traceback + - profile: "conda" + tags: salmon/index + - profile: "conda" + tags: subworkflows/genome_nexus + - profile: "conda" + tags: salmon/quant + - profile: "conda" + tags: rediscoverte + - profile: "conda" + tags: neosv + - profile: "conda" + tags: netmhc3 + env: + NXF_ANSI_LOG: false + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + + - name: Set up Python + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + with: + python-version: "3.11" + + - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4 + id: cache-pip-pytest + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-pytest + restore-keys: | + ${{ runner.os }}-pip-pytest + + - name: Install Python dependencies + run: python -m pip install --upgrade pip pytest-workflow cryptography + + - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4 + with: + distribution: "temurin" + java-version: "17" + + - name: Setup Nextflow + uses: nf-core/setup-nextflow@v2 + with: + version: ${{ env.NXF_VER }} + + - name: Setup apptainer + if: matrix.profile == 'singularity' + uses: eWaterCycle/setup-apptainer@main + + - name: Set up Singularity + if: matrix.profile == 'singularity' + run: | + mkdir -p $NXF_SINGULARITY_CACHEDIR + mkdir -p $NXF_SINGULARITY_LIBRARYDIR + + - name: Conda setup + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@d2e6a045a86077fb6cad6f5adf368e9076ddaa8d # v3 + with: + auto-update-conda: true + conda-solver: libmamba + conda-remove-defaults: true + + # Test the module + - name: Run pytest-workflow + # only use one thread for pytest-workflow to avoid race condition on conda cache. + run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes + + - name: Output log on failure + if: failure() + run: | + sudo apt-get update > /dev/null + sudo apt-get install bat > /dev/null + batcat --decorations=always --color=always /home/ubuntu/pytest_workflow_*/*/log.{out,err} + + - name: Setting global variables + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 + id: parsed + with: + script: | + return '${{ matrix.tags }}'.toLowerCase().replaceAll(/\//g, '-').trim('-').trim('"') + result-encoding: string + + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + with: + name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} + path: | + /home/ubuntu/pytest_workflow_*/*/.nextflow.log + /home/ubuntu/pytest_workflow_*/*/log.out + /home/ubuntu/pytest_workflow_*/*/log.err + /home/ubuntu/pytest_workflow_*/*/work + !/home/ubuntu/pytest_workflow_*/*/work/conda + !/home/ubuntu/pytest_workflow_*/*/work/singularity + !${{ github.workspace }}/.singularity + + confirm-pass: + runs-on: ubuntu-latest + needs: [pytest-changes, pytest] + if: always() + steps: + - name: All tests ok + if: ${{ success() || !contains(needs.*.result, 'failure') }} + run: exit 0 + - name: One or more tests failed + if: ${{ contains(needs.*.result, 'failure') }} + run: exit 1 + + - name: debug-print + if: always() + run: | + echo "toJSON(needs) = ${{ toJSON(needs) }}" + echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 912e55f6..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,532 +0,0 @@ -name: Run tests -on: - push: - branches: [main] - pull_request: - branches: [main, develop] - merge_group: - types: [checks_requested] - branches: [main] - -# Cancel if a newer run is started -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -env: - NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity - NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - -jobs: - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 - - uses: pre-commit/action@v3.0.0 - # FIXME Flip this off once we get to less than a couple hundred. Adding - # this so it will only run against changed files. It'll make it much - # easier to fix these as they come up rather than everything at once. - with: - extra_args: "" - - prettier: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Install NodeJS - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Install Prettier - run: npm install -g prettier - - - name: Run Prettier --check - run: prettier --check . - - editorconfig: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Install editorconfig-checker - run: npm install -g editorconfig-checker - - - name: Run ECLint check - run: editorconfig-checker -exclude '**/README.md, **/LICENSE' $(git ls-files | grep -v test) - - pytest-changes: - name: pytest-changes - runs-on: ubuntu-latest - outputs: - # Expose matched filters as job 'modules' output variable - modules: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 # To retrieve the preceding commit. - - # TODO: change back to using dorny/paths-filter when https://github.com/dorny/paths-filter/pull/133 is implemented - - uses: mirpedrol/paths-filter@main - id: filter - with: - filters: "tests/config/pytest_modules.yml" - token: "" - - nf-test-changes: - name: nf-test-changes - runs-on: ubuntu-latest - outputs: - # Expose matched filters as job 'modules' output variable - modules: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 # To retrieve the preceding commit. - - - name: Combine all tags.yml files - id: get_tags - run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml - - - name: debug - run: cat .github/tags.yml - - # TODO: change back to using dorny/paths-filter when https://github.com/dorny/paths-filter/pull/133 is implemented - - uses: mirpedrol/paths-filter@main - id: filter - with: - filters: ".github/tags.yml" - token: "" - - nf-core-lint: - runs-on: ubuntu-latest - name: nf-core-lint - needs: [pytest-changes, nf-test-changes] - if: ${{ (needs.pytest-changes.outputs.modules != '[]') || (needs.nf-test-changes.outputs.modules != '[]') }} - strategy: - fail-fast: false - matrix: - tags: - [ - "${{ fromJson(needs.pytest-changes.outputs.modules) }}", - "${{ fromJson(needs.nf-test-changes.outputs.modules) }}", - ] - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.11" - - - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Install pip - run: python -m pip install --upgrade pip - - - uses: actions/setup-java@v3 - with: - distribution: "temurin" - java-version: "17" - - name: Setup Nextflow - uses: nf-core/setup-nextflow@v1 - - - name: Install nf-core tools development version - run: python -m pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev - - - name: Lint module ${{ matrix.tags }} - run: nf-core modules lint ${{ matrix.tags }} - if: ${{ !startsWith(matrix.tags, 'subworkflows/') }} - - - name: Remove substring from matrix.tags - id: remove_substring - run: echo subworkflow_names=$(echo "${{ matrix.tags }}" | sed 's/subworkflows\///g') >> $GITHUB_OUTPUT - - - name: Lint subworkflow ${{ matrix.tags }} - run: nf-core subworkflows lint ${{steps.remove_substring.outputs.subworkflow_names}} - if: ${{ startsWith(matrix.tags, 'subworkflows/') }} - - verify-markdown-file: - runs-on: ubuntu-latest - name: verify-markdown-file - if: ${{ (needs.pytest-changes.outputs.modules != '[]') || (needs.nf-test-changes.outputs.modules != '[]') }} - needs: [pytest-changes, nf-test-changes] - strategy: - fail-fast: false - matrix: - tags: - [ - "${{ fromJson(needs.pytest-changes.outputs.modules) }}", - "${{ fromJson(needs.nf-test-changes.outputs.modules) }}", - ] - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 2 # To retrieve the preceding commit. - - name: setup python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - name: Download convertor from yml to md - run: | - curl -o ${{ github.workspace }}/yaml_to_md.py https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/yaml_to_md.py - curl -o ${{ github.workspace }}/requirements.txt https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/requirements.txt - - name: Give convertor permissions - run: chmod +x yaml_to_md.py - - name: Install python packages - run: | - python -m pip install --upgrade pip - pip install -r ${{ github.workspace }}/requirements.txt - - name: Update ${{ matrix.tags }} - run: | - MATRIX_FRAGMENT="${{ matrix.tags }}" - TEMP_NAME=$(echo $MATRIX_FRAGMENT | sed 's/subworkflows\///g') - SW_NAME=$(echo $TEMP_NAME | sed 's/modules\///g') - echo "SW_NAME=$SW_NAME" >> $GITHUB_ENV - echo $SW_NAME - - uses: jaywcjlove/github-action-read-file@main - id: cat_file_module - with: - branch: ${{ github.ref }} - path: modules/msk/${{ env.SW_NAME }}/meta.yml - - run: echo "${{ steps.cat_file_module.outputs.size }}" - - name: Write Module yaml to temp - if: ${{ steps.cat_file_module.outputs.size }} - id: write_yml_module - run: | - echo '${{ steps.cat_file_module.outputs.content }}' > ${{ github.workspace }}/temp.yml - FEATURE_TYPE="modules" - echo "FEATURE_TYPE=$FEATURE_TYPE" >> $GITHUB_ENV - - uses: jaywcjlove/github-action-read-file@main - if: ${{ steps.cat_file_module.outputs.size == '' }} - id: cat_file_subworkflow - with: - branch: ${{ github.ref }} - path: subworkflows/msk/${{ env.SW_NAME }}/meta.yml - - name: Write Subworkflow yaml to temp - if: ${{ steps.cat_file_subworkflow.outputs.size }} - id: write_yml_subworkflow - run: | - echo '${{ steps.cat_file_subworkflow.outputs.content }}' > ${{ github.workspace }}/temp.yml - FEATURE_TYPE="subworkflows" - echo "FEATURE_TYPE=$FEATURE_TYPE" >> $GITHUB_ENV - - name: Run convertor to verify yaml file - run: | - echo ${{ matrix.tags }} - echo ${{ env.FEATURE_TYPE }} - python ${{ github.workspace }}/yaml_to_md.py validate --yaml-file ${{ github.workspace }}/temp.yml --schema-url https://raw.githubusercontent.com/mskcc-omics-workflows/yaml_to_md/0.0.2/nextflow_schema/${{ env.FEATURE_TYPE }}/meta-schema.json - - pytest: - runs-on: ubuntu-latest - name: pytest - needs: [pytest-changes] - if: needs.pytest-changes.outputs.modules != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.pytest-changes.outputs.modules) }}"] - profile: ["docker", "singularity", "conda"] - exclude: - - tags: "nf-test" - env: - NXF_ANSI_LOG: false - SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} - - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.11" - - - name: Install Python dependencies - run: python -m pip install --upgrade pip pytest-workflow cryptography - - - uses: actions/setup-java@v3 - with: - distribution: "temurin" - java-version: "17" - - name: Setup Nextflow ${{ matrix.NXF_VER }} - uses: nf-core/setup-nextflow@v1 - with: - version: "${{ matrix.NXF_VER }}" - - - name: Setup apptainer - if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-apptainer@main - - - name: Set up Singularity - if: matrix.profile == 'singularity' - run: | - mkdir -p $NXF_SINGULARITY_CACHEDIR - mkdir -p $NXF_SINGULARITY_LIBRARYDIR - - - name: Set up miniconda - uses: conda-incubator/setup-miniconda@v2 - with: - miniconda-version: "latest" - channels: conda-forge,bioconda,defaults - python-version: ${{ matrix.python-version }} - - - name: Conda setup - run: | - conda clean -a - conda install -n base conda-libmamba-solver - conda config --set solver libmamba - echo $(realpath $CONDA)/condabin >> $GITHUB_PATH - echo $(realpath python) >> $GITHUB_PATH - - # Set up secrets - - name: Set up nextflow secrets - if: env.SENTIEON_LICENSE_BASE64 != null - run: | - nextflow secrets set SENTIEON_LICENSE_BASE64 ${{ secrets.SENTIEON_LICENSE_BASE64 }} - nextflow secrets set SENTIEON_AUTH_MECH_BASE64 ${{ secrets.SENTIEON_AUTH_MECH_BASE64 }} - SENTIEON_ENCRYPTION_KEY=$(echo -n "${{ secrets.ENCRYPTION_KEY_BASE64 }}" | base64 -d) - SENTIEON_LICENSE_MESSAGE=$(echo -n "${{ secrets.LICENSE_MESSAGE_BASE64 }}" | base64 -d) - SENTIEON_AUTH_DATA=$(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") - SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) - nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 - - # Test the module - - name: Run pytest-workflow - # only use one thread for pytest-workflow to avoid race condition on conda cache. - run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes - - - name: Output log on failure - if: failure() - run: | - sudo apt-get update > /dev/null - sudo apt-get install bat > /dev/null - batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err} - - - name: Setting global variables - uses: actions/github-script@v6 - id: parsed - with: - script: | - return '${{ matrix.tags }}'.toLowerCase().replaceAll(/\//g, '-').trim('-').trim('"') - result-encoding: string - - - name: Upload logs on failure - if: failure() - uses: actions/upload-artifact@v3 - with: - name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} - path: | - /home/runner/pytest_workflow_*/*/.nextflow.log - /home/runner/pytest_workflow_*/*/log.out - /home/runner/pytest_workflow_*/*/log.err - /home/runner/pytest_workflow_*/*/work - !/home/runner/pytest_workflow_*/*/work/conda - !/home/runner/pytest_workflow_*/*/work/singularity - !${{ github.workspace }}/.singularity - - nf-test: - runs-on: ubuntu-latest - name: nf-test - needs: [nf-test-changes] - if: needs.nf-test-changes.outputs.modules != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.nf-test-changes.outputs.modules) }}"] - profile: ["docker", "singularity", "conda"] - exclude: - - tags: "nf-test" - - profile: "conda" - tags: gbcms - - profile: "conda" - tags: polysolver - - profile: "conda" - tags: snppileup - - profile: "conda" - tags: facets - - profile: "conda" - tags: mutect1 - - profile: "conda" - tags: phylowgs/createinput - - profile: "conda" - tags: phylowgs/parsecnvs - - profile: "conda" - tags: phylowgs/multievolve - - profile: "conda" - tags: phylowgs/writeresults - - profile: "conda" - tags: netmhcpan4 - - profile: "conda" - tags: neoantigeninput - - profile: "conda" - tags: neoantigenediting/aligntoIEDB - - profile: "conda" - tags: neoantigenediting/computeFitness - - profile: "conda" - tags: subworkflows/neoantigen_editing - - profile: "conda" - tags: subworkflows/phylowgs - - profile: "conda" - tags: netmhcstabpan - - profile: "conda" - tags: ppflagfixer - - profile: "conda" - tags: neoantigenutils/generatemutfasta - - profile: "conda" - tags: neoantigenutils/formatnetmhcpan - - profile: "conda" - tags: neoantigenutils/generatehlastring - - profile: "conda" - tags: neoantigenutils/neoantigeninput - - profile: "conda" - tags: subworkflows/netmhcstabandpan - - profile: "conda" - tags: salmon/index - - profile: "conda" - tags: genomenexus/vcf2maf - - profile: "conda" - tags: genomenexus/annotationpipeline - - profile: "conda" - tags: ppflagfixer - - profile: "conda" - tags: pvmaf/tagtraceback - - profile: "conda" - tags: pvmaf/concat - - profile: "conda" - tags: genotypevariants/all - - profile: "conda" - tags: subworkflows/traceback - - profile: "conda" - tags: salmon/index - - profile: "conda" - tags: subworkflows/genome_nexus - - profile: "conda" - tags: salmon/quant - - profile: "conda" - tags: rediscoverte - - profile: "conda" - tags: neosv - - profile: "conda" - tags: netmhc3 - - env: - NXF_ANSI_LOG: false - SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} - NFTEST_VER: "0.8.2" - - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-java@v3 - with: - distribution: "temurin" - java-version: "17" - - name: Setup Nextflow - uses: nf-core/setup-nextflow@v1 - - - name: Cache nf-test installation - id: cache-software - uses: actions/cache@v3 - with: - path: | - /usr/local/bin/nf-test - /home/runner/.nf-test/nf-test.jar - key: ${{ runner.os }}-${{ env.NFTEST_VER }}-nftest - - - name: Install nf-test - if: steps.cache-software.outputs.cache-hit != 'true' - run: | - wget -qO- https://code.askimed.com/install/nf-test | bash - sudo mv nf-test /usr/local/bin/ - - - name: Setup apptainer - if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-apptainer@main - - - name: Set up Singularity - if: matrix.profile == 'singularity' - run: | - mkdir -p $NXF_SINGULARITY_CACHEDIR - mkdir -p $NXF_SINGULARITY_LIBRARYDIR - - - name: Set up miniconda - uses: conda-incubator/setup-miniconda@v2 - with: - miniconda-version: "latest" - auto-update-conda: true - channels: conda-forge,bioconda,defaults - python-version: ${{ matrix.python-version }} - - - name: Conda setup - run: | - conda clean -a - conda install -n base conda-libmamba-solver - conda config --set solver libmamba - echo $(realpath $CONDA)/condabin >> $GITHUB_PATH - echo $(realpath python) >> $GITHUB_PATH - - # Set up secrets - - name: Set up nextflow secrets - if: env.SENTIEON_LICENSE_BASE64 != null - run: | - nextflow secrets set SENTIEON_LICENSE_BASE64 ${{ secrets.SENTIEON_LICENSE_BASE64 }} - nextflow secrets set SENTIEON_AUTH_MECH_BASE64 ${{ secrets.SENTIEON_AUTH_MECH_BASE64 }} - SENTIEON_ENCRYPTION_KEY=$(echo -n "${{ secrets.ENCRYPTION_KEY_BASE64 }}" | base64 -d) - SENTIEON_LICENSE_MESSAGE=$(echo -n "${{ secrets.LICENSE_MESSAGE_BASE64 }}" | base64 -d) - SENTIEON_AUTH_DATA=$(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") - SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) - nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 - - # Test the module - - name: Run nf-test - run: | - NXF_TEST_DIR=~ \ - nf-test test \ - --profile=${{ matrix.profile }} \ - --tag ${{ matrix.tags }} \ - --tap=test.tap \ - --verbose - - - uses: pcolby/tap-summary@v1 - with: - path: >- - test.tap - - confirm-pass: - runs-on: ubuntu-latest - needs: - [ - prettier, - editorconfig, - pytest-changes, - nf-core-lint, - pytest, - nf-test-changes, - nf-test, - ] - if: always() - steps: - - name: All tests ok - if: ${{ success() || !contains(needs.*.result, 'failure') }} - run: exit 0 - - name: One or more tests failed - if: ${{ contains(needs.*.result, 'failure') }} - run: exit 1 - - - name: debug-print - if: always() - run: | - echo "toJSON(needs) = ${{ toJSON(needs) }}" - echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index a9790331..97f4cc04 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -13,6 +13,7 @@ process GBCMS { output: // small change // small change + // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From 80d2bb3ab1409f77cb612df1795062fc1c6d9fdd Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 13:49:33 -0500 Subject: [PATCH 06/18] restructure tests --- .github/{workflows => }/actions/action.yml | 0 modules/msk/gbcms/main.nf | 1 + 2 files changed, 1 insertion(+) rename .github/{workflows => }/actions/action.yml (100%) diff --git a/.github/workflows/actions/action.yml b/.github/actions/action.yml similarity index 100% rename from .github/workflows/actions/action.yml rename to .github/actions/action.yml diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 97f4cc04..08b9d6a4 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -14,6 +14,7 @@ process GBCMS { // small change // small change // small change + // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From 7e1c3cbad048c3696820f24a3738b1d30e50b1e8 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 13:50:54 -0500 Subject: [PATCH 07/18] run on action to develop --- .github/actions/{ => nf-test-action}/action.yml | 0 .github/workflows/nf-test.yml | 4 ++-- .github/workflows/pytest-workflow.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename .github/actions/{ => nf-test-action}/action.yml (100%) diff --git a/.github/actions/action.yml b/.github/actions/nf-test-action/action.yml similarity index 100% rename from .github/actions/action.yml rename to .github/actions/nf-test-action/action.yml diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 027b661e..985896b9 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -5,10 +5,10 @@ on: # https://docs.renovatebot.com/key-concepts/automerge/#branch-vs-pr-automerging - "renovate/**" # branches Renovate creates pull_request: - branches: [master] + branches: [master, develop] merge_group: types: [checks_requested] - branches: [master] + branches: [master, develop] workflow_dispatch: inputs: runners: diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index 47bb584d..35c76f06 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -5,10 +5,10 @@ on: # https://docs.renovatebot.com/key-concepts/automerge/#branch-vs-pr-automerging - "renovate/**" # branches Renovate creates pull_request: - branches: [master] + branches: [master, develop] merge_group: types: [checks_requested] - branches: [master] + branches: [master, develop] workflow_dispatch: inputs: runners: From 9b09a653fa75b37f613a842431d77459fd405490 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 13:58:57 -0500 Subject: [PATCH 08/18] fixing exclude --- .github/conda_skip.yml | 146 +++++++++++++++++++------------------- modules/msk/gbcms/main.nf | 1 + 2 files changed, 74 insertions(+), 73 deletions(-) diff --git a/.github/conda_skip.yml b/.github/conda_skip.yml index ffcaad47..562cea06 100644 --- a/.github/conda_skip.yml +++ b/.github/conda_skip.yml @@ -1,74 +1,74 @@ exclude: - - tags: "nf-test" - - profile: "conda" - tags: gbcms - - profile: "conda" - tags: polysolver - - profile: "conda" - tags: snppileup - - profile: "conda" - tags: facets - - profile: "conda" - tags: mutect1 - - profile: "conda" - tags: phylowgs/createinput - - profile: "conda" - tags: phylowgs/parsecnvs - - profile: "conda" - tags: phylowgs/multievolve - - profile: "conda" - tags: phylowgs/writeresults - - profile: "conda" - tags: netmhcpan4 - - profile: "conda" - tags: neoantigeninput - - profile: "conda" - tags: neoantigenediting/aligntoIEDB - - profile: "conda" - tags: neoantigenediting/computeFitness - - profile: "conda" - tags: subworkflows/neoantigen_editing - - profile: "conda" - tags: subworkflows/phylowgs - - profile: "conda" - tags: netmhcstabpan - - profile: "conda" - tags: ppflagfixer - - profile: "conda" - tags: neoantigenutils/generatemutfasta - - profile: "conda" - tags: neoantigenutils/formatnetmhcpan - - profile: "conda" - tags: neoantigenutils/generatehlastring - - profile: "conda" - tags: neoantigenutils/neoantigeninput - - profile: "conda" - tags: subworkflows/netmhcstabandpan - - profile: "conda" - tags: salmon/index - - profile: "conda" - tags: genomenexus/vcf2maf - - profile: "conda" - tags: genomenexus/annotationpipeline - - profile: "conda" - tags: ppflagfixer - - profile: "conda" - tags: pvmaf/tagtraceback - - profile: "conda" - tags: pvmaf/concat - - profile: "conda" - tags: genotypevariants/all - - profile: "conda" - tags: subworkflows/traceback - - profile: "conda" - tags: salmon/index - - profile: "conda" - tags: subworkflows/genome_nexus - - profile: "conda" - tags: salmon/quant - - profile: "conda" - tags: rediscoverte - - profile: "conda" - tags: neosv - - profile: "conda" - tags: netmhc3 + - path: modules/msk/nf-test + - profile: conda + path: modules/msk/gbcms + - profile: conda + path: modules/msk/polysolver + - profile: conda + path: modules/msk/snppileup + - profile: conda + path: modules/msk/facets + - profile: conda + path: modules/msk/mutect1 + - profile: conda + path: modules/msk/phylowgs/createinput + - profile: conda + path: modules/msk/phylowgs/parsecnvs + - profile: conda + path: modules/msk/phylowgs/multievolve + - profile: conda + path: modules/msk/phylowgs/writeresults + - profile: conda + path: modules/msk/netmhcpan4 + - profile: conda + path: modules/msk/neoantigeninput + - profile: conda + path: modules/msk/neoantigenediting/aligntoIEDB + - profile: conda + path: modules/msk/neoantigenediting/computeFitness + - profile: conda + path: modules/msk/subworkflows/neoantigen_editing + - profile: conda + path: modules/msk/subworkflows/phylowgs + - profile: conda + path: modules/msk/netmhcstabpan + - profile: conda + path: modules/msk/ppflagfixer + - profile: conda + path: modules/msk/neoantigenutils/generatemutfasta + - profile: conda + path: modules/msk/neoantigenutils/formatnetmhcpan + - profile: conda + path: modules/msk/neoantigenutils/generatehlastring + - profile: conda + path: modules/msk/neoantigenutils/neoantigeninput + - profile: conda + path: modules/msk/subworkflows/netmhcstabandpan + - profile: conda + path: modules/msk/salmon/index + - profile: conda + path: modules/msk/genomenexus/vcf2maf + - profile: conda + path: modules/msk/genomenexus/annotationpipeline + - profile: conda + path: modules/msk/ppflagfixer + - profile: conda + path: modules/msk/pvmaf/tagtraceback + - profile: conda + path: modules/msk/pvmaf/concat + - profile: conda + path: modules/msk/genotypevariants/all + - profile: conda + path: modules/msk/subworkflows/traceback + - profile: conda + path: modules/msk/salmon/index + - profile: conda + path: modules/msk/subworkflows/genome_nexus + - profile: conda + path: modules/msk/salmon/quant + - profile: conda + path: modules/msk/rediscoverte + - profile: conda + path: modules/msk/neosv + - profile: conda + path: modules/msk/netmhc3 diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 08b9d6a4..575418cd 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -15,6 +15,7 @@ process GBCMS { // small change // small change // small change + // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From 80953ec3953216f8cc23af06de6ec4b4e9346283 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 14:05:37 -0500 Subject: [PATCH 09/18] removing self-hosted --- .github/workflows/nf-test.yml | 6 ++---- .github/workflows/pytest-workflow.yml | 4 +--- modules/msk/gbcms/main.nf | 1 - 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 985896b9..cb27205f 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -16,8 +16,6 @@ on: type: choice options: - "ubuntu-latest" - - "self-hosted" - default: "self-hosted" # Cancel if a newer run is started concurrency: @@ -75,7 +73,7 @@ jobs: echo ${{ steps.outputs.outputs.modules }} echo ${{ steps.outputs.outputs.subworkflows }} nf-test: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ${{ github.event.inputs.runners }} name: "Test | ${{ matrix.profile }} | ${{ matrix.shard }}" needs: nf-test-changes if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }} @@ -83,7 +81,7 @@ jobs: fail-fast: false matrix: shard: [1, 2, 3, 4, 5] - profile: [conda, docker_self_hosted, singularity] + profile: [conda, docker, singularity] env: NXF_ANSI_LOG: false TOTAL_SHARDS: 5 diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index 35c76f06..22b21671 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -16,8 +16,6 @@ on: type: choice options: - "ubuntu-latest" - - "self-hosted" - default: "self-hosted" # Cancel if a newer run is started concurrency: @@ -62,7 +60,7 @@ jobs: echo ${{ steps.tags.outputs.subworkflows }} pytest: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ${{ github.event.inputs.runners }} name: pytest needs: [pytest-changes] if: needs.pytest-changes.outputs.tags != '[]' diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 575418cd..08b9d6a4 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -15,7 +15,6 @@ process GBCMS { // small change // small change // small change - // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From 8e2d849bf051f9e85401046789204da2eb3b5409 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 14:09:04 -0500 Subject: [PATCH 10/18] Revert "removing self-hosted" This reverts commit 80953ec3953216f8cc23af06de6ec4b4e9346283. --- .github/workflows/nf-test.yml | 6 ++++-- .github/workflows/pytest-workflow.yml | 4 +++- modules/msk/gbcms/main.nf | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index cb27205f..985896b9 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -16,6 +16,8 @@ on: type: choice options: - "ubuntu-latest" + - "self-hosted" + default: "self-hosted" # Cancel if a newer run is started concurrency: @@ -73,7 +75,7 @@ jobs: echo ${{ steps.outputs.outputs.modules }} echo ${{ steps.outputs.outputs.subworkflows }} nf-test: - runs-on: ${{ github.event.inputs.runners }} + runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} name: "Test | ${{ matrix.profile }} | ${{ matrix.shard }}" needs: nf-test-changes if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }} @@ -81,7 +83,7 @@ jobs: fail-fast: false matrix: shard: [1, 2, 3, 4, 5] - profile: [conda, docker, singularity] + profile: [conda, docker_self_hosted, singularity] env: NXF_ANSI_LOG: false TOTAL_SHARDS: 5 diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index 22b21671..35c76f06 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -16,6 +16,8 @@ on: type: choice options: - "ubuntu-latest" + - "self-hosted" + default: "self-hosted" # Cancel if a newer run is started concurrency: @@ -60,7 +62,7 @@ jobs: echo ${{ steps.tags.outputs.subworkflows }} pytest: - runs-on: ${{ github.event.inputs.runners }} + runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} name: pytest needs: [pytest-changes] if: needs.pytest-changes.outputs.tags != '[]' diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 08b9d6a4..575418cd 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -15,6 +15,7 @@ process GBCMS { // small change // small change // small change + // small change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From 87a8ce7e47e683b82d4e569d9bdb596492b2e291 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 14:09:22 -0500 Subject: [PATCH 11/18] Update nf-test.yml --- .github/workflows/nf-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 985896b9..16816905 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -83,7 +83,7 @@ jobs: fail-fast: false matrix: shard: [1, 2, 3, 4, 5] - profile: [conda, docker_self_hosted, singularity] + profile: [conda, docker, singularity] env: NXF_ANSI_LOG: false TOTAL_SHARDS: 5 From 492152271e50823e6adb79d7a5dc9d955a6e6c58 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 14:17:51 -0500 Subject: [PATCH 12/18] Update nf-test.yml --- .github/workflows/nf-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 16816905..5bb4cc5c 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -17,7 +17,7 @@ on: options: - "ubuntu-latest" - "self-hosted" - default: "self-hosted" + default: "ubuntu-latest" # Cancel if a newer run is started concurrency: From fa128eefabf03b984350d675d320ac87c7d2e40b Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 14:29:43 -0500 Subject: [PATCH 13/18] excluding self-hosted --- .github/workflows/nf-test.yml | 12 ++---------- .github/workflows/pytest-workflow.yml | 12 ++---------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 5bb4cc5c..a76d77d7 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -9,15 +9,7 @@ on: merge_group: types: [checks_requested] branches: [master, develop] - workflow_dispatch: - inputs: - runners: - description: "Runners to test on" - type: choice - options: - - "ubuntu-latest" - - "self-hosted" - default: "ubuntu-latest" + workflow_dispatch: {} # Cancel if a newer run is started concurrency: @@ -75,7 +67,7 @@ jobs: echo ${{ steps.outputs.outputs.modules }} echo ${{ steps.outputs.outputs.subworkflows }} nf-test: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ubuntu-latest name: "Test | ${{ matrix.profile }} | ${{ matrix.shard }}" needs: nf-test-changes if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }} diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index 35c76f06..1b2e7625 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -9,15 +9,7 @@ on: merge_group: types: [checks_requested] branches: [master, develop] - workflow_dispatch: - inputs: - runners: - description: "Runners to test on" - type: choice - options: - - "ubuntu-latest" - - "self-hosted" - default: "self-hosted" + workflow_dispatch: {} # Cancel if a newer run is started concurrency: @@ -62,7 +54,7 @@ jobs: echo ${{ steps.tags.outputs.subworkflows }} pytest: - runs-on: ${{ github.event.inputs.runners || 'self-hosted' }} + runs-on: ubuntu-latest name: pytest needs: [pytest-changes] if: needs.pytest-changes.outputs.tags != '[]' From 85afadbbc1047bf82d89001e7da205883c700bc9 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 14:38:48 -0500 Subject: [PATCH 14/18] try to ignore conda --- .github/workflows/nf-test.yml | 2 +- modules/msk/gbcms/tests/main.nf.test | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index a76d77d7..4ddc8bda 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -54,7 +54,7 @@ jobs: head: ${{ github.sha }} base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }} n_parents: 0 - exclude_tags: "gpu" + exclude_tags: "no_conda" - name: Separate modules and subworkflows id: outputs diff --git a/modules/msk/gbcms/tests/main.nf.test b/modules/msk/gbcms/tests/main.nf.test index ec1c85b5..e7b77ba4 100644 --- a/modules/msk/gbcms/tests/main.nf.test +++ b/modules/msk/gbcms/tests/main.nf.test @@ -10,6 +10,7 @@ nextflow_process { tag "modules_nfcore" tag "modules_msk" tag "gbcms" + tag "no_conda" test("sarscov2 illumina paired-end [fastq]") { @@ -21,7 +22,7 @@ nextflow_process { file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), - "variant_file.vcf" + "variant_file.vcf" ] input[1] = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) input[2] = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) From 7b375eff4dce51ae84df9a0c0013f437c73a2e2f Mon Sep 17 00:00:00 2001 From: EricWilliam Buehler Date: Wed, 18 Dec 2024 14:43:59 -0500 Subject: [PATCH 15/18] testing actions --- modules/msk/gbcms/main.nf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 575418cd..5a117017 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -11,11 +11,7 @@ process GBCMS { path(fastafai) output: - // small change - // small change - // small change - // small change - // small change + // other change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions From 834a39b1a31559bf5b8fe3209442c80f25987b30 Mon Sep 17 00:00:00 2001 From: EricWilliam Buehler Date: Wed, 18 Dec 2024 14:51:11 -0500 Subject: [PATCH 16/18] testing actions --- modules/msk/gbcms/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/msk/gbcms/main.nf b/modules/msk/gbcms/main.nf index 5a117017..88b57b2d 100644 --- a/modules/msk/gbcms/main.nf +++ b/modules/msk/gbcms/main.nf @@ -11,7 +11,6 @@ process GBCMS { path(fastafai) output: - // other change tuple val(meta), path('*.{vcf,maf}') , emit: variant_file tuple val(meta), path("versions.yml") , emit: versions @@ -27,6 +26,7 @@ process GBCMS { def input_ext = variant_file.getExtension() def variant_input = '' + def test = '' if(input_ext == 'maf') { variant_input = '--maf ' + variant_file From 0ea742781336ec29e137563d7bd356b0f8892ef4 Mon Sep 17 00:00:00 2001 From: buehlere Date: Wed, 18 Dec 2024 15:02:03 -0500 Subject: [PATCH 17/18] getting rid of conda --- .github/workflows/nf-test.yml | 4 ++-- modules/msk/gbcms/tests/main.nf.test | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 4ddc8bda..abd9d66c 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -54,7 +54,7 @@ jobs: head: ${{ github.sha }} base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }} n_parents: 0 - exclude_tags: "no_conda" + exclude_tags: "gpu" - name: Separate modules and subworkflows id: outputs @@ -75,7 +75,7 @@ jobs: fail-fast: false matrix: shard: [1, 2, 3, 4, 5] - profile: [conda, docker, singularity] + profile: [docker, singularity] env: NXF_ANSI_LOG: false TOTAL_SHARDS: 5 diff --git a/modules/msk/gbcms/tests/main.nf.test b/modules/msk/gbcms/tests/main.nf.test index e7b77ba4..0607c133 100644 --- a/modules/msk/gbcms/tests/main.nf.test +++ b/modules/msk/gbcms/tests/main.nf.test @@ -10,7 +10,6 @@ nextflow_process { tag "modules_nfcore" tag "modules_msk" tag "gbcms" - tag "no_conda" test("sarscov2 illumina paired-end [fastq]") { From deb2a4e8f8da01e88def1817a3b27e0c217ffcb1 Mon Sep 17 00:00:00 2001 From: buehlere Date: Tue, 7 Jan 2025 16:42:57 -0500 Subject: [PATCH 18/18] Update nf-test.config --- tests/config/nf-test.config | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/config/nf-test.config b/tests/config/nf-test.config index b79f2f21..0328e16b 100644 --- a/tests/config/nf-test.config +++ b/tests/config/nf-test.config @@ -32,6 +32,10 @@ profiles { docker.fixOwnership = true docker.runOptions = '--platform=linux/amd64' } + apptainer { + apptainer.enabled = true + apptainer.autoMounts = true + } } docker.registry = 'quay.io'