From 6839ad25747603cc2f3a1a3f64ac7948f85eddac Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 13:46:42 -0500 Subject: [PATCH 01/51] ci: Copy over from methylseq --- .github/workflows/ci.yml | 369 ++++------------------------------- .github/workflows/pytest.yml | 369 +++++++++++++++++++++++++++++++++++ 2 files changed, 403 insertions(+), 335 deletions(-) create mode 100644 .github/workflows/pytest.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4252b0d63c..d9999f5092 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,369 +1,68 @@ name: nf-core CI # This workflow runs the pipeline with the minimal test dataset to check that it completes without any syntax errors on: + push: + branches: + - dev pull_request: release: types: [published] - merge_group: - types: - - checks_requested - branches: - - master - - dev env: - NFTEST_VER: "0.9.0" NXF_ANSI_LOG: false - TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" - SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} - NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity - NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity + NFT_VER: "0.9.0" + NFT_WORKDIR: "~" + NFT_DIFF: "pdiff" + NFT_DIFF_ARGS: "--line-numbers --expand-tabs=2" -# Cancel if a newer run is started concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" cancel-in-progress: true jobs: - pytest-changes: - name: Check for changes (pytest) - runs-on: ubuntu-latest - outputs: - # Expose matched filters as job 'tags' output variable - tags: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - uses: frouioui/paths-filter@main - id: filter - with: - filters: "tests/config/pytesttags.yml" - token: "" - - pytest: - name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} + test: runs-on: ubuntu-latest - needs: pytest-changes - if: needs.pytest-changes.outputs.tags != '[]' strategy: fail-fast: false matrix: - tags: ["${{ fromJson(needs.pytest-changes.outputs.tags) }}"] + shard: [1, 2, 3, 4, 5] + NXF_VER: ["latest-stable"] # TODO Test minimum version on release profile: ["docker"] - # profile: ["docker", "singularity", "conda"] - TEST_DATA_BASE: - - "test-datasets/data" - NXF_VER: - - "23.04.0" - - "latest-everything" - exclude: - - tags: "sentieon/bwamem" - - tags: "sentieon/dedup" - - tags: "sentieon/dnascope" - - tags: "sentieon/dnascope_joint_germline" - - tags: "sentieon/dnascope_skip_filter" - - tags: "sentieon/haplotyper" - - tags: "sentieon/haplotyper_joint_germline" - - tags: "sentieon/haplotyper_skip_filter" - - NXF_VER: "latest-everything" - tags: "joint_germline" - steps: - name: Check out pipeline code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - name: Hash Github Workspace - id: hash_workspace - run: | - echo "digest=$(echo sarek3_${{ github.workspace }} | md5sum | cut -c 1-25)" >> $GITHUB_OUTPUT - - - name: Set up Python - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 - with: - python-version: "3.11" - cache: "pip" - cache-dependency-path: | - **/requirements.txt - - - name: Install Python dependencies - run: pip install --upgrade -r tests/requirements.txt - - - name: Install Nextflow ${{ matrix.NXF_VER }} - uses: nf-core/setup-nextflow@v2 - 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 - if: matrix.profile == 'conda' - uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 - with: - miniconda-version: "latest" - auto-update-conda: true - channels: conda-forge,bioconda - - - name: Conda setup - if: matrix.profile == 'conda' - 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 - - - name: Cache test data - id: cache-testdata - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 with: - path: test-datasets/ - key: ${{ steps.hash_workspace.outputs.digest }} + fetch-depth: 0 - - name: Check out test data - if: steps.cache-testdata.outputs.cache-hit != 'true' - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/setup-python@v4 with: - repository: nf-core/test-datasets - ref: sarek3 - path: test-datasets/ - - - name: Replace remote paths in samplesheets - run: | - for f in tests/csv/3.0/*csv; do - sed -i "s=https://raw.githubusercontent.com/nf-core/test-datasets/modules/=${{ github.workspace }}/test-datasets/=g" $f - echo "========== $f ============" - cat $f - echo "========================================" - done; - - # 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=$(python bin/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 - - - name: Conda clean - if: matrix.profile == 'conda' - run: conda clean -a - - - name: Disk space cleanup - uses: jlumbroso/free-disk-space@v1.3.1 - - - name: Run pytest-workflow - uses: Wandalen/wretry.action@v1 - with: - command: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes - attempt_limit: 3 + python-version: "3.11" + architecture: "x64" - - name: Output log on failure - if: failure() + - name: Install pdiff to see diff between nf-test snapshots run: | - sudo apt install bat > /dev/null - batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err} + python -m pip install --upgrade pip + pip install pdiff - - name: Upload logs on failure - if: failure() - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4 - with: - name: logs-${{ matrix.profile }} - 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 - - nftest-changes: - name: Check for changes (nf-test) - runs-on: ubuntu-latest - outputs: - tags: ${{ steps.filter.outputs.changes }} - - steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - name: Combine all tags.yml files - id: get_tags - run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml - - - uses: frouioui/paths-filter@main - id: filter - with: - filters: ".github/tags.yml" - token: "" - - nftest: - name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} - runs-on: ubuntu-latest - needs: nftest-changes - if: needs.nftest-changes.outputs.tags != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.nftest-changes.outputs.tags) }}"] - profile: ["docker"] - # profile: ["docker", "singularity", "conda"] - TEST_DATA_BASE: - - "test-datasets/data" - NXF_VER: - - "23.04.0" - - "latest-everything" - exclude: - - tags: "bcftools/annotate" - - tags: "bcftools/concat" - - tags: "bcftools/mpileup" - - tags: "bcftools/sort" - - tags: "bwa/index" - - tags: "bwa/mem" - - tags: "bwamem2/index" - - tags: "bwamem2/mem" - - tags: "cat/cat" - - tags: "cat/fastq" - - tags: "cnvkit/antitarget" - - tags: "cnvkit/batch" - - tags: "cnvkit/reference" - - tags: "deepvariant" - - tags: "dragmap/align" - - tags: "dragmap/hashtable" - - tags: "ensemblvep/download" - - tags: "ensemblvep/vep" - - tags: "fastp" - - tags: "fastqc" - - tags: "fgbio/fastqtobam" - - tags: "freebayes" - - tags: "gatk4/applybqsr" - - tags: "gatk4/baserecalibrator" - - tags: "gatk4/estimatelibrarycomplexity" - - tags: "gatk4/genomicsdbimport" - - tags: "gatk4/haplotypecaller" - - tags: "gatk4/markduplicates" - - tags: "gatk4/mergevcfs" - - tags: "gatk4/mutect2" - - tags: "gatk4spark/applybqsr" - - tags: "gatk4spark/markduplicates" - - tags: "gawk" - - tags: "lofreq/callparallel" - - tags: "mosdepth" - - tags: "multiqc" - - tags: "ngscheckmate/ncm" - - tags: "samblaster" - - tags: "samtools/convert" - - tags: "samtools/mpileup" - - tags: "samtools/stats" - - tags: "snpeff/snpeff" - - tags: "strelka/germline" - - tags: "strelka/somatic" - - tags: "subworkflows/utils_nfvalidation_plugin" - - tags: "tabix/bgziptabix" - - tags: "tabix/tabix" - - tags: "tiddit/sv" - - tags: "untar" - - tags: "pipeline_sarek" - include: - - tags: "pipeline_sarek" - profile: "test,docker" - - steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - uses: actions/setup-java@2dfa2011c5b2a0f1489bf9e433881c92c1631f88 # v4 - with: - distribution: "temurin" - java-version: "17" - - - name: Install Nextflow ${{ matrix.NXF_VER }} - uses: nf-core/setup-nextflow@v2 + - uses: nf-core/setup-nextflow@v2 with: version: "${{ matrix.NXF_VER }}" - - name: Install nf-test - uses: nf-core/setup-nf-test@v1 + - uses: nf-core/setup-nf-test@v1 with: - version: ${{ env.NFTEST_VER }} - - - name: Setup apptainer - if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-apptainer@main + version: ${{ env.NFT_VER }} - - name: Set up Singularity - if: matrix.profile == 'singularity' - run: | - mkdir -p $NXF_SINGULARITY_CACHEDIR - mkdir -p $NXF_SINGULARITY_LIBRARYDIR - - - name: Set up miniconda - if: matrix.profile == 'conda' - uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 - with: - miniconda-version: "latest" - auto-update-conda: true - channels: conda-forge,bioconda - - - name: Conda setup - if: matrix.profile == 'conda' - 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 bin/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 - - - name: Disk space cleanup - uses: jlumbroso/free-disk-space@v1.3.1 - - # Test the module - - name: Run nf-test + - name: Run Tests (Shard ${{ matrix.shard }}/${{ strategy.job-total }}) run: | nf-test test \ - --profile=${{ matrix.profile }} \ - --tag ${{ matrix.tags }} \ - --tap=test.tap \ - --verbose - - confirm-pass: - runs-on: ubuntu-latest - needs: - - pytest - - nftest - 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) }}" + --ci \ + --shard ${{ matrix.shard }}/${{ strategy.job-total }} \ + --changed-since HEAD^ \ + --profile "+${{ matrix.profile }}" \ + --filter pipeline + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + if: always() # always run even if the previous step fails + with: + report_paths: test.xml diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml new file mode 100644 index 0000000000..bff41935bf --- /dev/null +++ b/.github/workflows/pytest.yml @@ -0,0 +1,369 @@ +name: pytest-workflow +# This workflow runs the pipeline with the minimal test dataset to check that it completes without any syntax errors +on: + pull_request: + release: + types: [published] + merge_group: + types: + - checks_requested + branches: + - master + - dev + +env: + NFTEST_VER: "0.9.0" + NXF_ANSI_LOG: false + TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" + SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} + NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity + NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity + +# Cancel if a newer run is started +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + pytest-changes: + name: Check for changes (pytest) + runs-on: ubuntu-latest + outputs: + # Expose matched filters as job 'tags' output variable + tags: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + - uses: frouioui/paths-filter@main + id: filter + with: + filters: "tests/config/pytesttags.yml" + token: "" + + pytest: + name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} + runs-on: ubuntu-latest + needs: pytest-changes + if: needs.pytest-changes.outputs.tags != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.pytest-changes.outputs.tags) }}"] + profile: ["docker"] + # profile: ["docker", "singularity", "conda"] + TEST_DATA_BASE: + - "test-datasets/data" + NXF_VER: + - "23.04.0" + - "latest-everything" + exclude: + - tags: "sentieon/bwamem" + - tags: "sentieon/dedup" + - tags: "sentieon/dnascope" + - tags: "sentieon/dnascope_joint_germline" + - tags: "sentieon/dnascope_skip_filter" + - tags: "sentieon/haplotyper" + - tags: "sentieon/haplotyper_joint_germline" + - tags: "sentieon/haplotyper_skip_filter" + - NXF_VER: "latest-everything" + tags: "joint_germline" + + steps: + - name: Check out pipeline code + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + - name: Hash Github Workspace + id: hash_workspace + run: | + echo "digest=$(echo sarek3_${{ github.workspace }} | md5sum | cut -c 1-25)" >> $GITHUB_OUTPUT + + - name: Set up Python + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 + with: + python-version: "3.11" + cache: "pip" + cache-dependency-path: | + **/requirements.txt + + - name: Install Python dependencies + run: pip install --upgrade -r tests/requirements.txt + + - name: Install Nextflow ${{ matrix.NXF_VER }} + uses: nf-core/setup-nextflow@v2 + 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 + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 + with: + miniconda-version: "latest" + auto-update-conda: true + channels: conda-forge,bioconda + + - name: Conda setup + if: matrix.profile == 'conda' + 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 + + - name: Cache test data + id: cache-testdata + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + with: + path: test-datasets/ + key: ${{ steps.hash_workspace.outputs.digest }} + + - name: Check out test data + if: steps.cache-testdata.outputs.cache-hit != 'true' + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + with: + repository: nf-core/test-datasets + ref: sarek3 + path: test-datasets/ + + - name: Replace remote paths in samplesheets + run: | + for f in tests/csv/3.0/*csv; do + sed -i "s=https://raw.githubusercontent.com/nf-core/test-datasets/modules/=${{ github.workspace }}/test-datasets/=g" $f + echo "========== $f ============" + cat $f + echo "========================================" + done; + + # 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=$(python bin/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 + + - name: Conda clean + if: matrix.profile == 'conda' + run: conda clean -a + + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@v1.3.1 + + - name: Run pytest-workflow + uses: Wandalen/wretry.action@v1 + with: + command: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes + attempt_limit: 3 + + - name: Output log on failure + if: failure() + run: | + sudo apt install bat > /dev/null + batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err} + + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4 + with: + name: logs-${{ matrix.profile }} + 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 + + nftest-changes: + name: Check for changes (nf-test) + runs-on: ubuntu-latest + outputs: + tags: ${{ steps.filter.outputs.changes }} + + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + - name: Combine all tags.yml files + id: get_tags + run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml + + - uses: frouioui/paths-filter@main + id: filter + with: + filters: ".github/tags.yml" + token: "" + + nftest: + name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} + runs-on: ubuntu-latest + needs: nftest-changes + if: needs.nftest-changes.outputs.tags != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.nftest-changes.outputs.tags) }}"] + profile: ["docker"] + # profile: ["docker", "singularity", "conda"] + TEST_DATA_BASE: + - "test-datasets/data" + NXF_VER: + - "23.04.0" + - "latest-everything" + exclude: + - tags: "bcftools/annotate" + - tags: "bcftools/concat" + - tags: "bcftools/mpileup" + - tags: "bcftools/sort" + - tags: "bwa/index" + - tags: "bwa/mem" + - tags: "bwamem2/index" + - tags: "bwamem2/mem" + - tags: "cat/cat" + - tags: "cat/fastq" + - tags: "cnvkit/antitarget" + - tags: "cnvkit/batch" + - tags: "cnvkit/reference" + - tags: "deepvariant" + - tags: "dragmap/align" + - tags: "dragmap/hashtable" + - tags: "ensemblvep/download" + - tags: "ensemblvep/vep" + - tags: "fastp" + - tags: "fastqc" + - tags: "fgbio/fastqtobam" + - tags: "freebayes" + - tags: "gatk4/applybqsr" + - tags: "gatk4/baserecalibrator" + - tags: "gatk4/estimatelibrarycomplexity" + - tags: "gatk4/genomicsdbimport" + - tags: "gatk4/haplotypecaller" + - tags: "gatk4/markduplicates" + - tags: "gatk4/mergevcfs" + - tags: "gatk4/mutect2" + - tags: "gatk4spark/applybqsr" + - tags: "gatk4spark/markduplicates" + - tags: "gawk" + - tags: "lofreq/callparallel" + - tags: "mosdepth" + - tags: "multiqc" + - tags: "ngscheckmate/ncm" + - tags: "samblaster" + - tags: "samtools/convert" + - tags: "samtools/mpileup" + - tags: "samtools/stats" + - tags: "snpeff/snpeff" + - tags: "strelka/germline" + - tags: "strelka/somatic" + - tags: "subworkflows/utils_nfvalidation_plugin" + - tags: "tabix/bgziptabix" + - tags: "tabix/tabix" + - tags: "tiddit/sv" + - tags: "untar" + - tags: "pipeline_sarek" + include: + - tags: "pipeline_sarek" + profile: "test,docker" + + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + + - uses: actions/setup-java@2dfa2011c5b2a0f1489bf9e433881c92c1631f88 # v4 + with: + distribution: "temurin" + java-version: "17" + + - name: Install Nextflow ${{ matrix.NXF_VER }} + uses: nf-core/setup-nextflow@v2 + with: + version: "${{ matrix.NXF_VER }}" + + - name: Install nf-test + uses: nf-core/setup-nf-test@v1 + with: + version: ${{ env.NFTEST_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 + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 + with: + miniconda-version: "latest" + auto-update-conda: true + channels: conda-forge,bioconda + + - name: Conda setup + if: matrix.profile == 'conda' + 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 bin/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 + + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@v1.3.1 + + # Test the module + - name: Run nf-test + run: | + nf-test test \ + --profile=${{ matrix.profile }} \ + --tag ${{ matrix.tags }} \ + --tap=test.tap \ + --verbose + + confirm-pass: + runs-on: ubuntu-latest + needs: + - pytest + - nftest + 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) }}" From 6fdf0379031b57e2c93e78a0e79f074482c60975 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 13:55:17 -0500 Subject: [PATCH 02/51] ci: Move Sarek specific settings to ci --- .github/nf-test-tags.yml | 54 ++++++++++++ .github/workflows/ci.yml | 42 ++++++++- .github/workflows/pytest.yml | 161 ----------------------------------- 3 files changed, 94 insertions(+), 163 deletions(-) create mode 100644 .github/nf-test-tags.yml diff --git a/.github/nf-test-tags.yml b/.github/nf-test-tags.yml new file mode 100644 index 0000000000..7e01f45416 --- /dev/null +++ b/.github/nf-test-tags.yml @@ -0,0 +1,54 @@ +exclude: + - tags: "bcftools/annotate" + - tags: "bcftools/concat" + - tags: "bcftools/mpileup" + - tags: "bcftools/sort" + - tags: "bwa/index" + - tags: "bwa/mem" + - tags: "bwamem2/index" + - tags: "bwamem2/mem" + - tags: "cat/cat" + - tags: "cat/fastq" + - tags: "cnvkit/antitarget" + - tags: "cnvkit/batch" + - tags: "cnvkit/reference" + - tags: "deepvariant" + - tags: "dragmap/align" + - tags: "dragmap/hashtable" + - tags: "ensemblvep/download" + - tags: "ensemblvep/vep" + - tags: "fastp" + - tags: "fastqc" + - tags: "fgbio/fastqtobam" + - tags: "freebayes" + - tags: "gatk4/applybqsr" + - tags: "gatk4/baserecalibrator" + - tags: "gatk4/estimatelibrarycomplexity" + - tags: "gatk4/genomicsdbimport" + - tags: "gatk4/haplotypecaller" + - tags: "gatk4/markduplicates" + - tags: "gatk4/mergevcfs" + - tags: "gatk4/mutect2" + - tags: "gatk4spark/applybqsr" + - tags: "gatk4spark/markduplicates" + - tags: "gawk" + - tags: "lofreq/callparallel" + - tags: "mosdepth" + - tags: "multiqc" + - tags: "ngscheckmate/ncm" + - tags: "samblaster" + - tags: "samtools/convert" + - tags: "samtools/mpileup" + - tags: "samtools/stats" + - tags: "snpeff/snpeff" + - tags: "strelka/germline" + - tags: "strelka/somatic" + - tags: "subworkflows/utils_nfvalidation_plugin" + - tags: "tabix/bgziptabix" + - tags: "tabix/tabix" + - tags: "tiddit/sv" + - tags: "untar" + - tags: "pipeline_sarek" +include: + - tags: "pipeline_sarek" + profile: "test,docker" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d9999f5092..611f7595e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,10 @@ env: NFT_WORKDIR: "~" NFT_DIFF: "pdiff" NFT_DIFF_ARGS: "--line-numbers --expand-tabs=2" + TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" + SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} + NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity + NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity concurrency: group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" @@ -26,8 +30,9 @@ jobs: fail-fast: false matrix: shard: [1, 2, 3, 4, 5] - NXF_VER: ["latest-stable"] # TODO Test minimum version on release + NXF_VER: ["23.04.0", "latest-everything"] # TODO Test minimum version on release profile: ["docker"] + filter: ["pipeline", "workflow"] # TODO Modules and Functions steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 @@ -52,14 +57,47 @@ jobs: with: version: ${{ env.NFT_VER }} + - name: Set up miniconda + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 + with: + miniconda-version: "latest" + auto-update-conda: true + channels: conda-forge,bioconda,defaults + + - name: Conda setup + if: matrix.profile == 'conda' + 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 + + - 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 bin/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 + + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@v1.3.1 + - name: Run Tests (Shard ${{ matrix.shard }}/${{ strategy.job-total }}) run: | nf-test test \ --ci \ + --tap=test.tap \ + --verbose \ --shard ${{ matrix.shard }}/${{ strategy.job-total }} \ --changed-since HEAD^ \ --profile "+${{ matrix.profile }}" \ - --filter pipeline + --filter ${{ matrix.filter }} - name: Publish Test Report uses: mikepenz/action-junit-report@v3 diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index bff41935bf..df63fce6f8 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -12,7 +12,6 @@ on: - dev env: - NFTEST_VER: "0.9.0" NXF_ANSI_LOG: false TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} @@ -189,170 +188,10 @@ jobs: !/home/ubuntu/pytest_workflow_*/*/work/singularity !${{ github.workspace }}/.singularity - nftest-changes: - name: Check for changes (nf-test) - runs-on: ubuntu-latest - outputs: - tags: ${{ steps.filter.outputs.changes }} - - steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - name: Combine all tags.yml files - id: get_tags - run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml - - - uses: frouioui/paths-filter@main - id: filter - with: - filters: ".github/tags.yml" - token: "" - - nftest: - name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} - runs-on: ubuntu-latest - needs: nftest-changes - if: needs.nftest-changes.outputs.tags != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.nftest-changes.outputs.tags) }}"] - profile: ["docker"] - # profile: ["docker", "singularity", "conda"] - TEST_DATA_BASE: - - "test-datasets/data" - NXF_VER: - - "23.04.0" - - "latest-everything" - exclude: - - tags: "bcftools/annotate" - - tags: "bcftools/concat" - - tags: "bcftools/mpileup" - - tags: "bcftools/sort" - - tags: "bwa/index" - - tags: "bwa/mem" - - tags: "bwamem2/index" - - tags: "bwamem2/mem" - - tags: "cat/cat" - - tags: "cat/fastq" - - tags: "cnvkit/antitarget" - - tags: "cnvkit/batch" - - tags: "cnvkit/reference" - - tags: "deepvariant" - - tags: "dragmap/align" - - tags: "dragmap/hashtable" - - tags: "ensemblvep/download" - - tags: "ensemblvep/vep" - - tags: "fastp" - - tags: "fastqc" - - tags: "fgbio/fastqtobam" - - tags: "freebayes" - - tags: "gatk4/applybqsr" - - tags: "gatk4/baserecalibrator" - - tags: "gatk4/estimatelibrarycomplexity" - - tags: "gatk4/genomicsdbimport" - - tags: "gatk4/haplotypecaller" - - tags: "gatk4/markduplicates" - - tags: "gatk4/mergevcfs" - - tags: "gatk4/mutect2" - - tags: "gatk4spark/applybqsr" - - tags: "gatk4spark/markduplicates" - - tags: "gawk" - - tags: "lofreq/callparallel" - - tags: "mosdepth" - - tags: "multiqc" - - tags: "ngscheckmate/ncm" - - tags: "samblaster" - - tags: "samtools/convert" - - tags: "samtools/mpileup" - - tags: "samtools/stats" - - tags: "snpeff/snpeff" - - tags: "strelka/germline" - - tags: "strelka/somatic" - - tags: "subworkflows/utils_nfvalidation_plugin" - - tags: "tabix/bgziptabix" - - tags: "tabix/tabix" - - tags: "tiddit/sv" - - tags: "untar" - - tags: "pipeline_sarek" - include: - - tags: "pipeline_sarek" - profile: "test,docker" - - steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - uses: actions/setup-java@2dfa2011c5b2a0f1489bf9e433881c92c1631f88 # v4 - with: - distribution: "temurin" - java-version: "17" - - - name: Install Nextflow ${{ matrix.NXF_VER }} - uses: nf-core/setup-nextflow@v2 - with: - version: "${{ matrix.NXF_VER }}" - - - name: Install nf-test - uses: nf-core/setup-nf-test@v1 - with: - version: ${{ env.NFTEST_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 - if: matrix.profile == 'conda' - uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 - with: - miniconda-version: "latest" - auto-update-conda: true - channels: conda-forge,bioconda - - - name: Conda setup - if: matrix.profile == 'conda' - 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 bin/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 - - - name: Disk space cleanup - uses: jlumbroso/free-disk-space@v1.3.1 - - # Test the module - - name: Run nf-test - run: | - nf-test test \ - --profile=${{ matrix.profile }} \ - --tag ${{ matrix.tags }} \ - --tap=test.tap \ - --verbose - confirm-pass: runs-on: ubuntu-latest needs: - pytest - - nftest if: always() steps: - name: All tests ok From ac87c356c9fb47e4c824e366520dd798b21fa742 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 14:01:01 -0500 Subject: [PATCH 03/51] ci: tap => xml --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 611f7595e9..05da504c39 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,7 +92,7 @@ jobs: run: | nf-test test \ --ci \ - --tap=test.tap \ + --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ --verbose \ --shard ${{ matrix.shard }}/${{ strategy.job-total }} \ --changed-since HEAD^ \ @@ -100,7 +100,7 @@ jobs: --filter ${{ matrix.filter }} - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - if: always() # always run even if the previous step fails + uses: mikepenz/action-junit-report@v4 + if: success() || failure() # always run even if the previous step fails with: - report_paths: test.xml + report_paths: "TEST-*.xml" From 50b9c886c0f93e0fe26856e5e99d0b406bbd80a4 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 14:43:54 -0500 Subject: [PATCH 04/51] build: Add triggers --- nf-test.config | 1 + 1 file changed, 1 insertion(+) diff --git a/nf-test.config b/nf-test.config index 208636eda6..a2f1f5b8ad 100644 --- a/nf-test.config +++ b/nf-test.config @@ -3,6 +3,7 @@ config { workDir ".nf-test" configFile "conf/test.config" profile "test" + triggers 'nextflow.config', 'nf-test.config', 'conf/test.config', 'conf/test_full.config' plugins { load "nft-utils@0.0.1" From 277c7fa02ab7957da97423dc40a269c7ccb2f370 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 15:01:47 -0500 Subject: [PATCH 05/51] ci: Add clean up --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05da504c39..eacba5ab62 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,3 +104,8 @@ jobs: if: success() || failure() # always run even if the previous step fails with: report_paths: "TEST-*.xml" + + - name: Clean up + if: always() + run: | + sudo rm -rf /home/ubuntu/tests/ From fb36aa8ea6ee5cea3b73a9e9ef0ef2b48aeec52d Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 15:03:39 -0500 Subject: [PATCH 06/51] ci: Give jobs a name --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eacba5ab62..633ee4dbb4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,13 +26,14 @@ concurrency: jobs: test: runs-on: ubuntu-latest + name: ${{ matrix.NXF_VER }} | ${{ matrix.filter }} | ${{ matrix.profile }} | ${{ matrix.shard }} strategy: fail-fast: false matrix: - shard: [1, 2, 3, 4, 5] NXF_VER: ["23.04.0", "latest-everything"] # TODO Test minimum version on release - profile: ["docker"] filter: ["pipeline", "workflow"] # TODO Modules and Functions + profile: ["docker"] + shard: [1, 2, 3, 4, 5] steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 From ca0cfc3b8923bd5c89315afa937d76f10fce89e0 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 15:08:45 -0500 Subject: [PATCH 07/51] ci: job-total => 5 --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 633ee4dbb4..170509c395 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,13 +89,13 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@v1.3.1 - - name: Run Tests (Shard ${{ matrix.shard }}/${{ strategy.job-total }}) + - name: Run Tests (Shard ${{ matrix.shard }}/5) run: | nf-test test \ --ci \ --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ --verbose \ - --shard ${{ matrix.shard }}/${{ strategy.job-total }} \ + --shard ${{ matrix.shard }}/5 \ --changed-since HEAD^ \ --profile "+${{ matrix.profile }}" \ --filter ${{ matrix.filter }} From 06f22b657d0b0ee75abeabcae1b81143e307dbf5 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 15:17:29 -0500 Subject: [PATCH 08/51] ci: Follow dependencies --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 170509c395..14fef6b3b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: fail-fast: false matrix: NXF_VER: ["23.04.0", "latest-everything"] # TODO Test minimum version on release - filter: ["pipeline", "workflow"] # TODO Modules and Functions + filter: ["pipeline", "workflow", "process"] # TODO Functions profile: ["docker"] shard: [1, 2, 3, 4, 5] steps: @@ -97,6 +97,7 @@ jobs: --verbose \ --shard ${{ matrix.shard }}/5 \ --changed-since HEAD^ \ + --follow-dependencies \ --profile "+${{ matrix.profile }}" \ --filter ${{ matrix.filter }} From fcec8fab670456357c2c974800b6af1ba46c1bf2 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 1 Oct 2024 15:19:03 -0500 Subject: [PATCH 09/51] ci: Wondering if we can combine proccesses and functions To save runners --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14fef6b3b1..f1ac073348 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: fail-fast: false matrix: NXF_VER: ["23.04.0", "latest-everything"] # TODO Test minimum version on release - filter: ["pipeline", "workflow", "process"] # TODO Functions + filter: ["pipeline", "workflow", "process,function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] steps: From f44ffa339d8efd47a81d002c18ba443cef491d6b Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 2 Oct 2024 09:34:28 -0500 Subject: [PATCH 10/51] test: Manually nump software versions txt --- tests/main.nf.test.snap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/main.nf.test.snap b/tests/main.nf.test.snap index 7ce873964c..1fe8c40ab9 100644 --- a/tests/main.nf.test.snap +++ b/tests/main.nf.test.snap @@ -143,7 +143,7 @@ "multiqc_citations.txt:md5,4660dd5d8757841ed75dca3a90d21617", "multiqc_fastqc.txt:md5,bde0d0bffa62228b33fb68b7e25b6ff8", "multiqc_samtools_stats.txt:md5,0f1e4c6c497d9a952765f9f3068ea4b9", - "multiqc_software_versions.txt:md5,2c9d16da278a231b0dc4c4cb5c08e626", + "multiqc_software_versions.txt:md5,c596381071f4245cf706dc2aed5ee1a9", "picard_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", "picard_histogram_1.txt:md5,d41d8cd98f00b204e9800998ecf8427e", "picard_histogram_2.txt:md5,d41d8cd98f00b204e9800998ecf8427e", @@ -173,4 +173,4 @@ }, "timestamp": "2024-10-01T10:33:51.201431" } -} \ No newline at end of file +} From 5187cc1e84de7c53907b7cd69f0f457f1630ddbc Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 2 Oct 2024 09:35:50 -0500 Subject: [PATCH 11/51] ci: Run processes and functions seperately --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1ac073348..c69fd23642 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: fail-fast: false matrix: NXF_VER: ["23.04.0", "latest-everything"] # TODO Test minimum version on release - filter: ["pipeline", "workflow", "process,function"] + filter: ["pipeline", "workflow", "process", "function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] steps: From ee7107fc6c4ea26a5d899c6cc5d88317f67fea2a Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 2 Oct 2024 10:06:47 -0500 Subject: [PATCH 12/51] ci(#1672): Remove latest-everything --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c69fd23642..6cde7f0201 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,8 @@ jobs: strategy: fail-fast: false matrix: - NXF_VER: ["23.04.0", "latest-everything"] # TODO Test minimum version on release + # BUG: "latest-everything" https://github.com/nf-core/sarek/issues/1672 + NXF_VER: ["23.04.0"] # TODO Test minimum version on release filter: ["pipeline", "workflow", "process", "function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] From 89d1b07cc8864f09018c3e405d8e2aa76aacfbdd Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 4 Oct 2024 09:04:59 +0200 Subject: [PATCH 13/51] Update .github/workflows/ci.yml --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c3d3d7724..fcab02aeca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,8 +30,9 @@ jobs: strategy: fail-fast: false matrix: - # BUG: "latest-everything" https://github.com/nf-core/sarek/issues/1672 - NXF_VER: ["23.04.0"] # TODO Test minimum version on release + NXF_VER: + - "23.04.0" + - "latest-everything" filter: ["pipeline", "workflow", "process", "function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] From 9edd171339dee9e0ee6416bb4f04551e5489c13b Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 4 Oct 2024 09:08:47 +0200 Subject: [PATCH 14/51] Update .github/nf-test-tags.yml --- .github/nf-test-tags.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/nf-test-tags.yml b/.github/nf-test-tags.yml index 7e01f45416..1c4f61b4d4 100644 --- a/.github/nf-test-tags.yml +++ b/.github/nf-test-tags.yml @@ -48,7 +48,3 @@ exclude: - tags: "tabix/tabix" - tags: "tiddit/sv" - tags: "untar" - - tags: "pipeline_sarek" -include: - - tags: "pipeline_sarek" - profile: "test,docker" From bf661f42980840f028043cbedfb903783f43aa5d Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 09:26:29 +0200 Subject: [PATCH 15/51] no need for tags --- tests/main.nf.test | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/main.nf.test b/tests/main.nf.test index 748e4df596..ab497d52fa 100644 --- a/tests/main.nf.test +++ b/tests/main.nf.test @@ -2,8 +2,6 @@ nextflow_pipeline { name "Test pipeline" script "../main.nf" - tag "pipeline" - tag "pipeline_sarek" test("Run with profile test") { From 8386f980b0458901543ab72f9daacb91f3052fe0 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 09:41:14 +0200 Subject: [PATCH 16/51] just 1 shard for pipeline as we have just 1 test currently --- .github/workflows/ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcab02aeca..2e3e4aaf39 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,16 +26,19 @@ concurrency: jobs: test: runs-on: ubuntu-latest - name: ${{ matrix.NXF_VER }} | ${{ matrix.filter }} | ${{ matrix.profile }} | ${{ matrix.shard }} + name: "${{ matrix.NXF_VER }} | ${{ matrix.filter }} | ${{ matrix.profile }} | ${{ matrix.shard }}" strategy: fail-fast: false matrix: NXF_VER: - "23.04.0" - "latest-everything" - filter: ["pipeline", "workflow", "process", "function"] + filter: ["workflow", "process", "function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] + include: + - filter: "pipeline" + shard: [1] steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 From 6924616aa19a5f1b2a37a32dc0e28f1801965217 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 09:43:42 +0200 Subject: [PATCH 17/51] just 1 shard for pipeline as we have just 1 test currently --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e3e4aaf39..f0d0dae03d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,12 +33,12 @@ jobs: NXF_VER: - "23.04.0" - "latest-everything" - filter: ["workflow", "process", "function"] + filter: ["pipeline", "workflow", "process", "function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] - include: + exclude: - filter: "pipeline" - shard: [1] + shard: [2, 3, 4, 5] steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 From 304198c5ddd78ff2874dffa05a0e8ba2dec740ad Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 09:46:03 +0200 Subject: [PATCH 18/51] just 1 shard for pipeline as we have just 1 test currently --- .github/workflows/ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0d0dae03d..0718a79ce7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,13 @@ jobs: shard: [1, 2, 3, 4, 5] exclude: - filter: "pipeline" - shard: [2, 3, 4, 5] + shard: 2 + - filter: "pipeline" + shard: 3 + - filter: "pipeline" + shard: 4 + - filter: "pipeline" + shard: 5 steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 From bea4da624f87ea99680bab4cf3691577936cbe05 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 10:26:04 +0200 Subject: [PATCH 19/51] fix samplesheet_to_channel test --- .../local/samplesheet_to_channel/main.nf.test | 34 ---------- .../samplesheet_to_channel/tests/main.nf.test | 62 +++++++++++++++++++ .../{ => tests}/main.nf.test.snap | 22 ++++--- 3 files changed, 75 insertions(+), 43 deletions(-) delete mode 100644 subworkflows/local/samplesheet_to_channel/main.nf.test create mode 100644 subworkflows/local/samplesheet_to_channel/tests/main.nf.test rename subworkflows/local/samplesheet_to_channel/{ => tests}/main.nf.test.snap (55%) diff --git a/subworkflows/local/samplesheet_to_channel/main.nf.test b/subworkflows/local/samplesheet_to_channel/main.nf.test deleted file mode 100644 index 49eeb2a132..0000000000 --- a/subworkflows/local/samplesheet_to_channel/main.nf.test +++ /dev/null @@ -1,34 +0,0 @@ -nextflow_workflow { - - name "Test Workflow SAMPLESHEET_TO_CHANNEL" - script "subworkflows/local/samplesheet_to_channel/main.nf" - workflow "SAMPLESHEET_TO_CHANNEL" - - test("Should run without failures") { - - when { - params { - // define parameters here. Example: - skip_tools = 'baserecalibrator' - - } - workflow { - """ - // define inputs of the workflow here. Example: - input[0] = Channel.of([['patient':'test', 'sample':'test', - 'sex':'XX', 'status':0, 'lane':'test_L1'], - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), - [], [], [], [], [], [], []]) - """ - } - } - - then { - assert workflow.success - assert snapshot(workflow.out).match() - } - - } - -} diff --git a/subworkflows/local/samplesheet_to_channel/tests/main.nf.test b/subworkflows/local/samplesheet_to_channel/tests/main.nf.test new file mode 100644 index 0000000000..e1c8682d27 --- /dev/null +++ b/subworkflows/local/samplesheet_to_channel/tests/main.nf.test @@ -0,0 +1,62 @@ +nextflow_workflow { + + name "Test Workflow SAMPLESHEET_TO_CHANNEL" + script "../main.nf" + workflow "SAMPLESHEET_TO_CHANNEL" + + test("Should run without failures") { + when { + params { + } + workflow { + """ + // define inputs of the workflow here. Example: + input[0] = Channel.of([ + ['patient':'test', 'sample':'test', + 'sex':'XX', 'status':0, 'lane':'test_L1'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz', checkIfExists: true), + [], [], [], [], [], [], [], [], [] + ]) + input[1] = 'bwa-mem' // aligner + input[2] = [] // ascat_alleles + input[3] = [] // ascat_loci + input[4] = [] // ascat_loci_gc + input[5] = [] // ascat_loci_rt + input[6] = [] // bcftools_annotations + input[7] = [] // bcftools_annotations_tbi + input[8] = [] // bcftools_header_lines + input[9] = false // build_only_index + input[10] = [] // dbsnp + input[11] = [] // fasta + input[12] = [] // germline_resource + input[13] = [] // intervals + input[14] = false // joint_germline + input[15] = false // joint_mutect2 + input[16] = [] // known_indels + input[17] = [] // known_snps + input[18] = false // no_intervals + input[19] = [] // pon + input[20] = 'variant' // sentieon_dnascope_emit_mode + input[21] = 'variant' // sentieon_haplotyper_emit_mode + input[22] = '' // seq_center + input[23] = 'ILLUMINA' // seq_platform + input[24] = 'baserecalibrator' // skip_tools + input[25] = [] // snpeff_cache + input[26] = 'WBcel235.105' // snpeff_db + input[27] = 'mapping' // step + input[28] = 'strelka' // tools + input[29] = [] // umi_read_structure + input[30] = false // wes + """ + } + } + + then { + assert workflow.success + assert snapshot(workflow.out).match() + } + + } + +} diff --git a/subworkflows/local/samplesheet_to_channel/main.nf.test.snap b/subworkflows/local/samplesheet_to_channel/tests/main.nf.test.snap similarity index 55% rename from subworkflows/local/samplesheet_to_channel/main.nf.test.snap rename to subworkflows/local/samplesheet_to_channel/tests/main.nf.test.snap index fa440f539b..758041c999 100644 --- a/subworkflows/local/samplesheet_to_channel/main.nf.test.snap +++ b/subworkflows/local/samplesheet_to_channel/tests/main.nf.test.snap @@ -9,15 +9,15 @@ "sample": "test", "sex": "XX", "status": 0, + "lane": "test_L1", "id": "test-test_L1", + "data_type": "fastq_gz", "num_lanes": 1, - "read_group": "\"@RG\\tID:null.test.test_L1\\tPU:test_L1\\tSM:test_test\\tLB:test\\tDS:null\\tPL:ILLUMINA\"", - "data_type": "fastq", "size": 1 }, [ - "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz", - "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" + "/ngi-igenomes/testdata/nf-core/modules/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz", + "/ngi-igenomes/testdata/nf-core/modules/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" ] ] ], @@ -28,20 +28,24 @@ "sample": "test", "sex": "XX", "status": 0, + "lane": "test_L1", "id": "test-test_L1", + "data_type": "fastq_gz", "num_lanes": 1, - "read_group": "\"@RG\\tID:null.test.test_L1\\tPU:test_L1\\tSM:test_test\\tLB:test\\tDS:null\\tPL:ILLUMINA\"", - "data_type": "fastq", "size": 1 }, [ - "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz", - "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" + "/ngi-igenomes/testdata/nf-core/modules/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz", + "/ngi-igenomes/testdata/nf-core/modules/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" ] ] ] } ], - "timestamp": "2023-10-16T14:12:54.640503" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-04T10:25:14.620549" } } \ No newline at end of file From 1304a7ce75024f0dbedff20a459d63dc903c282a Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 14:54:31 +0200 Subject: [PATCH 20/51] update all modules/subworkflows --- modules.json | 30 ++-- modules/nf-core/bcftools/concat/main.nf | 16 +- modules/nf-core/bcftools/concat/meta.yml | 27 ++- .../bcftools/concat/tests/main.nf.test | 18 +- .../bcftools/concat/tests/main.nf.test.snap | 158 +++++++++--------- modules/nf-core/gatk4/applybqsr/main.nf | 13 ++ .../gatk4/applybqsr/tests/main.nf.test | 59 +++++++ .../gatk4/applybqsr/tests/main.nf.test.snap | 78 +++++++++ .../gatk4/gatherpileupsummaries/main.nf | 11 ++ .../gatherpileupsummaries/tests/main.nf.test | 25 +++ .../tests/main.nf.test.snap | 35 ++++ .../sentieon/applyvarcal/environment.yml | 2 +- modules/nf-core/sentieon/applyvarcal/main.nf | 4 +- .../nf-core/sentieon/bwamem/environment.yml | 2 +- modules/nf-core/sentieon/bwamem/main.nf | 4 +- .../sentieon/bwamem/tests/main.nf.test.snap | 50 +++--- .../nf-core/sentieon/dedup/environment.yml | 2 +- modules/nf-core/sentieon/dedup/main.nf | 4 +- .../sentieon/dedup/tests/main.nf.test.snap | 56 +++---- .../sentieon/dnamodelapply/environment.yml | 2 +- .../nf-core/sentieon/dnamodelapply/main.nf | 4 +- .../nf-core/sentieon/dnascope/environment.yml | 2 +- modules/nf-core/sentieon/dnascope/main.nf | 4 +- .../sentieon/gvcftyper/environment.yml | 2 +- modules/nf-core/sentieon/gvcftyper/main.nf | 4 +- .../gvcftyper/tests/main.nf.test.snap | 38 ++--- .../sentieon/haplotyper/environment.yml | 2 +- modules/nf-core/sentieon/haplotyper/main.nf | 4 +- .../haplotyper/tests/main.nf.test.snap | 50 +++--- .../nf-core/sentieon/varcal/environment.yml | 2 +- modules/nf-core/sentieon/varcal/main.nf | 4 +- modules/nf-core/tabix/bgziptabix/main.nf | 5 +- .../tabix/bgziptabix/tests/main.nf.test | 29 ++++ .../tabix/bgziptabix/tests/main.nf.test.snap | 73 ++++++-- .../nf-core/utils_nextflow_pipeline/main.nf | 24 ++- .../tests/nextflow.config | 2 +- .../nf-core/utils_nfcore_pipeline/main.nf | 45 +++-- .../tests/main.nf.test | 2 +- 38 files changed, 596 insertions(+), 296 deletions(-) diff --git a/modules.json b/modules.json index 96ff1b1cba..1bb6c3ab13 100644 --- a/modules.json +++ b/modules.json @@ -18,7 +18,7 @@ }, "bcftools/concat": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "d1e0ec7670fa77905a378627232566ce54c3c26d", "installed_by": ["modules"] }, "bcftools/mpileup": { @@ -181,7 +181,7 @@ }, "gatk4/applybqsr": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "6b3bf38285d94cc1ea3cd9fa93310d54b04c3819", "installed_by": ["modules"] }, "gatk4/applyvqsr": { @@ -231,7 +231,7 @@ }, "gatk4/gatherpileupsummaries": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "679f45cae4f603f12d7c38c042afee11150574a0", "installed_by": ["modules"] }, "gatk4/genomicsdbimport": { @@ -406,42 +406,42 @@ }, "sentieon/applyvarcal": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/bwamem": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/dedup": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/dnamodelapply": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/dnascope": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/gvcftyper": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/haplotyper": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "sentieon/varcal": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "eb7b70119bfb1877334c996d13e520c61b21067d", "installed_by": ["modules"] }, "snpeff/download": { @@ -476,7 +476,7 @@ }, "tabix/bgziptabix": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "f448e846bdadd80fc8be31fbbc78d9f5b5131a45", "installed_by": ["modules", "vcf_annotate_snpeff"] }, "tabix/tabix": { @@ -515,17 +515,17 @@ }, "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "d20fb2a9cc3e2835e9d067d1046a63252eb17352", "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", + "git_sha": "2fdce49d30c0254f76bc0f13c55c17455c1251ab", "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "1f19c093c86ae49d1899e234d4aa4d56c57be780", "installed_by": ["subworkflows"] }, "vcf_annotate_ensemblvep": { diff --git a/modules/nf-core/bcftools/concat/main.nf b/modules/nf-core/bcftools/concat/main.nf index e2337eff25..a94b28d86d 100644 --- a/modules/nf-core/bcftools/concat/main.nf +++ b/modules/nf-core/bcftools/concat/main.nf @@ -11,18 +11,22 @@ process BCFTOOLS_CONCAT { tuple val(meta), path(vcfs), path(tbi) output: - tuple val(meta), path("*.gz") , emit: vcf - tuple val(meta), path("*.tbi"), emit: tbi, optional: true - tuple val(meta), path("*.csi"), emit: csi, optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}.vcf.gz") , emit: vcf + tuple val(meta), path("${prefix}.vcf.gz.tbi"), emit: tbi, optional: true + tuple val(meta), path("${prefix}.vcf.gz.csi"), emit: csi, optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" + def tbi_names = tbi.findAll { file -> !(file instanceof List) }.collect { file -> file.name } + def create_input_index = vcfs.collect { vcf -> tbi_names.contains(vcf.name + ".tbi") ? "" : "tabix ${vcf}" }.join("\n ") """ + ${create_input_index} + bcftools concat \\ --output ${prefix}.vcf.gz \\ $args \\ @@ -37,7 +41,7 @@ process BCFTOOLS_CONCAT { stub: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" def index = args.contains("--write-index=tbi") || args.contains("-W=tbi") ? "tbi" : args.contains("--write-index=csi") || args.contains("-W=csi") ? "csi" : args.contains("--write-index") || args.contains("-W") ? "csi" : diff --git a/modules/nf-core/bcftools/concat/meta.yml b/modules/nf-core/bcftools/concat/meta.yml index b5d1f5b2ce..d2565b289f 100644 --- a/modules/nf-core/bcftools/concat/meta.yml +++ b/modules/nf-core/bcftools/concat/meta.yml @@ -37,9 +37,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - "*.gz": - type: file - description: VCF concatenated output file + pattern: "*.{vcf.gz}" + - ${prefix}.vcf.gz: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.{vcf.gz}" - tbi: - meta: @@ -47,9 +50,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - "*.tbi": - type: file - description: Alternative VCF file index + pattern: "*.tbi" + - ${prefix}.vcf.gz.tbi: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.tbi" - csi: - meta: @@ -57,9 +63,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - "*.csi": - type: file - description: Default VCF file index + pattern: "*.csi" + - ${prefix}.vcf.gz.csi: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.csi" - versions: - versions.yml: diff --git a/modules/nf-core/bcftools/concat/tests/main.nf.test b/modules/nf-core/bcftools/concat/tests/main.nf.test index cea386e3bd..cb4642b29c 100644 --- a/modules/nf-core/bcftools/concat/tests/main.nf.test +++ b/modules/nf-core/bcftools/concat/tests/main.nf.test @@ -10,7 +10,7 @@ nextflow_process { tag "bcftools/concat" - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]]") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]]") { config "./nextflow.config" @@ -41,7 +41,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index") { config "./vcf_gz_index.config" @@ -78,7 +78,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi") { config "./vcf_gz_index_csi.config" @@ -115,7 +115,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi") { config "./vcf_gz_index_tbi.config" @@ -153,7 +153,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], []]") { + test("homo_sapiens - [[vcf1, vcf2], []]") { config "./nextflow.config" @@ -181,7 +181,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - stub") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - stub") { config "./nextflow.config" options "-stub" @@ -213,7 +213,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index - stub") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index - stub") { config "./vcf_gz_index.config" options "-stub" @@ -246,7 +246,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi - stub") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi - stub") { config "./vcf_gz_index_csi.config" options "-stub" @@ -279,7 +279,7 @@ nextflow_process { } - test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi - stub") { + test("homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi - stub") { config "./vcf_gz_index_tbi.config" options "-stub" diff --git a/modules/nf-core/bcftools/concat/tests/main.nf.test.snap b/modules/nf-core/bcftools/concat/tests/main.nf.test.snap index 1182854f94..09e87cd3e5 100644 --- a/modules/nf-core/bcftools/concat/tests/main.nf.test.snap +++ b/modules/nf-core/bcftools/concat/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index - stub": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index - stub": { "content": [ { "0": [ @@ -49,12 +49,12 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-05T08:09:13.734103412" + "timestamp": "2024-09-26T11:04:11.178539482" }, - "sarscov2 - [[vcf1, vcf2], []]": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]]": { "content": [ { "0": [ @@ -94,12 +94,12 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-04T15:19:09.213249578" + "timestamp": "2024-09-26T11:03:08.765639958" }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index": { "content": [ [ [ @@ -125,12 +125,12 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-05T08:08:23.981388325" + "timestamp": "2024-09-26T11:03:21.607274757" }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi - stub": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi - stub": { "content": [ { "0": [ @@ -142,29 +142,29 @@ ] ], "1": [ - - ], - "2": [ [ { "id": "test3" }, - "test3_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + "test3_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" ] + ], + "2": [ + ], "3": [ "versions.yml:md5,c6e19f105510a46af1c5da9064e2e659" ], "csi": [ + + ], + "tbi": [ [ { "id": "test3" }, - "test3_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + "test3_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" ] - ], - "tbi": [ - ], "vcf": [ [ @@ -180,12 +180,43 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-26T11:04:27.332133878" + }, + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi": { + "content": [ + [ + [ + { + "id": "test3" + }, + "test3_vcf.vcf.gz:md5,5f6796c3ae109a1a5b87353954693f5a" + ] + ], + [ + [ + { + "id": "test3" + }, + "test3_vcf.vcf.gz.csi" + ] + ], + [ + + ], + [ + "versions.yml:md5,c6e19f105510a46af1c5da9064e2e659" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-05T14:01:24.419027693" + "timestamp": "2024-09-26T11:03:36.575719606" }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]]": { + "homo_sapiens - [[vcf1, vcf2], []]": { "content": [ { "0": [ @@ -225,43 +256,12 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-04T15:19:03.597061078" + "timestamp": "2024-09-26T11:03:54.069826178" }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi": { - "content": [ - [ - [ - { - "id": "test3" - }, - "test3_vcf.vcf.gz:md5,5f6796c3ae109a1a5b87353954693f5a" - ] - ], - [ - [ - { - "id": "test3" - }, - "test3_vcf.vcf.gz.csi" - ] - ], - [ - - ], - [ - "versions.yml:md5,c6e19f105510a46af1c5da9064e2e659" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" - }, - "timestamp": "2024-06-05T14:00:10.868487669" - }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - stub": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - stub": { "content": [ { "0": [ @@ -301,12 +301,12 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-04T15:19:14.836256897" + "timestamp": "2024-09-26T11:04:02.45346063" }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi": { "content": [ [ [ @@ -332,12 +332,12 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-05T14:00:31.061411617" + "timestamp": "2024-09-26T11:03:44.618596639" }, - "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_tbi - stub": { + "homo_sapiens - [[vcf1, vcf2], [tbi1, tbi2]] - vcf_gz_index_csi - stub": { "content": [ { "0": [ @@ -349,29 +349,29 @@ ] ], "1": [ + + ], + "2": [ [ { "id": "test3" }, - "test3_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + "test3_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" ] - ], - "2": [ - ], "3": [ "versions.yml:md5,c6e19f105510a46af1c5da9064e2e659" ], "csi": [ - - ], - "tbi": [ [ { "id": "test3" }, - "test3_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + "test3_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" ] + ], + "tbi": [ + ], "vcf": [ [ @@ -387,9 +387,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-05T14:01:35.209746508" + "timestamp": "2024-09-26T11:04:19.745768656" } } \ No newline at end of file diff --git a/modules/nf-core/gatk4/applybqsr/main.nf b/modules/nf-core/gatk4/applybqsr/main.nf index 78db9d7f00..4e91c311b0 100644 --- a/modules/nf-core/gatk4/applybqsr/main.nf +++ b/modules/nf-core/gatk4/applybqsr/main.nf @@ -48,4 +48,17 @@ process GATK4_APPLYBQSR { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def input_extension = input.getExtension() + def output_extension = input_extension == 'bam' ? 'bam' : 'cram' + """ + touch ${prefix}.${output_extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/gatk4/applybqsr/tests/main.nf.test b/modules/nf-core/gatk4/applybqsr/tests/main.nf.test index 3d9c6204f7..acb41ce1e4 100644 --- a/modules/nf-core/gatk4/applybqsr/tests/main.nf.test +++ b/modules/nf-core/gatk4/applybqsr/tests/main.nf.test @@ -92,4 +92,63 @@ nextflow_process { } } + test("sarscov2 - cram - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/test.baserecalibrator.table', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + input[3] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.dict', checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + ) + } + } + + test("sarscov2 - bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/gatk/test.baserecalibrator.table', checkIfExists: true), + [] + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + input[2] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) + input[3] = file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.dict', checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + } diff --git a/modules/nf-core/gatk4/applybqsr/tests/main.nf.test.snap b/modules/nf-core/gatk4/applybqsr/tests/main.nf.test.snap index a387039d6a..19b37d0636 100644 --- a/modules/nf-core/gatk4/applybqsr/tests/main.nf.test.snap +++ b/modules/nf-core/gatk4/applybqsr/tests/main.nf.test.snap @@ -1,4 +1,43 @@ { + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,bb2a060a0280c812fba3c74b1707b350" + ], + "bam": [ + [ + { + "id": "test" + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "cram": [ + + ], + "versions": [ + "versions.yml:md5,bb2a060a0280c812fba3c74b1707b350" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-20T10:25:00.314573" + }, "sarscov2 - bam - intervals": { "content": [ { @@ -60,6 +99,45 @@ }, "timestamp": "2023-12-09T03:10:46.70859771" }, + "sarscov2 - cram - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test" + }, + "test.cram:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,bb2a060a0280c812fba3c74b1707b350" + ], + "bam": [ + + ], + "cram": [ + [ + { + "id": "test" + }, + "test.cram:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,bb2a060a0280c812fba3c74b1707b350" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-20T10:24:52.761169" + }, "sarscov2 - bam": { "content": [ { diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/main.nf b/modules/nf-core/gatk4/gatherpileupsummaries/main.nf index c784d59ab2..bcafd544b4 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/main.nf +++ b/modules/nf-core/gatk4/gatherpileupsummaries/main.nf @@ -44,4 +44,15 @@ process GATK4_GATHERPILEUPSUMMARIES { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.pileups.table + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test b/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test index 8497e64db3..f33c6a0d94 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test +++ b/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test @@ -34,4 +34,29 @@ nextflow_process { } } + test("test-gatk4-gatherpileupsummaries - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/test.pileups.table', checkIfExists: true) ] + ] + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.dict', checkIfExists: true) + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + } diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test.snap b/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test.snap index f05a7ef0d1..fd9f258344 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test.snap +++ b/modules/nf-core/gatk4/gatherpileupsummaries/tests/main.nf.test.snap @@ -1,4 +1,39 @@ { + "test-gatk4-gatherpileupsummaries - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.pileups.table:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,d3772ab0d5963a88a2748fd83af76c02" + ], + "table": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.pileups.table:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,d3772ab0d5963a88a2748fd83af76c02" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-20T10:44:42.759098" + }, "test-gatk4-gatherpileupsummaries": { "content": [ { diff --git a/modules/nf-core/sentieon/applyvarcal/environment.yml b/modules/nf-core/sentieon/applyvarcal/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/applyvarcal/environment.yml +++ b/modules/nf-core/sentieon/applyvarcal/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/applyvarcal/main.nf b/modules/nf-core/sentieon/applyvarcal/main.nf index 9f64f5a2f3..724912d689 100644 --- a/modules/nf-core/sentieon/applyvarcal/main.nf +++ b/modules/nf-core/sentieon/applyvarcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_APPLYVARCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(recal), path(recal_index), path(tranches) diff --git a/modules/nf-core/sentieon/bwamem/environment.yml b/modules/nf-core/sentieon/bwamem/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/bwamem/environment.yml +++ b/modules/nf-core/sentieon/bwamem/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 76e364deca..c038a857bf 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -5,8 +5,8 @@ process SENTIEON_BWAMEM { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 0dc67a9a5b..77070ccc45 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -8,12 +8,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,7b62831cb67d6d4a8e33b3cb788dfb1b", + "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -21,12 +21,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,7b62831cb67d6d4a8e33b3cb788dfb1b", + "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -34,7 +34,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:58:40.112926615" + "timestamp": "2024-10-02T10:25:33.275731212" }, "Paired-End - stub": { "content": [ @@ -50,7 +50,7 @@ ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -63,7 +63,7 @@ ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -71,7 +71,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:20.476791905" + "timestamp": "2024-10-02T10:26:16.58588651" }, "Paired-End": { "content": [ @@ -82,12 +82,12 @@ "id": "test", "single_end": false }, - "test.bam:md5,3418d864f42215d1c0c8d604d9571b0d", + "test.bam:md5,b0c8606d660dbe50a34cf80a376bb268", "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -95,12 +95,12 @@ "id": "test", "single_end": false }, - "test.bam:md5,3418d864f42215d1c0c8d604d9571b0d", + "test.bam:md5,b0c8606d660dbe50a34cf80a376bb268", "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -108,7 +108,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:00.346034062" + "timestamp": "2024-10-02T10:25:55.068934639" }, "Single-End - stub": { "content": [ @@ -124,7 +124,7 @@ ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -137,7 +137,7 @@ ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -145,7 +145,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:10.054146084" + "timestamp": "2024-10-02T10:26:05.151760076" }, "Single-End Output CRAM": { "content": [ @@ -156,12 +156,12 @@ "id": "test", "single_end": true }, - "test.cram:md5,04d88bd709dc0bc27ca81a09e80d4a1b", - "test.cram.crai:md5,ac34c713fe95aa8a1fd6291bdbb76dcf" + "test.cram:md5,817cf0847ae0c89062e2ee4be312101a", + "test.cram.crai:md5,60f801c550a18982e55207adb31ec351" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -169,12 +169,12 @@ "id": "test", "single_end": true }, - "test.cram:md5,04d88bd709dc0bc27ca81a09e80d4a1b", - "test.cram.crai:md5,ac34c713fe95aa8a1fd6291bdbb76dcf" + "test.cram:md5,817cf0847ae0c89062e2ee4be312101a", + "test.cram.crai:md5,60f801c550a18982e55207adb31ec351" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -182,6 +182,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:58:49.962693499" + "timestamp": "2024-10-02T10:25:44.360755915" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dedup/environment.yml b/modules/nf-core/sentieon/dedup/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/dedup/environment.yml +++ b/modules/nf-core/sentieon/dedup/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dedup/main.nf b/modules/nf-core/sentieon/dedup/main.nf index f0b387f64f..5735df7340 100644 --- a/modules/nf-core/sentieon/dedup/main.nf +++ b/modules/nf-core/sentieon/dedup/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DEDUP { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap index c1cd83ec34..26117a7cdf 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap @@ -7,7 +7,7 @@ { "id": "test" }, - "test.cram:md5,d2993113f4614f5196fc74d489412fc4" + "test.cram:md5,e46e97256846338e1cff32d862105491" ] ], "1": [ @@ -34,7 +34,7 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "5": [ @@ -42,7 +42,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "6": [ @@ -50,11 +50,11 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics.multiqc.tsv:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -80,7 +80,7 @@ { "id": "test" }, - "test.cram:md5,d2993113f4614f5196fc74d489412fc4" + "test.cram:md5,e46e97256846338e1cff32d862105491" ] ], "metrics": [ @@ -88,7 +88,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "metrics_multiqc_tsv": [ @@ -96,7 +96,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics.multiqc.tsv:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "score": [ @@ -104,19 +104,19 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:23.640202" + "timestamp": "2024-10-02T10:28:10.570152622" }, "Test removing duplicates": { "content": [ @@ -126,7 +126,7 @@ { "id": "test" }, - "test.cram:md5,e67398ab64430191f9d15cb8a8f425c7" + "test.cram:md5,8075d3e7c66d36fdbb81270eefc996d4" ] ], "1": [ @@ -153,7 +153,7 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "5": [ @@ -161,7 +161,7 @@ { "id": "test" }, - "test.cram.metrics:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics:md5,2a41239de0275a8321f4658286d97d65" ] ], "6": [ @@ -169,11 +169,11 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics.multiqc.tsv:md5,2a41239de0275a8321f4658286d97d65" ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -199,7 +199,7 @@ { "id": "test" }, - "test.cram:md5,e67398ab64430191f9d15cb8a8f425c7" + "test.cram:md5,8075d3e7c66d36fdbb81270eefc996d4" ] ], "metrics": [ @@ -207,7 +207,7 @@ { "id": "test" }, - "test.cram.metrics:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics:md5,2a41239de0275a8321f4658286d97d65" ] ], "metrics_multiqc_tsv": [ @@ -215,7 +215,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics.multiqc.tsv:md5,2a41239de0275a8321f4658286d97d65" ] ], "score": [ @@ -223,19 +223,19 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:33.698037" + "timestamp": "2024-10-02T10:28:19.377946074" }, "Test stub": { "content": [ @@ -292,7 +292,7 @@ ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -346,14 +346,14 @@ ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:41.360148" + "timestamp": "2024-10-02T10:28:28.792696026" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dnamodelapply/environment.yml b/modules/nf-core/sentieon/dnamodelapply/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/dnamodelapply/environment.yml +++ b/modules/nf-core/sentieon/dnamodelapply/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dnamodelapply/main.nf b/modules/nf-core/sentieon/dnamodelapply/main.nf index b4b10ce4d0..85fd601b39 100644 --- a/modules/nf-core/sentieon/dnamodelapply/main.nf +++ b/modules/nf-core/sentieon/dnamodelapply/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DNAMODELAPPLY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(idx) diff --git a/modules/nf-core/sentieon/dnascope/environment.yml b/modules/nf-core/sentieon/dnascope/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/dnascope/environment.yml +++ b/modules/nf-core/sentieon/dnascope/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index 63d7d23b8a..bdeb62521a 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DNASCOPE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai), path(intervals) diff --git a/modules/nf-core/sentieon/gvcftyper/environment.yml b/modules/nf-core/sentieon/gvcftyper/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/gvcftyper/environment.yml +++ b/modules/nf-core/sentieon/gvcftyper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/gvcftyper/main.nf b/modules/nf-core/sentieon/gvcftyper/main.nf index e2e5d2434d..6817c6dbe2 100644 --- a/modules/nf-core/sentieon/gvcftyper/main.nf +++ b/modules/nf-core/sentieon/gvcftyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_GVCFTYPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(gvcfs), path(tbis), path(intervals) diff --git a/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap index 5e7e40fb6b..627b62fd87 100644 --- a/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap @@ -2,58 +2,58 @@ "sentieon gvcftyper dbsnp": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "21606383c760bf676d4c1f747b97d118" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:47.508154" + "timestamp": "2024-10-02T10:29:01.102534193" }, "sentieon gvcftyper dbsnp intervals": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "21606383c760bf676d4c1f747b97d118" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:13:05.636172" + "timestamp": "2024-10-02T10:29:20.933217951" }, "sentieon gvcftyper vcf.gz": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:38.720056" + "timestamp": "2024-10-02T10:28:50.937002394" }, "sentieon gvcftyper intervals": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:56.700687" + "timestamp": "2024-10-02T10:29:11.029924476" }, "sentieon gvcftyper - stub": { "content": [ @@ -75,7 +75,7 @@ ] ], "2": [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "vcf_gz": [ [ @@ -94,28 +94,28 @@ ] ], "versions": [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:03:46.379477" + "timestamp": "2024-10-02T10:29:30.788262037" }, "sentieon gvcftyper vcf": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:29.24482" + "timestamp": "2024-10-02T10:28:41.276698125" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/haplotyper/environment.yml b/modules/nf-core/sentieon/haplotyper/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/haplotyper/environment.yml +++ b/modules/nf-core/sentieon/haplotyper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/haplotyper/main.nf b/modules/nf-core/sentieon/haplotyper/main.nf index 33122d86b2..a04b342caf 100644 --- a/modules/nf-core/sentieon/haplotyper/main.nf +++ b/modules/nf-core/sentieon/haplotyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_HAPLOTYPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index), path(intervals), path(recal_table) diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap index 5b77a02f5e..0527f0fcbe 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap @@ -2,49 +2,49 @@ "Sentieon Haplotyper VCF": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "cea0045051da7877b38a1e25df812a91" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:16:51.711057" + "timestamp": "2024-10-02T10:29:42.675527558" }, "Sentieon Haplotyper Recalibration": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "10faa3b669c49826098e09784d8a4716" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T15:21:57.012186" + "timestamp": "2024-10-02T10:30:38.708688756" }, "Sentieon Haplotyper GVCF": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:01.797501" + "timestamp": "2024-10-02T10:29:53.99302993" }, "Sentieon Haplotyper BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", @@ -53,14 +53,14 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:12.021226" + "timestamp": "2024-10-02T10:30:03.323463525" }, "Sentieon Haplotyper DBSNP BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "228556b7921205f023fec51098feeb97", @@ -69,14 +69,14 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:30:48.065511" + "timestamp": "2024-10-02T10:30:25.917634004" }, "Sentieon Haplotyper Intervals BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", @@ -85,9 +85,9 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:22.554336" + "timestamp": "2024-10-02T10:30:14.249175276" }, "Sentieon Haplotyper - stub": { "content": [ @@ -125,7 +125,7 @@ ] ], "4": [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "gvcf": [ [ @@ -160,28 +160,28 @@ ] ], "versions": [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:47:33.117516" + "timestamp": "2024-10-02T10:30:56.435076872" }, "Sentieon Haplotyper multiple CRAMs": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "b5d6e09e336438e38f7bf5531799e3a" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T17:04:30.67684393" + "timestamp": "2024-10-02T10:30:49.266709749" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/varcal/environment.yml b/modules/nf-core/sentieon/varcal/environment.yml index 185d95bde8..d7abf668ea 100644 --- a/modules/nf-core/sentieon/varcal/environment.yml +++ b/modules/nf-core/sentieon/varcal/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/varcal/main.nf b/modules/nf-core/sentieon/varcal/main.nf index 7c85c12102..d78eacb44a 100644 --- a/modules/nf-core/sentieon/varcal/main.nf +++ b/modules/nf-core/sentieon/varcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_VARCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(tbi) // input vcf and tbi of variants to recalibrate diff --git a/modules/nf-core/tabix/bgziptabix/main.nf b/modules/nf-core/tabix/bgziptabix/main.nf index 05041f4953..22f37a7739 100644 --- a/modules/nf-core/tabix/bgziptabix/main.nf +++ b/modules/nf-core/tabix/bgziptabix/main.nf @@ -34,10 +34,11 @@ process TABIX_BGZIPTABIX { stub: def prefix = task.ext.prefix ?: "${meta.id}" + def args2 = task.ext.args2 ?: '' + def index = args2.contains("-C ") || args2.contains("--csi") ? "csi" : "tbi" """ echo "" | gzip > ${prefix}.${input.getExtension()}.gz - touch ${prefix}.${input.getExtension()}.gz.tbi - touch ${prefix}.${input.getExtension()}.gz.csi + touch ${prefix}.${input.getExtension()}.gz.${index} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/tabix/bgziptabix/tests/main.nf.test b/modules/nf-core/tabix/bgziptabix/tests/main.nf.test index 1a84d74fc0..4d4130dc07 100644 --- a/modules/nf-core/tabix/bgziptabix/tests/main.nf.test +++ b/modules/nf-core/tabix/bgziptabix/tests/main.nf.test @@ -91,4 +91,33 @@ nextflow_process { } + test("sarscov2_bed_tbi_stub") { + config "./tabix_tbi.config" + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/bed/test.bed', checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert snapshot( + file(process.out.gz_tbi[0][1]).name + ).match("tbi_stub") + } + ) + } + + } + } diff --git a/modules/nf-core/tabix/bgziptabix/tests/main.nf.test.snap b/modules/nf-core/tabix/bgziptabix/tests/main.nf.test.snap index c166ea7288..fb87799b20 100644 --- a/modules/nf-core/tabix/bgziptabix/tests/main.nf.test.snap +++ b/modules/nf-core/tabix/bgziptabix/tests/main.nf.test.snap @@ -91,6 +91,47 @@ }, "timestamp": "2024-02-19T14:51:00.548801" }, + "sarscov2_bed_tbi_stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.bed.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.bed.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,736e7c3b16a3ac525253e5b5f5d8fdfa" + ], + "gz_csi": [ + + ], + "gz_tbi": [ + [ + { + "id": "test" + }, + "test.bed.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.bed.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,736e7c3b16a3ac525253e5b5f5d8fdfa" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-25T14:45:18.533169949" + }, "csi_stub": { "content": [ "test.bed.gz" @@ -101,6 +142,16 @@ }, "timestamp": "2024-02-19T14:51:09.218454" }, + "tbi_stub": { + "content": [ + "test.bed.gz" + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-25T14:45:18.550930179" + }, "tbi_test": { "content": [ "tbi_test.bed.gz" @@ -115,13 +166,7 @@ "content": [ { "0": [ - [ - { - "id": "test" - }, - "test.bed.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.bed.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + ], "1": [ [ @@ -145,13 +190,7 @@ ] ], "gz_tbi": [ - [ - { - "id": "test" - }, - "test.bed.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.bed.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + ], "versions": [ "versions.yml:md5,736e7c3b16a3ac525253e5b5f5d8fdfa" @@ -159,9 +198,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-19T11:29:45.105209991" + "timestamp": "2024-09-25T14:44:19.786135972" } } \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index ac31f28f66..28e32b200e 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -2,10 +2,6 @@ // Subworkflow with functionality that may be useful for any Nextflow pipeline // -import org.yaml.snakeyaml.Yaml -import groovy.json.JsonOutput -import nextflow.extension.FilesEx - /* ======================================================================================== SUBWORKFLOW DEFINITION @@ -58,7 +54,7 @@ workflow UTILS_NEXTFLOW_PIPELINE { // Generate version string // def getWorkflowVersion() { - String version_string = "" + def version_string = "" as String if (workflow.manifest.version) { def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' version_string += "${prefix_v}${workflow.manifest.version}" @@ -79,10 +75,10 @@ def dumpParametersToJSON(outdir) { def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') def filename = "params_${timestamp}.json" def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = JsonOutput.toJson(params) - temp_pf.text = JsonOutput.prettyPrint(jsonStr) + def jsonStr = groovy.json.JsonOutput.toJson(params) + temp_pf.text = groovy.json.JsonOutput.prettyPrint(jsonStr) - FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") + nextflow.extension.FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") temp_pf.delete() } @@ -90,7 +86,7 @@ def dumpParametersToJSON(outdir) { // When running with -profile conda, warn if channels have not been set-up appropriately // def checkCondaChannels() { - Yaml parser = new Yaml() + def parser = new org.yaml.snakeyaml.Yaml() def channels = [] try { def config = parser.load("conda config --show channels".execute().text) @@ -102,14 +98,16 @@ def checkCondaChannels() { // Check that all channels are present // This channel list is ordered by required channel priority. - def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def required_channels_in_order = ['conda-forge', 'bioconda'] def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean // Check that they are in the right order def channel_priority_violation = false - def n = required_channels_in_order.size() - for (int i = 0; i < n - 1; i++) { - channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + + required_channels_in_order.eachWithIndex { channel, index -> + if (index < required_channels_in_order.size() - 1) { + channel_priority_violation |= !(channels.indexOf(channel) < channels.indexOf(required_channels_in_order[index+1])) + } } if (channels_missing | channel_priority_violation) { diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config index d0a926bf6d..a09572e5bb 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -3,7 +3,7 @@ manifest { author = """nf-core""" homePage = 'https://127.0.0.1' description = """Dummy pipeline""" - nextflowVersion = '!>=23.04.0' + nextflowVersion = '!>=23.04.0' version = '9.9.9' doi = 'https://doi.org/10.5281/zenodo.5070524' } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index 14558c3927..cbd8495bb6 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -2,9 +2,6 @@ // Subworkflow with utility functions specific to the nf-core pipeline template // -import org.yaml.snakeyaml.Yaml -import nextflow.extension.FilesEx - /* ======================================================================================== SUBWORKFLOW DEFINITION @@ -34,7 +31,7 @@ workflow UTILS_NFCORE_PIPELINE { // Warn if a -profile or Nextflow config has not been provided to run the pipeline // def checkConfigProvided() { - valid_config = true + def valid_config = true as Boolean if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + @@ -66,11 +63,13 @@ def checkProfileProvided(nextflow_cli_args) { // def workflowCitation() { def temp_doi_ref = "" - String[] manifest_doi = workflow.manifest.doi.tokenize(",") + def manifest_doi = workflow.manifest.doi.tokenize(",") // Using a loop to handle multiple DOIs // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers // Removing ` ` since the manifest.doi is a string and not a proper list - for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" + manifest_doi.each { doi_ref -> + temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" + } return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + temp_doi_ref + "\n" + @@ -84,7 +83,7 @@ def workflowCitation() { // Generate workflow version string // def getWorkflowVersion() { - String version_string = "" + def version_string = "" as String if (workflow.manifest.version) { def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' version_string += "${prefix_v}${workflow.manifest.version}" @@ -102,8 +101,8 @@ def getWorkflowVersion() { // Get software versions for pipeline // def processVersionsFromYAML(yaml_file) { - Yaml yaml = new Yaml() - versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + def yaml = new org.yaml.snakeyaml.Yaml() + def versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } return yaml.dumpAsMap(versions).trim() } @@ -124,7 +123,7 @@ def workflowVersionToYAML() { def softwareVersionsToYAML(ch_versions) { return ch_versions .unique() - .map { processVersionsFromYAML(it) } + .map { version -> processVersionsFromYAML(version) } .unique() .mix(Channel.of(workflowVersionToYAML())) } @@ -134,19 +133,19 @@ def softwareVersionsToYAML(ch_versions) { // def paramsSummaryMultiqc(summary_params) { def summary_section = '' - for (group in summary_params.keySet()) { + summary_params.keySet().each { group -> def group_params = summary_params.get(group) // This gets the parameters of that particular group if (group_params) { summary_section += "

$group

\n" summary_section += "
\n" - for (param in group_params.keySet()) { + group_params.keySet().sort().each { param -> summary_section += "
$param
${group_params.get(param) ?: 'N/A'}
\n" } summary_section += "
\n" } } - String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + def yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" as String yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" @@ -161,7 +160,7 @@ def paramsSummaryMultiqc(summary_params) { // nf-core logo // def nfCoreLogo(monochrome_logs=true) { - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map String.format( """\n ${dashedLine(monochrome_logs)} @@ -180,7 +179,7 @@ def nfCoreLogo(monochrome_logs=true) { // Return dashed line // def dashedLine(monochrome_logs=true) { - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map return "-${colors.dim}----------------------------------------------------${colors.reset}-" } @@ -188,7 +187,7 @@ def dashedLine(monochrome_logs=true) { // ANSII colours used for terminal logging // def logColours(monochrome_logs=true) { - Map colorcodes = [:] + def colorcodes = [:] as Map // Reset / Meta colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" @@ -287,7 +286,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi } def summary = [:] - for (group in summary_params.keySet()) { + summary_params.keySet().sort().each { group -> summary << summary_params[group] } @@ -344,10 +343,10 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi def sendmail_html = sendmail_template.toString() // Send the HTML e-mail - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map if (email_address) { try { - if (plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + if (plaintext_email) { throw new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } // Try to send HTML e-mail using sendmail def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") sendmail_tf.withWriter { w -> w << sendmail_html } @@ -364,13 +363,13 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi // Write summary e-mail HTML to a file def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") output_hf.withWriter { w -> w << email_html } - FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + nextflow.extension.FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); output_hf.delete() // Write summary e-mail TXT to a file def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") output_tf.withWriter { w -> w << email_txt } - FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + nextflow.extension.FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); output_tf.delete() } @@ -378,7 +377,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi // Print pipeline summary on completion // def completionSummary(monochrome_logs=true) { - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map if (workflow.success) { if (workflow.stats.ignoredCount == 0) { log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" @@ -395,7 +394,7 @@ def completionSummary(monochrome_logs=true) { // def imNotification(summary_params, hook_url) { def summary = [:] - for (group in summary_params.keySet()) { + summary_params.keySet().sort().each { group -> summary << summary_params[group] } diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test index 5784a33f2f..07ff7afdd9 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -169,7 +169,7 @@ nextflow_workflow { params { monochrome_logs = true test_data = '' - outdir = 1 + outdir = true } workflow { """ From 0afb9fc98a03c71e3d31c313152a541b38f85146 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 15:59:06 +0200 Subject: [PATCH 21/51] update nf-core/utils_nfcore_pipeline subworkflow --- modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.json b/modules.json index 1bb6c3ab13..5f411e2f0a 100644 --- a/modules.json +++ b/modules.json @@ -525,7 +525,7 @@ }, "utils_nfvalidation_plugin": { "branch": "master", - "git_sha": "1f19c093c86ae49d1899e234d4aa4d56c57be780", + "git_sha": "e6c055a7bb7551ef18436a8ef410dd0e27393c61", "installed_by": ["subworkflows"] }, "vcf_annotate_ensemblvep": { From a87503c815d2b863b348c4101d887108c36a9988 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 4 Oct 2024 16:15:33 +0200 Subject: [PATCH 22/51] update nf-core/utils_nfvalidation_plugin subworkflow --- .../nf-core/utils_nfvalidation_plugin/tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test index 07ff7afdd9..c50b1fb532 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -169,7 +169,7 @@ nextflow_workflow { params { monochrome_logs = true test_data = '' - outdir = true + outdir = false } workflow { """ From 348fb34f192b9301b76d401cd6bfa2b33d1f1abb Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 7 Oct 2024 10:42:59 +0200 Subject: [PATCH 23/51] 4 shards for pipeline --- .github/workflows/ci.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0718a79ce7..fd222efeb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,12 +37,6 @@ jobs: profile: ["docker"] shard: [1, 2, 3, 4, 5] exclude: - - filter: "pipeline" - shard: 2 - - filter: "pipeline" - shard: 3 - - filter: "pipeline" - shard: 4 - filter: "pipeline" shard: 5 steps: From cba29dd63b42e242d0b671c3cd2a396951f0f8f1 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 8 Oct 2024 12:15:55 +0200 Subject: [PATCH 24/51] no need to exclude pipeline shards anymore --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 02aa25e70a..ab88b3d992 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,9 +36,6 @@ jobs: filter: ["pipeline", "workflow", "process", "function"] profile: ["docker"] shard: [1, 2, 3, 4, 5] - exclude: - - filter: "pipeline" - shard: 5 steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 From 44d8f3b1eb467fed75d9f81ee0cbf21ea3a7e9b0 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 11 Oct 2024 09:09:57 +0200 Subject: [PATCH 25/51] remove filter process for now --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ea73a9129..9de59c2d93 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,8 @@ jobs: NXF_VER: - "24.04.2" - "latest-everything" - filter: ["process", "workflow", "function", "pipeline"] + filter: ["workflow", "function", "pipeline"] + # filter: ["process", "workflow", "function", "pipeline"] profile: ["conda", "docker", "singularity"] shard: [1, 2, 3, 4, 5] isMaster: From 4ba50b2403195f0bc8cbad8ba00145bea5a37fe8 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 11 Oct 2024 09:16:33 +0200 Subject: [PATCH 26/51] bump minimum NXF_VER --- .github/workflows/pytest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index df63fce6f8..978db90c48 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -53,7 +53,7 @@ jobs: TEST_DATA_BASE: - "test-datasets/data" NXF_VER: - - "23.04.0" + - "24.04.2" - "latest-everything" exclude: - tags: "sentieon/bwamem" From f4702274cbfa7e3c61869899914f6afa9e001921 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 11 Oct 2024 09:26:08 +0200 Subject: [PATCH 27/51] no status is 0 --- tests/csv/3.0/mapped_joint_bam.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/csv/3.0/mapped_joint_bam.csv b/tests/csv/3.0/mapped_joint_bam.csv index 689393be00..1dc3920b1e 100644 --- a/tests/csv/3.0/mapped_joint_bam.csv +++ b/tests/csv/3.0/mapped_joint_bam.csv @@ -1,3 +1,3 @@ -patient,sample,bam,bai -testN,testN,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai -testT,testT,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai +patient,status,sample,bam,bai +testN,0,testN,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai +testT,0,testT,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam,https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai From 038c2ecc7055effdafe0250424cd5197b55f0a3a Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:06:10 +0200 Subject: [PATCH 28/51] print tests run --- .github/workflows/ci.yml | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f171fd1011..47330e6795 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,24 +116,37 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@v1.3.1 - - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" + - name: "Print tests to run" run: | nf-test test \ --ci \ - --debug \ - --verbose \ + --dryrun \ --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ --shard ${{ matrix.shard }}/5 \ --changed-since HEAD^ \ --follow-dependencies \ --profile "+${{ matrix.profile }}" \ - --filter ${{ matrix.filter }} - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v4 - if: success() || failure() # always run even if the previous step fails - with: - report_paths: "TEST-*.xml" + --filter ${{ matrix.filter }} \ + | grep PASSED | cut -d "'" -f 2 | sort -u + + # - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" + # run: | + # nf-test test \ + # --ci \ + # --debug \ + # --verbose \ + # --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ + # --shard ${{ matrix.shard }}/5 \ + # --changed-since HEAD^ \ + # --follow-dependencies \ + # --profile "+${{ matrix.profile }}" \ + # --filter ${{ matrix.filter }} + + # - name: Publish Test Report + # uses: mikepenz/action-junit-report@v4 + # if: success() || failure() # always run even if the previous step fails + # with: + # report_paths: "TEST-*.xml" - name: Clean up if: always() From b182313fcd6be0e1cedb0b6e0a69b88358aa5a8d Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:09:05 +0200 Subject: [PATCH 29/51] Typo --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47330e6795..50d48250f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,7 +120,7 @@ jobs: run: | nf-test test \ --ci \ - --dryrun \ + --dryRun \ --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ --shard ${{ matrix.shard }}/5 \ --changed-since HEAD^ \ From 5500193bc61676959fe5bf86998d2137fedc5b2c Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:12:53 +0200 Subject: [PATCH 30/51] echo the results --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50d48250f5..1d58d527a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -118,7 +118,7 @@ jobs: - name: "Print tests to run" run: | - nf-test test \ + echo $(nf-test test \ --ci \ --dryRun \ --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ @@ -127,7 +127,7 @@ jobs: --follow-dependencies \ --profile "+${{ matrix.profile }}" \ --filter ${{ matrix.filter }} \ - | grep PASSED | cut -d "'" -f 2 | sort -u + | grep PASSED | cut -d "'" -f 2 | sort -u) # - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" # run: | From 6beaaceade4e97da5cffbf6c19089446e48613df Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:20:29 +0200 Subject: [PATCH 31/51] print to GITHUB_OUTPUT --- .github/workflows/ci.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d58d527a6..350a4db5dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,17 +117,18 @@ jobs: uses: jlumbroso/free-disk-space@v1.3.1 - name: "Print tests to run" + id: print-test run: | - echo $(nf-test test \ - --ci \ - --dryRun \ - --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ - --shard ${{ matrix.shard }}/5 \ - --changed-since HEAD^ \ - --follow-dependencies \ - --profile "+${{ matrix.profile }}" \ - --filter ${{ matrix.filter }} \ - | grep PASSED | cut -d "'" -f 2 | sort -u) + nf-test test \ + --ci \ + --dryRun \ + --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ + --shard ${{ matrix.shard }}/5 \ + --changed-since HEAD^ \ + --follow-dependencies \ + --profile "+${{ matrix.profile }}" \ + --filter ${{ matrix.filter }} \ + | grep PASSED | cut -d "'" -f 2 | sort -u >> $GITHUB_OUTPUT # - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" # run: | From d1f531a792c2095ea6e81c281699f1b5e7ac4698 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:27:33 +0200 Subject: [PATCH 32/51] print to GITHUB_SUMMARY --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 350a4db5dc..0d2ddf3e26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,9 +116,9 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@v1.3.1 - - name: "Print tests to run" - id: print-test + - id: print-test run: | + echo "### Test summary :rocket:" >> $GITHUB_STEP_SUMMARY nf-test test \ --ci \ --dryRun \ @@ -128,7 +128,7 @@ jobs: --follow-dependencies \ --profile "+${{ matrix.profile }}" \ --filter ${{ matrix.filter }} \ - | grep PASSED | cut -d "'" -f 2 | sort -u >> $GITHUB_OUTPUT + | grep PASSED | cut -d "'" -f 2 | sort -u >> $GITHUB_STEP_SUMMARY # - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" # run: | From 5c926086975044281b62d535e220156a6b582583 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:38:27 +0200 Subject: [PATCH 33/51] Better summary --- .github/workflows/ci.yml | 54 +++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d2ddf3e26..af8bf4193d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,9 +116,11 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@v1.3.1 - - id: print-test + - name: Start summary + id: print-test run: | - echo "### Test summary :rocket:" >> $GITHUB_STEP_SUMMARY + echo "### nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY + echo "This shard contains the following tests:" >> $GITHUB_STEP_SUMMARY nf-test test \ --ci \ --dryRun \ @@ -130,24 +132,36 @@ jobs: --filter ${{ matrix.filter }} \ | grep PASSED | cut -d "'" -f 2 | sort -u >> $GITHUB_STEP_SUMMARY - # - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" - # run: | - # nf-test test \ - # --ci \ - # --debug \ - # --verbose \ - # --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ - # --shard ${{ matrix.shard }}/5 \ - # --changed-since HEAD^ \ - # --follow-dependencies \ - # --profile "+${{ matrix.profile }}" \ - # --filter ${{ matrix.filter }} - - # - name: Publish Test Report - # uses: mikepenz/action-junit-report@v4 - # if: success() || failure() # always run even if the previous step fails - # with: - # report_paths: "TEST-*.xml" + - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" + run: | + nf-test test \ + --ci \ + --debug \ + --verbose \ + --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ + --shard ${{ matrix.shard }}/5 \ + --changed-since HEAD^ \ + --follow-dependencies \ + --profile "+${{ matrix.profile }}" \ + --filter ${{ matrix.filter }} + + - name: Print success in summary + if: success() + run: | + echo "" >> $GITHUB_STEP_SUMMARY + echo "All tests successfull :rocket:" >> $GITHUB_STEP_SUMMARY + + - name: Print failure in summary + if: failure() + run: | + echo "" >> $GITHUB_STEP_SUMMARY + echo "Some tests failed :sadcold_sweat:" >> $GITHUB_STEP_SUMMARY + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + if: success() || failure() # always run even if the previous step fails + with: + report_paths: "TEST-*.xml" - name: Clean up if: always() From 5b4827c431443e41c186952f8fce6bc8849c3698 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 13:53:17 +0200 Subject: [PATCH 34/51] Better summary --- .github/workflows/ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index af8bf4193d..db68dbc06c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,7 +120,10 @@ jobs: id: print-test run: | echo "### nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY - echo "This shard contains the following tests:" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "This ${{ matrix.filter }} shard was run on ${{ matrix.profile }} | ${{ matrix.NXF_VER }} | " >> $GITHUB_STEP_SUMMARY + echo "This shard contains the following test(s):" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY nf-test test \ --ci \ --dryRun \ @@ -149,13 +152,13 @@ jobs: if: success() run: | echo "" >> $GITHUB_STEP_SUMMARY - echo "All tests successfull :rocket:" >> $GITHUB_STEP_SUMMARY + echo "All test(s) successfull :rocket:" >> $GITHUB_STEP_SUMMARY - name: Print failure in summary if: failure() run: | echo "" >> $GITHUB_STEP_SUMMARY - echo "Some tests failed :sadcold_sweat:" >> $GITHUB_STEP_SUMMARY + echo "Some test(s) failed :sadcold_sweat:" >> $GITHUB_STEP_SUMMARY - name: Publish Test Report uses: mikepenz/action-junit-report@v4 From 8d876af9a88fdff474b33fc792b581f497ec3384 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 14:02:47 +0200 Subject: [PATCH 35/51] Better summary --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db68dbc06c..fecb3cb05d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,7 +121,7 @@ jobs: run: | echo "### nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "This ${{ matrix.filter }} shard was run on ${{ matrix.profile }} | ${{ matrix.NXF_VER }} | " >> $GITHUB_STEP_SUMMARY + echo "This ${{ matrix.filter }} shard was run on ${{ matrix.profile }} | ${{ matrix.NXF_VER }}" >> $GITHUB_STEP_SUMMARY echo "This shard contains the following test(s):" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY nf-test test \ @@ -133,7 +133,7 @@ jobs: --follow-dependencies \ --profile "+${{ matrix.profile }}" \ --filter ${{ matrix.filter }} \ - | grep PASSED | cut -d "'" -f 2 | sort -u >> $GITHUB_STEP_SUMMARY + | grep PASSED | cut -d "'" -f 2 | sed 's/^/- /' | sort -u >> $GITHUB_STEP_SUMMARY - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" run: | From e03627e9f2d83e7a824e468ab677152e279e6507 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 14:56:58 +0200 Subject: [PATCH 36/51] update to python v5 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fecb3cb05d..8a34a87843 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,7 @@ jobs: with: fetch-depth: 0 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.11" architecture: "x64" From 1370581bb38465e7716735adcd566339b60e35b9 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 15:12:38 +0200 Subject: [PATCH 37/51] nicer summary --- .github/workflows/ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a34a87843..de3f46e9a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,10 +119,9 @@ jobs: - name: Start summary id: print-test run: | - echo "### nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY + echo "## nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "This ${{ matrix.filter }} shard was run on ${{ matrix.profile }} | ${{ matrix.NXF_VER }}" >> $GITHUB_STEP_SUMMARY - echo "This shard contains the following test(s):" >> $GITHUB_STEP_SUMMARY + echo "This `${{ matrix.filter }}` shard was run on `${{ matrix.profile }}` | `NXF_VER=${{ matrix.NXF_VER }}`, and contains the following test(s):" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY nf-test test \ --ci \ @@ -152,7 +151,7 @@ jobs: if: success() run: | echo "" >> $GITHUB_STEP_SUMMARY - echo "All test(s) successfull :rocket:" >> $GITHUB_STEP_SUMMARY + echo "All test(s) successfull :party:" >> $GITHUB_STEP_SUMMARY - name: Print failure in summary if: failure() From 9815858c3ecf4b761f18e52ba25c785038cd7d85 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 16:04:49 +0200 Subject: [PATCH 38/51] escape single quote --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index de3f46e9a1..8cf523dd22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,7 +121,7 @@ jobs: run: | echo "## nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "This `${{ matrix.filter }}` shard was run on `${{ matrix.profile }}` | `NXF_VER=${{ matrix.NXF_VER }}`, and contains the following test(s):" >> $GITHUB_STEP_SUMMARY + echo "This \`${{ matrix.filter }}\` shard was run on \`${{ matrix.profile }}\` | \`NXF_VER=${{ matrix.NXF_VER }}\`, and contains the following test(s):" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY nf-test test \ --ci \ From 105821fcb4dfb19f017fd5b408986384c04d703d Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 16:13:29 +0200 Subject: [PATCH 39/51] polish --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8cf523dd22..4cd6ef7d2b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,7 +121,7 @@ jobs: run: | echo "## nf-test tests summary :rocket:" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY - echo "This \`${{ matrix.filter }}\` shard was run on \`${{ matrix.profile }}\` | \`NXF_VER=${{ matrix.NXF_VER }}\`, and contains the following test(s):" >> $GITHUB_STEP_SUMMARY + echo "This \`${{ matrix.filter }}\` ${{ matrix.shard }}/5 shard was run on \`${{ matrix.profile }}\` | \`NXF_VER=${{ matrix.NXF_VER }}\`, and contains the following test(s):" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY nf-test test \ --ci \ @@ -151,13 +151,13 @@ jobs: if: success() run: | echo "" >> $GITHUB_STEP_SUMMARY - echo "All test(s) successfull :party:" >> $GITHUB_STEP_SUMMARY + echo "All test(s) successfull :tada:" >> $GITHUB_STEP_SUMMARY - name: Print failure in summary if: failure() run: | echo "" >> $GITHUB_STEP_SUMMARY - echo "Some test(s) failed :sadcold_sweat:" >> $GITHUB_STEP_SUMMARY + echo "Some test(s) failed :cold_sweat:" >> $GITHUB_STEP_SUMMARY - name: Publish Test Report uses: mikepenz/action-junit-report@v4 From 2fab5f92941516f0c6221908680b0d5d3d6cdac2 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 16:34:43 +0200 Subject: [PATCH 40/51] try concatenate reports --- .github/workflows/ci.yml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4cd6ef7d2b..78d574f07e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,8 +33,9 @@ jobs: matrix: NXF_VER: - "24.04.2" - - "latest-everything" - filter: ["workflow", "function", "pipeline"] + # - "latest-everything" + filter: ["workflow"] + # filter: ["workflow", "function", "pipeline"] # filter: ["process", "workflow", "function", "pipeline"] profile: ["conda", "docker", "singularity"] shard: [1, 2, 3, 4, 5] @@ -161,11 +162,34 @@ jobs: - name: Publish Test Report uses: mikepenz/action-junit-report@v4 - if: success() || failure() # always run even if the previous step fails + if: always() # always run even if the previous step fails with: report_paths: "TEST-*.xml" + - name: Upload Test Report + uses: actions/upload-artifact@v3 + if: always() # always run even if the previous step fails + with: + name: junit-test-results + path: "**/build/test-results/test/TEST-*.xml" + retention-days: 1 + - name: Clean up if: always() run: | sudo rm -rf /home/ubuntu/tests/ + + checks: + runs-on: ubuntu-latest + steps: + - name: Download Test Report + uses: dawidd6/action-download-artifact@v2 + with: + name: junit-test-results + workflow: ${{ github.event.workflow.id }} + run_id: ${{ github.event.workflow_run.id }} + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + with: + commit: ${{github.event.workflow_run.head_sha}} + report_paths: "**/build/test-results/test/TEST-*.xml" From 2b6b408154abccc96ee0449720573045a106d815 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 16:56:13 +0200 Subject: [PATCH 41/51] fix path --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 78d574f07e..a2c67bfec0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -171,7 +171,7 @@ jobs: if: always() # always run even if the previous step fails with: name: junit-test-results - path: "**/build/test-results/test/TEST-*.xml" + path: "TEST-*.xml" retention-days: 1 - name: Clean up @@ -188,8 +188,9 @@ jobs: name: junit-test-results workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} + - name: Publish Test Report uses: mikepenz/action-junit-report@v3 with: commit: ${{github.event.workflow_run.head_sha}} - report_paths: "**/build/test-results/test/TEST-*.xml" + report_paths: "TEST-*.xml" From 36cedb3cf68b528ba860f54e06515cb9258611d8 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 17:05:55 +0200 Subject: [PATCH 42/51] add needs --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a2c67bfec0..c22c74a593 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -181,6 +181,7 @@ jobs: checks: runs-on: ubuntu-latest + needs: [test] steps: - name: Download Test Report uses: dawidd6/action-download-artifact@v2 From a1cb1c4b8b5b04fb5c8a3bfcf6cdc9c5d2531d23 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 17:17:10 +0200 Subject: [PATCH 43/51] update actions --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c22c74a593..18f73ddedf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -184,14 +184,14 @@ jobs: needs: [test] steps: - name: Download Test Report - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v6 with: name: junit-test-results workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 + uses: mikepenz/action-junit-report@v4 with: commit: ${{github.event.workflow_run.head_sha}} report_paths: "TEST-*.xml" From bfb3a3805fa05881ec38e04f89557d3d98107c2c Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 17:24:42 +0200 Subject: [PATCH 44/51] update action --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18f73ddedf..6a647e06e1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -167,7 +167,7 @@ jobs: report_paths: "TEST-*.xml" - name: Upload Test Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() # always run even if the previous step fails with: name: junit-test-results From 2d094ee8e1badb0ca5be8a117c99429f3df0e0e3 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 17:35:39 +0200 Subject: [PATCH 45/51] update path --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a647e06e1..015be54294 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -171,7 +171,7 @@ jobs: if: always() # always run even if the previous step fails with: name: junit-test-results - path: "TEST-*.xml" + path: "**/build/test-results/test/TEST-*.xml" retention-days: 1 - name: Clean up @@ -194,4 +194,4 @@ jobs: uses: mikepenz/action-junit-report@v4 with: commit: ${{github.event.workflow_run.head_sha}} - report_paths: "TEST-*.xml" + report_paths: "**/build/test-results/test/TEST-*.xml" From 0ddea42180bf7898e43d729916c1854f216c0d3a Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 18:27:08 +0200 Subject: [PATCH 46/51] update path --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 015be54294..381d8d97d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -162,20 +162,20 @@ jobs: - name: Publish Test Report uses: mikepenz/action-junit-report@v4 - if: always() # always run even if the previous step fails + if: success() || failure() # always run even if the previous step fails with: report_paths: "TEST-*.xml" - name: Upload Test Report uses: actions/upload-artifact@v4 - if: always() # always run even if the previous step fails + if: success() || failure() # always run even if the previous step fails with: name: junit-test-results - path: "**/build/test-results/test/TEST-*.xml" + path: "TEST-*.xml" retention-days: 1 - name: Clean up - if: always() + if: success() || failure() run: | sudo rm -rf /home/ubuntu/tests/ From 2de9bf18025d6cd3c30609bfc0c2f6dd8d683cb1 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 18:32:08 +0200 Subject: [PATCH 47/51] update path --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 381d8d97d9..fe0a9e8b31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,14 +164,14 @@ jobs: uses: mikepenz/action-junit-report@v4 if: success() || failure() # always run even if the previous step fails with: - report_paths: "TEST-*.xml" + report_paths: "TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" - name: Upload Test Report uses: actions/upload-artifact@v4 if: success() || failure() # always run even if the previous step fails with: name: junit-test-results - path: "TEST-*.xml" + path: "TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" retention-days: 1 - name: Clean up From 67269a9d9b55dd0c115db1f869a69f9c5b21f66e Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 18:37:54 +0200 Subject: [PATCH 48/51] update path --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe0a9e8b31..492810538b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,14 +164,14 @@ jobs: uses: mikepenz/action-junit-report@v4 if: success() || failure() # always run even if the previous step fails with: - report_paths: "TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" + report_paths: "TEST-report_${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" - name: Upload Test Report uses: actions/upload-artifact@v4 if: success() || failure() # always run even if the previous step fails with: name: junit-test-results - path: "TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" + path: "TEST-report_${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" retention-days: 1 - name: Clean up From 1c06bab3c62ad822fbfc426e3cffa2f9f50e5a24 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 24 Oct 2024 18:43:37 +0200 Subject: [PATCH 49/51] revert to v3 --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 492810538b..20e35e19fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,14 +164,14 @@ jobs: uses: mikepenz/action-junit-report@v4 if: success() || failure() # always run even if the previous step fails with: - report_paths: "TEST-report_${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" + report_paths: "TEST-*.xml" - name: Upload Test Report - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 if: success() || failure() # always run even if the previous step fails with: name: junit-test-results - path: "TEST-report_${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" + path: "TEST-*.xml" retention-days: 1 - name: Clean up @@ -194,4 +194,4 @@ jobs: uses: mikepenz/action-junit-report@v4 with: commit: ${{github.event.workflow_run.head_sha}} - report_paths: "**/build/test-results/test/TEST-*.xml" + report_paths: "TEST-*.xml" From 04dca873963f8912b586e2b25e709a0b9aecdc63 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 25 Oct 2024 13:46:19 +0200 Subject: [PATCH 50/51] revert to a working state --- .github/workflows/ci.yml | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 20e35e19fc..8ed6cebe7e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,9 +33,8 @@ jobs: matrix: NXF_VER: - "24.04.2" - # - "latest-everything" - filter: ["workflow"] - # filter: ["workflow", "function", "pipeline"] + - "latest-everything" + filter: ["workflow", "function", "pipeline"] # filter: ["process", "workflow", "function", "pipeline"] profile: ["conda", "docker", "singularity"] shard: [1, 2, 3, 4, 5] @@ -166,32 +165,7 @@ jobs: with: report_paths: "TEST-*.xml" - - name: Upload Test Report - uses: actions/upload-artifact@v3 - if: success() || failure() # always run even if the previous step fails - with: - name: junit-test-results - path: "TEST-*.xml" - retention-days: 1 - - name: Clean up if: success() || failure() run: | sudo rm -rf /home/ubuntu/tests/ - - checks: - runs-on: ubuntu-latest - needs: [test] - steps: - - name: Download Test Report - uses: dawidd6/action-download-artifact@v6 - with: - name: junit-test-results - workflow: ${{ github.event.workflow.id }} - run_id: ${{ github.event.workflow_run.id }} - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v4 - with: - commit: ${{github.event.workflow_run.head_sha}} - report_paths: "TEST-*.xml" From f3b96aa5925643f7bf01856d17856cd180761485 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Mon, 28 Oct 2024 11:11:19 +0100 Subject: [PATCH 51/51] Apply suggestions from code review --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ed6cebe7e..7249747614 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: matrix: NXF_VER: - "24.04.2" - - "latest-everything" + # - "latest-everything" filter: ["workflow", "function", "pipeline"] # filter: ["process", "workflow", "function", "pipeline"] profile: ["conda", "docker", "singularity"]