Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement sharding of tests #1438

Draft
wants to merge 4 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 22 additions & 75 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -137,14 +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

- uses: pcolby/tap-summary@v1
with:
path: >-
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 }}

- name: Output log on failure
if: failure()
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down
Loading