From 7c06972d0cd26734452a2402814b08853c5ebf65 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 23 Oct 2024 20:21:52 +0200 Subject: [PATCH 1/4] implement sharding of tests --- .github/workflows/ci.yml | 92 ++++++++++------------------------------ 1 file changed, 22 insertions(+), 70 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6346287ac..330e32857 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,75 +19,33 @@ concurrency: group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" cancel-in-progress: true jobs: - nf-test-changes: - name: Check for changes - runs-on: ubuntu-latest - outputs: - nf_test_files: ${{ steps.list.outputs.components }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: List nf-test files - id: list - uses: adamrtalbot/detect-nf-test-changes@v0.0.2 - with: - head: ${{ github.sha }} - base: origin/${{ github.base_ref }} - include: .github/include.yaml - - - name: print list of nf-test files - run: | - echo ${{ steps.list.outputs.components }} - test: - name: "Run tests (${{ matrix.nf_test_files }} ${{ matrix.profile }} NF-${{ matrix.NXF_VER }})" - needs: [nf-test-changes] - if: needs.nf-test-changes.outputs.nf_test_files != '[]' runs-on: ubuntu-latest + name: "Test ${{ matrix.filter }} | ${{ matrix.profile }} | ${{ matrix.NXF_VER }} | ${{ matrix.shard }}/5" strategy: fail-fast: false matrix: NXF_VER: - "24.04.2" - "latest-everything" - nf_test_files: ["${{ fromJson(needs.nf-test-changes.outputs.nf_test_files) }}"] - profile: - - "conda" - - "docker" - - "singularity" + filter: ["process", "workflow", "function", "pipeline"] + profile: ["docker", "singularity"] + shard: [1, 2, 3, 4, 5] isMaster: - ${{ github.base_ref == 'master' }} - # Exclude conda and singularity on dev exclude: - - isMaster: false - profile: "conda" - isMaster: false profile: "singularity" - - profile: "conda" - nf_test_files: "tests/default.nf.test" - - profile: "conda" - nf_test_files: "tests/featurecounts_group_type.nf.test" - - profile: "conda" - nf_test_files: "tests/hisat2.nf.test" - - profile: "conda" - nf_test_files: "tests/kallisto.nf.test" - - profile: "conda" - nf_test_files: "tests/min_mapped_reads.nf.test" - - profile: "conda" - nf_test_files: "tests/remove_ribo_rna.nf.test" - - profile: "conda" - nf_test_files: "tests/salmon.nf.test" - - profile: "conda" - nf_test_files: "tests/skip_qc.nf.test" - - profile: "conda" - nf_test_files: "tests/skip_trimming.nf.test" - - profile: "conda" - nf_test_files: "tests/star_rsem.nf.test" steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + with: + fetch-depth: 0 + + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + architecture: "x64" - name: Set up Nextflow uses: nf-core/setup-nextflow@v2 @@ -104,21 +62,6 @@ jobs: 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 - conda-solver: libmamba - channels: conda-forge,bioconda - - - name: Set up Conda - if: matrix.profile == 'conda' - run: | - echo $(realpath $CONDA)/condabin >> $GITHUB_PATH - echo $(realpath python) >> $GITHUB_PATH - - name: Install nf-test uses: nf-core/setup-nf-test@v1 with: @@ -137,9 +80,18 @@ jobs: - name: Clean up Disk space uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - name: Run nf-test + - name: "Run tests | ${{ matrix.filter }}_${{ matrix.profile }} | ${{ matrix.shard }}/5" run: | - nf-test test --verbose ${{ matrix.nf_test_files }} --profile "+${{ matrix.profile }}" --junitxml=test.xml --tap=test.tap + 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 }} - uses: pcolby/tap-summary@v1 with: From cadbeaee22ebb40065219ad121cd3b3ffe444acb Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 23 Oct 2024 20:24:07 +0200 Subject: [PATCH 2/4] update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51374d1e8..a1f9df590 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ Special thanks to the following for their contributions to the release: - [Maxime Garcia](https://github.com/maxulysse) - [Jonathan Manning](https://github.com/pinin4fjords) - [Pablo Gonzalez de Aledo](https://github.com/pabloaledo) +- [Edmund Miller](https://github.com/edmundmiller) ### Enhancements & fixes @@ -22,6 +23,7 @@ Special thanks to the following for their contributions to the release: - [PR #1425](https://github.com/nf-core/rnaseq/pull/1425) - Add profile for ARM compatibility - [PR #1432](https://github.com/nf-core/rnaseq/pull/1432) - Bump versions for 3.17.0 release - [PR #1434](https://github.com/nf-core/rnaseq/pull/1434) - Default registry is quay.io for all containers +- [PR #1438](https://github.com/nf-core/rnaseq/pull/1438) - Implement @edmundmiller strategy for splitting up nf-test tests ## [[3.16.1](https://github.com/nf-core/rnaseq/releases/tag/3.16.1)] - 2024-10-16 From 2862296661e7a5d5053038e153c7122498e82dd5 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 23 Oct 2024 20:27:51 +0200 Subject: [PATCH 3/4] forgot tap --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 330e32857..7e273ab71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -87,6 +87,7 @@ jobs: --debug \ --verbose \ --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ + --tap=test.tap \ --shard ${{ matrix.shard }}/5 \ --changed-since HEAD^ \ --follow-dependencies \ From 56ed04de1491ccef8e7d78f715048c872fb65414 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 23 Oct 2024 20:33:09 +0200 Subject: [PATCH 4/4] remove tap --- .github/workflows/ci.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7e273ab71..687b94bc3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -87,18 +87,12 @@ jobs: --debug \ --verbose \ --junitxml="TEST-${{ matrix.filter }}_${{ matrix.profile }}_${{ matrix.shard }}.xml" \ - --tap=test.tap \ --shard ${{ matrix.shard }}/5 \ --changed-since HEAD^ \ --follow-dependencies \ --profile "+${{ matrix.profile }}" \ --filter ${{ matrix.filter }} - - uses: pcolby/tap-summary@v1 - with: - path: >- - test.tap - - name: Output log on failure if: failure() run: |