From 2a91bc148525091428d8f978fecc7c102d7976d6 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 09:49:51 +0100 Subject: [PATCH 01/32] Add wait-for-status workflow --- .github/workflows/wait-for-status.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/wait-for-status.yml diff --git a/.github/workflows/wait-for-status.yml b/.github/workflows/wait-for-status.yml new file mode 100644 index 00000000000..59ad31577f8 --- /dev/null +++ b/.github/workflows/wait-for-status.yml @@ -0,0 +1,13 @@ +name: summary +on: + pull_request: +jobs: + enforce-all-checks: + runs-on: ubuntu-latest + permissions: + checks: read + steps: + - name: GitHub Checks + uses: poseidon/wait-for-status-checks@v0.1.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} From 888d8206303dad243ec464f365e76e46d03334b5 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 10:16:49 +0100 Subject: [PATCH 02/32] Rename and tidy all GHA workflows for branch protection --- .github/workflows/code-linting.yml | 2 +- .github/workflows/fix-linting.yml | 4 ++++ .github/workflows/nf-core-linting.yml | 13 +++++++++++++ .github/workflows/pytest-workflow.yml | 15 +++++++++++++++ .github/workflows/wait-for-status.yml | 13 ------------- 5 files changed, 33 insertions(+), 14 deletions(-) delete mode 100644 .github/workflows/wait-for-status.yml diff --git a/.github/workflows/code-linting.yml b/.github/workflows/code-linting.yml index 831453f8ea2..0c4ca69e8d7 100644 --- a/.github/workflows/code-linting.yml +++ b/.github/workflows/code-linting.yml @@ -1,4 +1,4 @@ -name: code-lint +name: code-linting on: push: branches: [master] diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 8558ceef715..7c2c01cd15b 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -5,7 +5,11 @@ on: types: [created] jobs: +<<<<<<< HEAD fix-linting: +======= + fix_linting: +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) # Only run if comment is on a PR with the main repo, and if it contains the magic keywords if: > contains(github.event.comment.html_url, '/pull/') && diff --git a/.github/workflows/nf-core-linting.yml b/.github/workflows/nf-core-linting.yml index 123decf27e6..ef72c2f3ce1 100644 --- a/.github/workflows/nf-core-linting.yml +++ b/.github/workflows/nf-core-linting.yml @@ -1,5 +1,10 @@ +<<<<<<< HEAD name: nf-core-lint run-name: nf-core-lint +======= +name: nf-core linting +run-name: nf-core linting +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) # This workflow is triggered on pushes and PRs to the repository. # It runs the `nf-core lint` tests to ensure that the module code meets the nf-core guidelines on: @@ -15,7 +20,11 @@ concurrency: jobs: changes: +<<<<<<< HEAD name: check-changes +======= + name: check-for-changes +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) runs-on: ubuntu-latest outputs: # Expose matched filters as job 'modules' output variable @@ -30,7 +39,11 @@ jobs: lint: runs-on: ubuntu-20.04 +<<<<<<< HEAD name: lint +======= + name: nf-core-lint +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) needs: changes if: needs.changes.outputs.modules != '[]' strategy: diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index dcfe6db7cf0..b77978855a3 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -1,5 +1,10 @@ +<<<<<<< HEAD name: pytest run-name: pytest +======= +name: pytest-workflow +run-name: pytest-workflow +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) on: push: branches: [master] @@ -16,7 +21,11 @@ concurrency: jobs: changes: +<<<<<<< HEAD name: check-changes +======= + name: check-for-changes +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) runs-on: ubuntu-latest outputs: # Expose matched filters as job 'modules' output variable @@ -29,9 +38,15 @@ jobs: with: filters: "tests/config/pytest_modules.yml" +<<<<<<< HEAD pytest: runs-on: ubuntu-20.04 name: pytest +======= + pytest_workflow: + runs-on: ubuntu-20.04 + name: pytest-workflow +>>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) needs: changes if: needs.changes.outputs.modules != '[]' strategy: diff --git a/.github/workflows/wait-for-status.yml b/.github/workflows/wait-for-status.yml deleted file mode 100644 index 59ad31577f8..00000000000 --- a/.github/workflows/wait-for-status.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: summary -on: - pull_request: -jobs: - enforce-all-checks: - runs-on: ubuntu-latest - permissions: - checks: read - steps: - - name: GitHub Checks - uses: poseidon/wait-for-status-checks@v0.1.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} From d92ca5ceacd4263a3c8e512cb776c14ab67b1701 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 10:29:39 +0100 Subject: [PATCH 03/32] Changing some stuff to kick off real CI/CD --- modules/nf-core/gatk4/haplotypecaller/main.nf | 2 +- modules/nf-core/samtools/sort/main.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/gatk4/haplotypecaller/main.nf b/modules/nf-core/gatk4/haplotypecaller/main.nf index 478681bd18a..382d6cca9e5 100644 --- a/modules/nf-core/gatk4/haplotypecaller/main.nf +++ b/modules/nf-core/gatk4/haplotypecaller/main.nf @@ -5,7 +5,7 @@ process GATK4_HAPLOTYPECALLER { conda "bioconda::gatk4=4.4.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': - 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" + 'quay.io/biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals), path(dragstr_model) diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index 2b7753fd863..ef281c4856d 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -5,7 +5,7 @@ process SAMTOOLS_SORT { conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'biocontainers/samtools:1.17--h00cdaf9_0' }" + 'quay.io/biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(bam) From ae773bd8feacc2ca51a05705c81b2535425d930f Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Fri, 28 Jul 2023 12:46:00 +0100 Subject: [PATCH 04/32] Apply suggestions from code review Co-authored-by: Harshil Patel --- .github/workflows/nf-core-linting.yml | 96 --------- .github/workflows/pytest-workflow.yml | 267 -------------------------- 2 files changed, 363 deletions(-) delete mode 100644 .github/workflows/nf-core-linting.yml delete mode 100644 .github/workflows/pytest-workflow.yml diff --git a/.github/workflows/nf-core-linting.yml b/.github/workflows/nf-core-linting.yml deleted file mode 100644 index ef72c2f3ce1..00000000000 --- a/.github/workflows/nf-core-linting.yml +++ /dev/null @@ -1,96 +0,0 @@ -<<<<<<< HEAD -name: nf-core-lint -run-name: nf-core-lint -======= -name: nf-core linting -run-name: nf-core linting ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) -# This workflow is triggered on pushes and PRs to the repository. -# It runs the `nf-core lint` tests to ensure that the module code meets the nf-core guidelines -on: - push: - branches: [master] - pull_request: - branches: [master] - -# Cancel if a newer run is started -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - changes: -<<<<<<< HEAD - name: check-changes -======= - name: check-for-changes ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) - runs-on: ubuntu-latest - outputs: - # Expose matched filters as job 'modules' output variable - modules: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@v3 - - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: "tests/config/pytest_modules.yml" - - lint: - runs-on: ubuntu-20.04 -<<<<<<< HEAD - name: lint -======= - name: nf-core-lint ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) - needs: changes - if: needs.changes.outputs.modules != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.changes.outputs.modules) }}"] - steps: - - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - - name: Install pip - run: python -m pip install --upgrade pip - - - name: Install nf-core tools - run: python -m pip install nf-core - - - name: Install Nextflow - env: - CAPSULE_LOG: none - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ - - - name: Lint ${{ matrix.tags }} - run: nf-core modules lint ${{ matrix.tags }} - # HACK - if: startsWith( matrix.tags, 'subworkflow' ) != true - - - uses: actions/cache@v3 - with: - path: /usr/local/bin/nextflow - key: ${{ runner.os }} - restore-keys: | - ${{ runner.os }} diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml deleted file mode 100644 index b77978855a3..00000000000 --- a/.github/workflows/pytest-workflow.yml +++ /dev/null @@ -1,267 +0,0 @@ -<<<<<<< HEAD -name: pytest -run-name: pytest -======= -name: pytest-workflow -run-name: pytest-workflow ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) -on: - push: - branches: [master] - pull_request: - branches: [master] - merge_group: - types: [checks_requested] - branches: [master] - -# Cancel if a newer run is started -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - changes: -<<<<<<< HEAD - name: check-changes -======= - name: check-for-changes ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) - runs-on: ubuntu-latest - outputs: - # Expose matched filters as job 'modules' output variable - modules: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@v3 - - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: "tests/config/pytest_modules.yml" - -<<<<<<< HEAD - pytest: - runs-on: ubuntu-20.04 - name: pytest -======= - pytest_workflow: - runs-on: ubuntu-20.04 - name: pytest-workflow ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) - needs: changes - if: needs.changes.outputs.modules != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.changes.outputs.modules) }}"] - profile: ["docker", "singularity", "conda"] - exclude: - - profile: "conda" - tags: annotsv - - profile: "conda" - tags: cellpose - - profile: "conda" - tags: mcquant - - profile: "conda" - tags: bases2fastq - - profile: "conda" - tags: backsub - - profile: "conda" - tags: basicpy - - profile: "conda" - tags: bcl2fastq - - profile: "conda" - tags: bclconvert - - profile: "conda" - tags: cellranger/count - - profile: "conda" - tags: cellranger/mkfastq - - profile: "conda" - tags: cellranger/mkgtf - - profile: "conda" - tags: cellranger/mkref - - profile: "conda" - tags: cellranger/mkvdjref - - profile: "conda" - tags: cellranger/multi - - profile: "conda" - tags: cellranger/vdj - - profile: "conda" - tags: coreograph - - profile: "conda" - tags: deepcell/mesmer - - profile: "conda" - tags: deepvariant - - profile: "conda" - tags: fastk/fastk - - profile: "conda" - tags: fastk/histex - - profile: "conda" - tags: fastk/merge - - profile: "conda" - tags: fcs/fcsadaptor - - profile: "conda" - tags: fcs/fcsgx - - profile: "conda" - tags: gatk4/baserecalibratorspark - - profile: "conda" - tags: gatk4/cnnscorevariants - - profile: "conda" - tags: gatk4/determinegermlinecontigploidy - - profile: "conda" - tags: gatk4/germlinecnvcaller - - profile: "conda" - tags: gatk4/markduplicatesspark - - profile: "conda" - tags: gatk4/postprocessgermlinecnvcalls - - profile: "conda" - tags: genescopefk - - profile: "conda" - tags: ilastik/multicut - - profile: "conda" - tags: ilastik/pixelclassification - - profile: "conda" - tags: imputeme/vcftoprs - - profile: "conda" - tags: merquryfk/katcomp - - profile: "conda" - tags: merquryfk/katgc - - profile: "conda" - tags: merquryfk/merquryfk - - profile: "conda" - tags: merquryfk/ploidyplot - - profile: "conda" - tags: mitohifi/findmitoreference - - profile: "conda" - tags: scimap/mcmicro - - profile: "conda" - tags: sentieon/applyvarcal - - profile: "conda" - tags: sentieon/bwaindex - - profile: "conda" - tags: sentieon/bwamem - - profile: "conda" - tags: sentieon/dedup - - profile: "conda" - tags: sentieon/gvcftyper - - profile: "conda" - tags: sentieon/haplotyper - - profile: "conda" - tags: sentieon/varcal - - profile: "conda" - tags: spaceranger/count - - profile: "conda" - tags: spaceranger/mkgtf - - profile: "conda" - tags: spaceranger/mkref - - profile: "conda" - tags: universc - - profile: "singularity" - tags: universc - - profile: "singularity" - tags: gatk4/determinegermlinecontigploidy - - profile: "conda" - tags: subworkflows/bcl_demultiplex - - profile: "conda" - tags: subworkflows/fasta_clean_fcs - - profile: "conda" - tags: islandpath - env: - NXF_ANSI_LOG: false - SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} - steps: - - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - - - name: Install Python dependencies - run: python -m pip install --upgrade pip pytest-workflow cryptography - - - uses: actions/cache@v3 - with: - path: /usr/local/bin/nextflow - key: ${{ runner.os }} - restore-keys: | - ${{ runner.os }}-nextflow- - - - name: Install Nextflow - env: - CAPSULE_LOG: none - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ - - - name: Set up Singularity - if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-singularity@v5 - with: - singularity-version: 3.7.1 - - - name: Set up miniconda - if: matrix.profile == 'conda' - uses: conda-incubator/setup-miniconda@v2 - with: - auto-update-conda: true - channels: conda-forge,bioconda,defaults - python-version: ${{ matrix.python-version }} - - - name: Conda setup - if: matrix.profile == 'conda' - run: | - conda clean -a - conda install -n base conda-libmamba-solver - conda config --set solver libmamba - - # 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 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") - SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) - nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 - - # Test the module - - name: Run pytest-workflow - # only use one thread for pytest-workflow to avoid race condition on conda cache. - run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes - - - name: Output log on failure - if: failure() - run: | - sudo apt-get update > /dev/null - sudo apt-get install bat > /dev/null - batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err} - - - name: Setting global variables - uses: actions/github-script@v6 - id: parsed - with: - script: | - return '${{ matrix.tags }}'.toLowerCase().replaceAll(/\//g, '-').trim('-').trim('"') - result-encoding: string - - - name: Upload logs on failure - if: failure() - uses: actions/upload-artifact@v2 - with: - name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} - path: | - /home/runner/pytest_workflow_*/*/.nextflow.log - /home/runner/pytest_workflow_*/*/log.out - /home/runner/pytest_workflow_*/*/log.err - /home/runner/pytest_workflow_*/*/work - !/home/runner/pytest_workflow_*/*/work/conda - !/home/runner/pytest_workflow_*/*/work/singularity From e4cba90226d6272050b7784d87410b2309e3f652 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Fri, 28 Jul 2023 12:50:40 +0100 Subject: [PATCH 05/32] Update .github/workflows/code-linting.yml Co-authored-by: Harshil Patel --- .github/workflows/code-linting.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-linting.yml b/.github/workflows/code-linting.yml index 0c4ca69e8d7..831453f8ea2 100644 --- a/.github/workflows/code-linting.yml +++ b/.github/workflows/code-linting.yml @@ -1,4 +1,4 @@ -name: code-linting +name: code-lint on: push: branches: [master] From ce5579dfd8c5e83aa2d00ae8abf069851cdea061 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 10:37:06 +0100 Subject: [PATCH 06/32] Should reduce concurrent burden at the expense of time. Code is required to lint before running. This will help us during hackathons etc when there is a high burden on the GHA runners, but will be slower in general use. Changes: - linting and testing in one GHA file - Linting is required to pass before pytest or nf-test runs - Check for changes only happens once --- .github/workflows/test.yml | 506 ++++++++++++++++++ modules/nf-core/gatk4/haplotypecaller/main.nf | 4 +- modules/nf-core/samtools/index/main.nf | 2 + modules/nf-core/samtools/sort/main.nf | 2 +- tests/modules/nf-core/fastqc/main.nf.test | 2 + 5 files changed, 514 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000000..acec4ed352d --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,506 @@ +name: test +on: + push: + branches: [master] + pull_request: + branches: [master] + merge_group: + types: [checks_requested] + branches: [master] + +# Cancel if a newer run is started +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + Prettier: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Install NodeJS + uses: actions/setup-node@v3 + + - name: Install Prettier + run: npm install -g prettier + + - name: Run Prettier --check + run: prettier --check . + + EditorConfig: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-node@v3 + + - name: Install editorconfig-checker + run: npm install -g editorconfig-checker + + - name: Run ECLint check + run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) + + pytest-changes: + name: pytest-changes + runs-on: ubuntu-latest + needs: [Prettier, EditorConfig] + outputs: + # Expose matched filters as job 'modules' output variable + modules: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@v3 + + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: "tests/config/pytest_modules.yml" + + nf-core-lint: + runs-on: ubuntu-20.04 + name: nf-core-lint + needs: pytest-changes + if: needs.pytest-changes.outputs.modules != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.pytest-changes.outputs.modules) }}"] + exclude: + - tags: "nf-test" + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + + - uses: actions/cache@v3 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + + - name: Install pip + run: python -m pip install --upgrade pip + + - name: Install nf-core tools + run: python -m pip install nf-core + + - name: Install Nextflow + env: + CAPSULE_LOG: none + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + + - name: Lint ${{ matrix.tags }} + run: nf-core modules lint ${{ matrix.tags }} + # HACK + if: startsWith( matrix.tags, 'subworkflow' ) != true + + - uses: actions/cache@v3 + with: + path: /usr/local/bin/nextflow + key: ${{ runner.os }} + restore-keys: | + ${{ runner.os }} + + pytest: + runs-on: ubuntu-20.04 + name: pytest + needs: [changes, Prettier, EditorConfig, nf_core_lint] + if: needs.changes.outputs.modules != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.pytest-changes.outputs.modules) }}"] + profile: ["docker", "singularity", "conda"] + exclude: + - tags: "nf-test" + - profile: "conda" + tags: annotsv + - profile: "conda" + tags: cellpose + - profile: "conda" + tags: mcquant + - profile: "conda" + tags: bases2fastq + - profile: "conda" + tags: backsub + - profile: "conda" + tags: basicpy + - profile: "conda" + tags: bcl2fastq + - profile: "conda" + tags: bclconvert + - profile: "conda" + tags: cellranger/count + - profile: "conda" + tags: cellranger/mkfastq + - profile: "conda" + tags: cellranger/mkgtf + - profile: "conda" + tags: cellranger/mkref + - profile: "conda" + tags: cellranger/mkvdjref + - profile: "conda" + tags: cellranger/multi + - profile: "conda" + tags: cellranger/vdj + - profile: "conda" + tags: coreograph + - profile: "conda" + tags: deepcell/mesmer + - profile: "conda" + tags: deepvariant + - profile: "conda" + tags: fastk/fastk + - profile: "conda" + tags: fastk/histex + - profile: "conda" + tags: fastk/merge + - profile: "conda" + tags: fcs/fcsadaptor + - profile: "conda" + tags: fcs/fcsgx + - profile: "conda" + tags: gatk4/baserecalibratorspark + - profile: "conda" + tags: gatk4/cnnscorevariants + - profile: "conda" + tags: gatk4/determinegermlinecontigploidy + - profile: "conda" + tags: gatk4/germlinecnvcaller + - profile: "conda" + tags: gatk4/markduplicatesspark + - profile: "conda" + tags: gatk4/postprocessgermlinecnvcalls + - profile: "conda" + tags: genescopefk + - profile: "conda" + tags: ilastik/multicut + - profile: "conda" + tags: ilastik/pixelclassification + - profile: "conda" + tags: imputeme/vcftoprs + - profile: "conda" + tags: merquryfk/katcomp + - profile: "conda" + tags: merquryfk/katgc + - profile: "conda" + tags: merquryfk/merquryfk + - profile: "conda" + tags: merquryfk/ploidyplot + - profile: "conda" + tags: mitohifi/findmitoreference + - profile: "conda" + tags: scimap/mcmicro + - profile: "conda" + tags: sentieon/applyvarcal + - profile: "conda" + tags: sentieon/bwaindex + - profile: "conda" + tags: sentieon/bwamem + - profile: "conda" + tags: sentieon/dedup + - profile: "conda" + tags: sentieon/gvcftyper + - profile: "conda" + tags: sentieon/haplotyper + - profile: "conda" + tags: sentieon/varcal + - profile: "conda" + tags: spaceranger/count + - profile: "conda" + tags: spaceranger/mkgtf + - profile: "conda" + tags: spaceranger/mkref + - profile: "conda" + tags: universc + - profile: "singularity" + tags: universc + - profile: "singularity" + tags: gatk4/determinegermlinecontigploidy + - profile: "conda" + tags: subworkflows/bcl_demultiplex + - profile: "conda" + tags: subworkflows/fasta_clean_fcs + - profile: "conda" + tags: islandpath + env: + NXF_ANSI_LOG: false + SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + + - uses: actions/cache@v3 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install Python dependencies + run: python -m pip install --upgrade pip pytest-workflow cryptography + + - uses: actions/cache@v3 + with: + path: /usr/local/bin/nextflow + key: ${{ runner.os }} + restore-keys: | + ${{ runner.os }}-nextflow- + + - name: Install Nextflow + env: + CAPSULE_LOG: none + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + + - name: Set up Singularity + if: matrix.profile == 'singularity' + uses: eWaterCycle/setup-singularity@v5 + with: + singularity-version: 3.7.1 + + - name: Set up miniconda + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + channels: conda-forge,bioconda,defaults + python-version: ${{ matrix.python-version }} + + - name: Conda setup + if: matrix.profile == 'conda' + run: | + conda clean -a + conda install -n base conda-libmamba-solver + conda config --set solver libmamba + + # 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 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") + SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) + nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 + + # Test the module + - name: Run pytest-workflow + # only use one thread for pytest-workflow to avoid race condition on conda cache. + run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes + + - name: Output log on failure + if: failure() + run: | + sudo apt-get update > /dev/null + sudo apt-get install bat > /dev/null + batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err} + + - name: Setting global variables + uses: actions/github-script@v6 + id: parsed + with: + script: | + return '${{ matrix.tags }}'.toLowerCase().replaceAll(/\//g, '-').trim('-').trim('"') + result-encoding: string + + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v2 + with: + name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} + path: | + /home/runner/pytest_workflow_*/*/.nextflow.log + /home/runner/pytest_workflow_*/*/log.out + /home/runner/pytest_workflow_*/*/log.err + /home/runner/pytest_workflow_*/*/work + !/home/runner/pytest_workflow_*/*/work/conda + !/home/runner/pytest_workflow_*/*/work/singularity + + nf-test-changes: + name: nf-test-changes + runs-on: ubuntu-latest + needs: [Prettier, EditorConfig] + outputs: + # Expose matched filters as job 'modules' output variable + modules: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@v3 + + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: "tests/config/pytest_modules.yml" + + nf-test: + runs-on: ubuntu-20.04 + name: nf-test + needs: [nf-test-changes, Prettier, EditorConfig, nf_core_lint] + if: needs.nf-test-changes.outputs.modules != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.nf-test-changes.outputs.modules) }}"] + profile: ["docker", "singularity", "conda"] + exclude: + - tags: "nf-test" + - profile: "conda" + tags: annotsv + - profile: "conda" + tags: bases2fastq + - profile: "conda" + tags: bcl2fastq + - profile: "conda" + tags: bclconvert + - profile: "conda" + tags: cellranger/count + - profile: "conda" + tags: cellranger/mkfastq + - profile: "conda" + tags: cellranger/mkgtf + - profile: "conda" + tags: cellranger/mkref + - profile: "conda" + tags: deepvariant + - profile: "conda" + tags: ensemblvep/vep + - profile: "conda" + tags: fastk/fastk + - profile: "conda" + tags: fastk/histex + - profile: "conda" + tags: fastk/merge + - profile: "conda" + tags: fcs/fcsadaptor + - profile: "conda" + tags: fcs/fcsgx + - profile: "conda" + tags: gatk4/cnnscorevariants + - profile: "conda" + tags: gatk4/determinegermlinecontigploidy + - profile: "conda" + tags: genescopefk + - profile: "conda" + tags: ilastik/multicut + - profile: "conda" + tags: ilastik/pixelclassification + - profile: "conda" + tags: imputeme/vcftoprs + - profile: "conda" + tags: merquryfk/katcomp + - profile: "conda" + tags: merquryfk/katgc + - profile: "conda" + tags: merquryfk/merquryfk + - profile: "conda" + tags: merquryfk/ploidyplot + - profile: "conda" + tags: sentieon/bwaindex + - profile: "conda" + tags: sentieon/bwamem + - profile: "conda" + tags: universc + - profile: "singularity" + tags: universc + - profile: "conda" + tags: subworkflows/vcf_annotate_ensemblvep + env: + NXF_ANSI_LOG: false + SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} + + steps: + - uses: actions/checkout@v3 + + - uses: actions/cache@v3 + with: + path: /usr/local/bin/nextflow + key: ${{ runner.os }} + restore-keys: | + ${{ runner.os }}-nextflow- + + - name: Install Nextflow + env: + CAPSULE_LOG: none + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + + - name: Cache nf-test installation + id: cache-software + uses: actions/cache@v3 + with: + path: | + /usr/local/bin/nf-test + /home/runner/.nf-test/nf-test.jar + key: ${{ runner.os }}-nftest + + - name: Install nf-test + if: steps.cache-software.outputs.cache-hit != 'true' + run: | + wget -qO- https://code.askimed.com/install/nf-test | bash + sudo mv nf-test /usr/local/bin/ + + - name: Set up Singularity + if: matrix.profile == 'singularity' + uses: eWaterCycle/setup-singularity@v5 + with: + singularity-version: 3.7.1 + + - name: Set up miniconda + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + channels: conda-forge,bioconda,defaults + python-version: ${{ matrix.python-version }} + + - name: Conda setup + if: matrix.profile == 'conda' + run: | + conda clean -a + conda install -n base conda-libmamba-solver + conda config --set solver libmamba + + # 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 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") + SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) + nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 + + # Test the module + - name: Run nf-test + run: | + nf-test test \ + --profile=${{ matrix.profile }} \ + --tag ${{ matrix.tags }} \ + --tap=test.tap + + - uses: pcolby/tap-summary@v1 + with: + path: >- + test.tap diff --git a/modules/nf-core/gatk4/haplotypecaller/main.nf b/modules/nf-core/gatk4/haplotypecaller/main.nf index 382d6cca9e5..33bd7de40d5 100644 --- a/modules/nf-core/gatk4/haplotypecaller/main.nf +++ b/modules/nf-core/gatk4/haplotypecaller/main.nf @@ -5,7 +5,7 @@ process GATK4_HAPLOTYPECALLER { conda "bioconda::gatk4=4.4.0.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': - 'quay.io/biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" + 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals), path(dragstr_model) @@ -50,6 +50,8 @@ process GATK4_HAPLOTYPECALLER { --tmp-dir . \\ $args + # Fake stuff + cat <<-END_VERSIONS > versions.yml "${task.process}": gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index 0b20aa4bb8a..b2d04be9d8c 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -28,6 +28,8 @@ process SAMTOOLS_INDEX { $args \\ $input + # Fake stuff + cat <<-END_VERSIONS > versions.yml "${task.process}": samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index ef281c4856d..2b7753fd863 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -5,7 +5,7 @@ process SAMTOOLS_SORT { conda "bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : - 'quay.io/biocontainers/samtools:1.17--h00cdaf9_0' }" + 'biocontainers/samtools:1.17--h00cdaf9_0' }" input: tuple val(meta), path(bam) diff --git a/tests/modules/nf-core/fastqc/main.nf.test b/tests/modules/nf-core/fastqc/main.nf.test index 3961de60662..41ba9182bec 100644 --- a/tests/modules/nf-core/fastqc/main.nf.test +++ b/tests/modules/nf-core/fastqc/main.nf.test @@ -5,6 +5,8 @@ nextflow_process { process "FASTQC" tag "fastqc" + // Fake stuff + test("Single-Read") { when { From 0b05e07aec55d76b07e87986de5c046de826760a Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 13:04:55 +0100 Subject: [PATCH 07/32] Fix dependencies in GHA --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index acec4ed352d..1e3fd796f26 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -116,7 +116,7 @@ jobs: pytest: runs-on: ubuntu-20.04 name: pytest - needs: [changes, Prettier, EditorConfig, nf_core_lint] + needs: [pytest-changes, Prettier, EditorConfig, nf-core-lint] if: needs.changes.outputs.modules != '[]' strategy: fail-fast: false From a651f01f1ae0d6d6087073e0b91a3077a0cb0de7 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 13:06:33 +0100 Subject: [PATCH 08/32] Remove files again --- .github/workflows/code-linting.yml | 43 ------- .github/workflows/nf-test.yml | 182 ----------------------------- 2 files changed, 225 deletions(-) delete mode 100644 .github/workflows/code-linting.yml delete mode 100644 .github/workflows/nf-test.yml diff --git a/.github/workflows/code-linting.yml b/.github/workflows/code-linting.yml deleted file mode 100644 index 831453f8ea2..00000000000 --- a/.github/workflows/code-linting.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: code-lint -on: - push: - branches: [master] - pull_request: - branches: [master] - merge_group: - types: [checks_requested] - branches: [master] - -# Cancel if a newer run is started -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - Prettier: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v3 - - - name: Install NodeJS - uses: actions/setup-node@v2 - - - name: Install Prettier - run: npm install -g prettier - - - name: Run Prettier --check - run: prettier --check . - - EditorConfig: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-node@v2 - - - name: Install editorconfig-checker - run: npm install -g editorconfig-checker - - - name: Run ECLint check - run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml deleted file mode 100644 index 57df4fef4c2..00000000000 --- a/.github/workflows/nf-test.yml +++ /dev/null @@ -1,182 +0,0 @@ -name: nf-test -run-name: nf-test -on: - push: - branches: [master] - pull_request: - branches: [master] - merge_group: - types: [checks_requested] - branches: [master] - -# Cancel if a newer run is started -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - changes: - name: check-changes - runs-on: ubuntu-latest - outputs: - # Expose matched filters as job 'modules' output variable - modules: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@v3 - - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: "tests/config/nftest_modules.yml" - - nf-test: - runs-on: ubuntu-20.04 - name: nf-test - needs: changes - if: needs.changes.outputs.modules != '[]' - strategy: - fail-fast: false - matrix: - tags: ["${{ fromJson(needs.changes.outputs.modules) }}"] - profile: ["docker", "singularity", "conda"] - exclude: - - profile: "conda" - tags: annotsv - - profile: "conda" - tags: bases2fastq - - profile: "conda" - tags: bcl2fastq - - profile: "conda" - tags: bclconvert - - profile: "conda" - tags: cellranger/count - - profile: "conda" - tags: cellranger/mkfastq - - profile: "conda" - tags: cellranger/mkgtf - - profile: "conda" - tags: cellranger/mkref - - profile: "conda" - tags: deepvariant - - profile: "conda" - tags: ensemblvep/vep - - profile: "conda" - tags: fastk/fastk - - profile: "conda" - tags: fastk/histex - - profile: "conda" - tags: fastk/merge - - profile: "conda" - tags: fcs/fcsadaptor - - profile: "conda" - tags: fcs/fcsgx - - profile: "conda" - tags: gatk4/cnnscorevariants - - profile: "conda" - tags: gatk4/determinegermlinecontigploidy - - profile: "conda" - tags: genescopefk - - profile: "conda" - tags: ilastik/multicut - - profile: "conda" - tags: ilastik/pixelclassification - - profile: "conda" - tags: imputeme/vcftoprs - - profile: "conda" - tags: merquryfk/katcomp - - profile: "conda" - tags: merquryfk/katgc - - profile: "conda" - tags: merquryfk/merquryfk - - profile: "conda" - tags: merquryfk/ploidyplot - - profile: "conda" - tags: sentieon/bwaindex - - profile: "conda" - tags: sentieon/bwamem - - profile: "conda" - tags: universc - - profile: "singularity" - tags: universc - - profile: "conda" - tags: subworkflows/vcf_annotate_ensemblvep - env: - NXF_ANSI_LOG: false - SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} - steps: - - uses: actions/checkout@v3 - - - uses: actions/cache@v3 - with: - path: /usr/local/bin/nextflow - key: ${{ runner.os }} - restore-keys: | - ${{ runner.os }}-nextflow- - - - name: Install Nextflow - env: - CAPSULE_LOG: none - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ - - - name: Cache nf-test installation - id: cache-software - uses: actions/cache@v3 - with: - path: | - /usr/local/bin/nf-test - /home/runner/.nf-test/nf-test.jar - key: ${{ runner.os }}-nftest - - - name: Install nf-test - if: steps.cache-software.outputs.cache-hit != 'true' - run: | - wget -qO- https://code.askimed.com/install/nf-test | bash - sudo mv nf-test /usr/local/bin/ - - - name: Set up Singularity - if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-singularity@v5 - with: - singularity-version: 3.7.1 - - - name: Set up miniconda - if: matrix.profile == 'conda' - uses: conda-incubator/setup-miniconda@v2 - with: - auto-update-conda: true - channels: conda-forge,bioconda,defaults - python-version: ${{ matrix.python-version }} - - - name: Conda setup - if: matrix.profile == 'conda' - run: | - conda clean -a - conda install -n base conda-libmamba-solver - conda config --set solver libmamba - - # 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 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") - SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) - nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 - - # Test the module - - name: Run nf-test - run: | - nf-test test \ - --profile=${{ matrix.profile }} \ - --tag ${{ matrix.tags }} \ - --tap=test.tap - - - uses: pcolby/tap-summary@v1 - with: - path: >- - test.tap From b454fb9c7de1430ada65c01eb086836b884b0897 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 13:08:56 +0100 Subject: [PATCH 09/32] More dependency fixes --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1e3fd796f26..780324d797b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -354,7 +354,7 @@ jobs: nf-test: runs-on: ubuntu-20.04 name: nf-test - needs: [nf-test-changes, Prettier, EditorConfig, nf_core_lint] + needs: [nf-test-changes, Prettier, EditorConfig, nf-core-lint] if: needs.nf-test-changes.outputs.modules != '[]' strategy: fail-fast: false From a10564d36e15b952acf3f5879daba4c2c79eebb0 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 13:14:20 +0100 Subject: [PATCH 10/32] Correct nf-test filtering yaml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 780324d797b..ce12a35cfa9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -349,7 +349,7 @@ jobs: - uses: dorny/paths-filter@v2 id: filter with: - filters: "tests/config/pytest_modules.yml" + filters: "tests/config/nftest_modules.yml" nf-test: runs-on: ubuntu-20.04 From 49fb85d5bb5499071dfbb168ceb8a2f84ce0a87e Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 13:25:17 +0100 Subject: [PATCH 11/32] Change to fix-linting for consistency --- .github/workflows/fix-linting.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 7c2c01cd15b..8558ceef715 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -5,11 +5,7 @@ on: types: [created] jobs: -<<<<<<< HEAD fix-linting: -======= - fix_linting: ->>>>>>> 568afbcc2 (Rename and tidy all GHA workflows for branch protection) # Only run if comment is on a PR with the main repo, and if it contains the magic keywords if: > contains(github.event.comment.html_url, '/pull/') && From 571e68512f9efe8929ec6e43b1dbd34fed288fea Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 14:32:16 +0100 Subject: [PATCH 12/32] Bump setup-python version to v4 --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ce12a35cfa9..b8ab46d8828 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -72,7 +72,7 @@ jobs: - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: "3.x" @@ -84,7 +84,7 @@ jobs: ${{ runner.os }}-pip- - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: "3.x" @@ -242,7 +242,7 @@ jobs: - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: "3.x" From 79a73a6c58cc7126432aff18b03b1c843bdfa703 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Fri, 28 Jul 2023 16:16:43 +0100 Subject: [PATCH 13/32] bump eWaterCycle/setup-singularity to v7 --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b8ab46d8828..14d9ecfc37b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -272,7 +272,7 @@ jobs: - name: Set up Singularity if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-singularity@v5 + uses: eWaterCycle/setup-singularity@v7 with: singularity-version: 3.7.1 @@ -461,7 +461,7 @@ jobs: - name: Set up Singularity if: matrix.profile == 'singularity' - uses: eWaterCycle/setup-singularity@v5 + uses: eWaterCycle/setup-singularity@v7 with: singularity-version: 3.7.1 From 3a8b0a0897fc7f119b6e075b6d964059abc48a20 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 12:45:45 +0100 Subject: [PATCH 14/32] Add final job to test for pass status of all previous jobs --- .github/workflows/test.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 14d9ecfc37b..6141e1716b2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -504,3 +504,15 @@ jobs: with: path: >- test.tap + + confirm-pass: + runs-on: ubuntu-latest + needs: [Prettier, EditorConfig, nf-core-lint, pytest, nf-test] + if: always() + steps: + - name: All tests ok + if: ${{ !(contains(needs.*.result, 'failure')) }} + run: exit 0 + - name: One or more tests failed + if: ${{ contains(needs.*.result, 'failure') }} + run: exit 1 From 07e940cb63d36a59399419ac82e271c0ce681498 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 12:51:26 +0100 Subject: [PATCH 15/32] Add checking for changes to test requirement --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6141e1716b2..33086e0feda 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -507,7 +507,7 @@ jobs: confirm-pass: runs-on: ubuntu-latest - needs: [Prettier, EditorConfig, nf-core-lint, pytest, nf-test] + needs: [Prettier, EditorConfig, pytest-changes, nf-core-lint, pytest, nf-test-changes, nf-test] if: always() steps: - name: All tests ok From f4909746f9edd411b4f271e16daf54476e4f5dc6 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 14:17:16 +0100 Subject: [PATCH 16/32] Revert module changes --- modules/nf-core/gatk4/haplotypecaller/main.nf | 2 -- modules/nf-core/samtools/index/main.nf | 2 -- tests/modules/nf-core/fastqc/main.nf.test | 2 -- 3 files changed, 6 deletions(-) diff --git a/modules/nf-core/gatk4/haplotypecaller/main.nf b/modules/nf-core/gatk4/haplotypecaller/main.nf index 33bd7de40d5..478681bd18a 100644 --- a/modules/nf-core/gatk4/haplotypecaller/main.nf +++ b/modules/nf-core/gatk4/haplotypecaller/main.nf @@ -50,8 +50,6 @@ process GATK4_HAPLOTYPECALLER { --tmp-dir . \\ $args - # Fake stuff - cat <<-END_VERSIONS > versions.yml "${task.process}": gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index b2d04be9d8c..0b20aa4bb8a 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -28,8 +28,6 @@ process SAMTOOLS_INDEX { $args \\ $input - # Fake stuff - cat <<-END_VERSIONS > versions.yml "${task.process}": samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') diff --git a/tests/modules/nf-core/fastqc/main.nf.test b/tests/modules/nf-core/fastqc/main.nf.test index 41ba9182bec..3961de60662 100644 --- a/tests/modules/nf-core/fastqc/main.nf.test +++ b/tests/modules/nf-core/fastqc/main.nf.test @@ -5,8 +5,6 @@ nextflow_process { process "FASTQC" tag "fastqc" - // Fake stuff - test("Single-Read") { when { From f050865cd6260c2e6278bdeaef2cb62f14a91a7e Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 14:17:40 +0100 Subject: [PATCH 17/32] Add fake change to FASTQC --- modules/nf-core/fastqc/main.nf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 249f90644d2..f7f4b8f7d63 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -35,6 +35,8 @@ process FASTQC { --threads $task.cpus \\ $renamed_files + # Fake stuff + cat <<-END_VERSIONS > versions.yml "${task.process}": fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) From 27385dfaf0c90d94f9d0c75f58398e5ae3f2daed Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 14:45:37 +0100 Subject: [PATCH 18/32] Test in parallel --- .github/workflows/test.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 33086e0feda..12709690b3b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,7 +45,6 @@ jobs: pytest-changes: name: pytest-changes runs-on: ubuntu-latest - needs: [Prettier, EditorConfig] outputs: # Expose matched filters as job 'modules' output variable modules: ${{ steps.filter.outputs.changes }} @@ -60,7 +59,7 @@ jobs: nf-core-lint: runs-on: ubuntu-20.04 name: nf-core-lint - needs: pytest-changes + needs: [pytest-changes] if: needs.pytest-changes.outputs.modules != '[]' strategy: fail-fast: false @@ -116,7 +115,7 @@ jobs: pytest: runs-on: ubuntu-20.04 name: pytest - needs: [pytest-changes, Prettier, EditorConfig, nf-core-lint] + needs: [pytest-changes] if: needs.changes.outputs.modules != '[]' strategy: fail-fast: false @@ -339,7 +338,6 @@ jobs: nf-test-changes: name: nf-test-changes runs-on: ubuntu-latest - needs: [Prettier, EditorConfig] outputs: # Expose matched filters as job 'modules' output variable modules: ${{ steps.filter.outputs.changes }} @@ -354,7 +352,7 @@ jobs: nf-test: runs-on: ubuntu-20.04 name: nf-test - needs: [nf-test-changes, Prettier, EditorConfig, nf-core-lint] + needs: [nf-test-changes] if: needs.nf-test-changes.outputs.modules != '[]' strategy: fail-fast: false From d3c9b76084722818b40e637ae424d0fbc46a50f8 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 17:27:29 +0100 Subject: [PATCH 19/32] Revert "Add fake change to FASTQC" This reverts commit f050865cd6260c2e6278bdeaef2cb62f14a91a7e. --- modules/nf-core/fastqc/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index f7f4b8f7d63..249f90644d2 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -35,8 +35,6 @@ process FASTQC { --threads $task.cpus \\ $renamed_files - # Fake stuff - cat <<-END_VERSIONS > versions.yml "${task.process}": fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) From 269c63f509afb022ec716136689156dc2daec7c4 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 17:40:01 +0100 Subject: [PATCH 20/32] Change logic to allow skipped processes --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 12709690b3b..4e294322cff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -509,7 +509,8 @@ jobs: if: always() steps: - name: All tests ok - if: ${{ !(contains(needs.*.result, 'failure')) }} + if: | + always() && ${{ !contains(needs.*.result, 'failure') }} run: exit 0 - name: One or more tests failed if: ${{ contains(needs.*.result, 'failure') }} From da0a03d50e5a34ff02fabd3921a800843c72d709 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 17:44:20 +0100 Subject: [PATCH 21/32] Format changes --- .github/workflows/test.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4e294322cff..fd44137525d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -509,9 +509,8 @@ jobs: if: always() steps: - name: All tests ok - if: | - always() && ${{ !contains(needs.*.result, 'failure') }} + if: always() && !contains(needs.*.result, 'failure') run: exit 0 - name: One or more tests failed - if: ${{ contains(needs.*.result, 'failure') }} + if: contains(needs.*.result, 'failure') run: exit 1 From 83fec8c3864265c4f6aa50b7258c78393b767358 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 17:49:38 +0100 Subject: [PATCH 22/32] Change logic again --- .github/workflows/test.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fd44137525d..ec3e53b10f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -509,8 +509,11 @@ jobs: if: always() steps: - name: All tests ok - if: always() && !contains(needs.*.result, 'failure') + if: | + always() && + !contains(needs.*.result, 'failure') && + !contains(needs.*.result, 'cancelled') run: exit 0 - name: One or more tests failed - if: contains(needs.*.result, 'failure') + if: ${{ contains(needs.*.result, 'failure') }} run: exit 1 From 4b2c0f7cbc160f661e8800985a79645cf7a25857 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 17:52:14 +0100 Subject: [PATCH 23/32] Change logic again --- .github/workflows/test.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ec3e53b10f3..df0815fd0e4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -509,10 +509,7 @@ jobs: if: always() steps: - name: All tests ok - if: | - always() && - !contains(needs.*.result, 'failure') && - !contains(needs.*.result, 'cancelled') + if: ${{ success() || failure() || ( always() && ! cancelled() ) }} run: exit 0 - name: One or more tests failed if: ${{ contains(needs.*.result, 'failure') }} From 01ef2f4a21d8706ddc9c3f08f5e1bd7c9c41c8cb Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 17:58:48 +0100 Subject: [PATCH 24/32] Change logic again --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df0815fd0e4..628dcde25e3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -512,5 +512,5 @@ jobs: if: ${{ success() || failure() || ( always() && ! cancelled() ) }} run: exit 0 - name: One or more tests failed - if: ${{ contains(needs.*.result, 'failure') }} + if: contains(needs.*.result, 'failure') run: exit 1 From 62d170236c898f3b29307dc829b914c0631cb92b Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:02:38 +0100 Subject: [PATCH 25/32] Add debug step to help work it out --- .github/workflows/test.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 628dcde25e3..be3805f6976 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -509,8 +509,17 @@ jobs: if: always() steps: - name: All tests ok - if: ${{ success() || failure() || ( always() && ! cancelled() ) }} + if: ${{ success() || !contains(needs.*.result, 'failure') }} run: exit 0 - name: One or more tests failed - if: contains(needs.*.result, 'failure') + 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) }}" + echo "!contains(needs.*.result, 'skipped') = ${{ !contains(needs.*.result, 'skipped') }}" + echo "!contains(needs.*.result, 'failure') = ${{ !contains(needs.*.result, 'failure') }}" + echo "!contains(needs.*.result, 'success') = ${{ !contains(needs.*.result, 'sucess') }}" From b2003b0a5f325c440013cd22f6a99c8f93b5f21b Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:07:37 +0100 Subject: [PATCH 26/32] Caught pytest-changes bug --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index be3805f6976..85092e7f455 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -116,7 +116,7 @@ jobs: runs-on: ubuntu-20.04 name: pytest needs: [pytest-changes] - if: needs.changes.outputs.modules != '[]' + if: needs.pytest-changes.outputs.modules != '[]' strategy: fail-fast: false matrix: @@ -521,5 +521,5 @@ jobs: echo "toJSON(needs) = ${{ toJSON(needs) }}" echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" echo "!contains(needs.*.result, 'skipped') = ${{ !contains(needs.*.result, 'skipped') }}" - echo "!contains(needs.*.result, 'failure') = ${{ !contains(needs.*.result, 'failure') }}" - echo "!contains(needs.*.result, 'success') = ${{ !contains(needs.*.result, 'sucess') }}" + echo "contains(needs.*.result, 'failure') = ${{ contains(needs.*.result, 'failure') }}" + echo "!contains(needs.*.result, 'success') = ${{ !contains(needs.*.result, 'success') }}" From 197ffeb0efdba72ab6c14c6d05dba583874790dd Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:09:25 +0100 Subject: [PATCH 27/32] Reintroduce change to FASTQC module --- modules/nf-core/fastqc/main.nf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 249f90644d2..95e3fbdff86 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -35,6 +35,8 @@ process FASTQC { --threads $task.cpus \\ $renamed_files + # Dummy change + cat <<-END_VERSIONS > versions.yml "${task.process}": fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) From d75f94b137f826cf3af573152c53f9aab73d9927 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:32:42 +0100 Subject: [PATCH 28/32] Remove debug statements --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 85092e7f455..12a4549ff31 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -520,6 +520,3 @@ jobs: run: | echo "toJSON(needs) = ${{ toJSON(needs) }}" echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" - echo "!contains(needs.*.result, 'skipped') = ${{ !contains(needs.*.result, 'skipped') }}" - echo "contains(needs.*.result, 'failure') = ${{ contains(needs.*.result, 'failure') }}" - echo "!contains(needs.*.result, 'success') = ${{ !contains(needs.*.result, 'success') }}" From a153d5303e8d53bb3298c181d0ab459471cacb52 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:33:03 +0100 Subject: [PATCH 29/32] Revert "Reintroduce change to FASTQC module" This reverts commit 197ffeb0efdba72ab6c14c6d05dba583874790dd. --- modules/nf-core/fastqc/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 95e3fbdff86..249f90644d2 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -35,8 +35,6 @@ process FASTQC { --threads $task.cpus \\ $renamed_files - # Dummy change - cat <<-END_VERSIONS > versions.yml "${task.process}": fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) From c28fef48f041da12116d008463394c97080c2568 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:34:59 +0100 Subject: [PATCH 30/32] Mess up FASTQC deliberately to test failures --- modules/nf-core/fastqc/main.nf | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 249f90644d2..e9d5bd5535f 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -26,19 +26,6 @@ process FASTQC { def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') """ - printf "%s %s\\n" $rename_to | while read old_name new_name; do - [ -f "\${new_name}" ] || ln -s \$old_name \$new_name - done - - fastqc \\ - $args \\ - --threads $task.cpus \\ - $renamed_files - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS """ stub: From 4f7c9ac0368ad680859cde3ee122208a21918a6f Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Mon, 31 Jul 2023 18:50:42 +0100 Subject: [PATCH 31/32] Revert "Mess up FASTQC deliberately to test failures" This reverts commit c28fef48f041da12116d008463394c97080c2568. --- modules/nf-core/fastqc/main.nf | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index e9d5bd5535f..249f90644d2 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -26,6 +26,19 @@ process FASTQC { def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') """ + printf "%s %s\\n" $rename_to | while read old_name new_name; do + [ -f "\${new_name}" ] || ln -s \$old_name \$new_name + done + + fastqc \\ + $args \\ + --threads $task.cpus \\ + $renamed_files + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS """ stub: From 60ca551d16920c03d8649104cadc7a7ce595bb49 Mon Sep 17 00:00:00 2001 From: Adam Talbot Date: Wed, 2 Aug 2023 10:03:46 +0100 Subject: [PATCH 32/32] Changed to all lower case --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 12a4549ff31..f992ded1f68 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ concurrency: cancel-in-progress: true jobs: - Prettier: + prettier: runs-on: ubuntu-latest steps: - name: Check out repository @@ -29,7 +29,7 @@ jobs: - name: Run Prettier --check run: prettier --check . - EditorConfig: + editorconfig: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -505,7 +505,7 @@ jobs: confirm-pass: runs-on: ubuntu-latest - needs: [Prettier, EditorConfig, pytest-changes, nf-core-lint, pytest, nf-test-changes, nf-test] + needs: [prettier, editorconfig, pytest-changes, nf-core-lint, pytest, nf-test-changes, nf-test] if: always() steps: - name: All tests ok