Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
249 commits
Select commit Hold shift + click to select a range
ea5d11a
back to dev
matthdsm Jun 23, 2025
cf1da30
coverage - filter seqcap genelists
matthdsm Jun 23, 2025
0c8f087
fix module tests
matthdsm Jun 23, 2025
503fa15
MQC: disable plot export
matthdsm Jun 23, 2025
f9ad2f1
only use first versions of modules
nvnieuwk Sep 5, 2025
b69fc6a
Update regex pattern for BED file path validation
matthdsm Sep 11, 2025
d931a68
linting
matthdsm Sep 11, 2025
4292758
Update assets/schema_input.json
matthdsm Sep 11, 2025
aff0bf1
Merge pull request #137 from nf-cmgg/matthdsm-patch-1
matthdsm Sep 11, 2025
b173054
Update regex pattern for BED file path validation
matthdsm Sep 11, 2025
1b34051
linting
matthdsm Sep 11, 2025
2dfe6e8
Update assets/schema_input.json
matthdsm Sep 11, 2025
8eda587
Merge pull request #133 from nf-cmgg/feature/#131_coverage_fixes
matthdsm Sep 11, 2025
bfb0787
Merge pull request #136 from nf-cmgg/first-versions
matthdsm Sep 11, 2025
b4c6e2b
nextflow lint all the things
matthdsm Sep 15, 2025
0d42714
bump WES ROI
matthdsm Sep 17, 2025
534d13e
small fixes before conversion
nvnieuwk Nov 3, 2025
f8e5bb7
convert bclconvert output
nvnieuwk Nov 3, 2025
2c3949f
fix more bclconvert outputs
nvnieuwk Nov 3, 2025
93a0496
finish conversion of the output handling
nvnieuwk Nov 4, 2025
fade37e
fix subwf tests
nvnieuwk Nov 4, 2025
5131640
update changelog
nvnieuwk Nov 4, 2025
4334b77
bump ci nextflow version
nvnieuwk Nov 4, 2025
5b2ee8a
bump bcl_demultiplex
nvnieuwk Nov 4, 2025
1af5c00
update readme
nvnieuwk Nov 12, 2025
82707bd
Merge pull request #138 from nf-cmgg/update/output-publishing
nvnieuwk Nov 12, 2025
caf4700
fix version in config
nvnieuwk Nov 13, 2025
c8888be
bump changelog version
nvnieuwk Nov 13, 2025
907ef2e
Template update for nf-core/tools version 3.4.1
nvnieuwk Nov 13, 2025
0de5f07
Merge branch 'TEMPLATE' into update/syntax
nvnieuwk Nov 13, 2025
86c028f
fix issues introduced with the template sync
nvnieuwk Nov 13, 2025
9e66e71
Channel -> channel
nvnieuwk Nov 13, 2025
24166c0
lint issues + module updates
nvnieuwk Nov 13, 2025
c0444d0
update star/align
nvnieuwk Nov 19, 2025
28c2be3
fix as much linting as possible
nvnieuwk Nov 20, 2025
0efef08
bump nextflow to 25.10.0
nvnieuwk Nov 20, 2025
c5b8448
patch subwf
nvnieuwk Nov 20, 2025
a721f8b
remove old ci flow and add credentials to new one
nvnieuwk Nov 21, 2025
2accfb1
pre commit
nvnieuwk Nov 21, 2025
c23343b
fix rocrate
nvnieuwk Nov 21, 2025
9ed2cfa
fix versions yaml name
nvnieuwk Nov 21, 2025
52beab7
remove template tests and add outdir to existing pipeline tests
nvnieuwk Nov 21, 2025
605fb67
nft-utils -> 0.0.7
nvnieuwk Nov 21, 2025
7a9272b
fix snapshot
nvnieuwk Nov 21, 2025
ecc4305
rename main test file
nvnieuwk Nov 21, 2025
cf529ea
final linting fix
nvnieuwk Nov 21, 2025
b0860c5
Merge pull request #139 from nf-cmgg/update/syntax
nvnieuwk Nov 21, 2025
37d3c30
update bcl-convert config for gcp
matthdsm Dec 2, 2025
9c49fb1
add dynamic disk allocation
matthdsm Dec 2, 2025
2d51974
increase mem
matthdsm Dec 2, 2025
8d95252
fix linting
matthdsm Dec 2, 2025
c21d91a
bump bcl2fastq/bclconvert and subworkflow
matthdsm Dec 2, 2025
2676acf
bump bamsormadup
matthdsm Dec 2, 2025
a9d31ad
bump aligners, add strobealign
matthdsm Dec 2, 2025
80b7e00
Merge pull request #140 from nf-cmgg/fix/bclconvert_gcp
matthdsm Dec 2, 2025
35d1d62
clean up subwf
matthdsm Dec 2, 2025
97b8071
bump nf-schema
matthdsm Dec 2, 2025
a07c975
bump fastp
matthdsm Dec 2, 2025
76146af
ditch fastqc
matthdsm Dec 2, 2025
7591449
bump md5sum
matthdsm Dec 2, 2025
343b30b
bump mosdepth
matthdsm Dec 2, 2025
876c89b
bump multiqc
matthdsm Dec 2, 2025
3833af4
bump picard modules
matthdsm Dec 2, 2025
4e99a19
bump samtools modules
matthdsm Dec 2, 2025
9c17c79
fix snap config
matthdsm Dec 2, 2025
14cafdd
update ro-crate
matthdsm Dec 2, 2025
1c8e34a
fix files-unchanged
matthdsm Dec 2, 2025
a4555b6
patch modules
matthdsm Dec 2, 2025
3f9cc7c
re-add analysis profiles
matthdsm Dec 2, 2025
ef8d686
set cram output to v3 to ensure downstream compatibility
matthdsm Dec 2, 2025
915702a
bump subwf
matthdsm Dec 2, 2025
05707f5
fix snapshots
matthdsm Dec 2, 2025
3677efd
drop githubworkflow since we have no bot
matthdsm Dec 2, 2025
ad89007
fix test
matthdsm Dec 2, 2025
f4490fc
try to fix bclconvert on GCP
matthdsm Dec 2, 2025
e192be1
update bcl-convert config for gcp
matthdsm Dec 2, 2025
2c24f7b
add dynamic disk allocation
matthdsm Dec 2, 2025
2fcc5e7
increase mem
matthdsm Dec 2, 2025
de0daec
fix linting
matthdsm Dec 2, 2025
1231634
fix module config
matthdsm Dec 2, 2025
55a9e8b
Merge branch 'dev' into chore/bump_modules
matthdsm Dec 2, 2025
37fce80
Merge pull request #142 from nf-cmgg/chore/bump_modules
matthdsm Dec 2, 2025
f3495f6
update contributors
matthdsm Dec 2, 2025
3713ccf
changelog
matthdsm Dec 2, 2025
02697a6
increase disk, set stageOutMode
matthdsm Dec 3, 2025
753f55b
add strobealign config
matthdsm Dec 3, 2025
fe0791a
add 50001 (spot pre-empted) to retry codes
matthdsm Dec 3, 2025
6227b4b
output files in library subdir where possible
matthdsm Dec 4, 2025
58a6bed
fix output definition, retain library in meta
matthdsm Dec 4, 2025
8728f8c
fix outdir issue
matthdsm Dec 4, 2025
d95df0f
add per-library multiqc
matthdsm Dec 4, 2025
1fc03e9
improve logic
matthdsm Dec 4, 2025
9d6cd02
fix for MQC errors
matthdsm Dec 4, 2025
ff2b95e
update test samplesheet
matthdsm Dec 4, 2025
768997a
fix topics mess
nvnieuwk Dec 4, 2025
dd391dc
patch multiqc
nvnieuwk Dec 4, 2025
5a7c1e7
fix tests, add changelog
matthdsm Dec 4, 2025
00bcfcb
fix linting
matthdsm Dec 4, 2025
e917d7f
fix more tests
matthdsm Dec 4, 2025
61e6778
Merge pull request #143 from nf-cmgg/feature/output_per_library
matthdsm Dec 4, 2025
d0da19e
Update schema and test input with aligner: false
matthdsm Dec 4, 2025
e390159
convert untrimmed fastq -> ucram
matthdsm Dec 4, 2025
52c3f8a
Drop support for unaligned cram
matthdsm Dec 4, 2025
46368d8
redirect fastq to output when aligner is unset
matthdsm Dec 4, 2025
0a094c1
update workflow output
matthdsm Dec 4, 2025
ae7e971
update docs
matthdsm Dec 4, 2025
efb3cf5
output only fastq from demultiplexer, `aligner` param no longer manda…
matthdsm Dec 4, 2025
7a23490
drop `params.aligner` in favour of per sample `aligner` meta field
matthdsm Dec 4, 2025
3907850
update changelog
matthdsm Dec 4, 2025
eb69f58
typo
matthdsm Dec 4, 2025
10ca100
update snapshot
matthdsm Dec 4, 2025
9f433eb
add GCP error codes to retry clause
matthdsm Dec 5, 2025
5edb0e2
Merge pull request #146 from nf-cmgg/feat/fastq_output
matthdsm Dec 5, 2025
78655d0
improve MQC pool name
matthdsm Dec 7, 2025
77c2139
feat/improve_fq_shard
matthdsm Dec 8, 2025
aa5642b
add optimized resources for WGS on GCP
matthdsm Dec 8, 2025
7b3fb47
add profile to config
matthdsm Dec 8, 2025
e475437
apply cpu/mem as default, make module selectors more specific
matthdsm Dec 9, 2025
ef81280
update snapshot
matthdsm Dec 9, 2025
bac9ba6
fix process selectors
matthdsm Dec 9, 2025
02b268c
update snapshots
matthdsm Dec 9, 2025
419f66e
fix process selectors even more
matthdsm Dec 9, 2025
0597b29
Merge pull request #148 from nf-cmgg/gcp/optimize_resources
matthdsm Dec 9, 2025
6b648dd
gcp: comment unused selectors
matthdsm Dec 10, 2025
6ae7974
update gcp profile
matthdsm Dec 10, 2025
ae5956e
bump multiqc
matthdsm Dec 10, 2025
f9104c1
gcp: set default time to 24h
matthdsm Dec 11, 2025
45df61c
increase samtools verbosity
matthdsm Dec 12, 2025
b0fa898
patch sormadup
matthdsm Dec 12, 2025
44b9421
rna: make sure the correct index is used
matthdsm Dec 16, 2025
adfc3f0
add splice junctions and junctions to rna output
nvnieuwk Dec 17, 2025
cf107cf
changelog
nvnieuwk Dec 17, 2025
4bf8735
merge with the sort module
nvnieuwk Dec 17, 2025
9453c19
prettier
matthdsm Dec 17, 2025
6a7d91d
fix tests
nvnieuwk Dec 17, 2025
d8d4417
Merge branch 'add/junctions-output' of github.com:nf-cmgg/preprocessi…
nvnieuwk Dec 17, 2025
b077cf6
fix unstable stat files in snapshot
nvnieuwk Dec 17, 2025
a0bbefb
fix unstable stat files in snapshot
nvnieuwk Dec 17, 2025
5941e2a
Merge branch 'dev' into add/junctions-output
nvnieuwk Dec 17, 2025
68c3b77
fixing tests took waaaaaaay too long
nvnieuwk Dec 17, 2025
088ae2d
Merge pull request #150 from nf-cmgg/add/junctions-output
nvnieuwk Dec 17, 2025
ddc9928
fix splice junctions file name
nvnieuwk Dec 19, 2025
cb3a58d
Merge pull request #151 from nf-cmgg/fix/sj-name
nvnieuwk Dec 19, 2025
b418151
fix conditional config for samtools_sormadup
matthdsm Dec 21, 2025
082a736
bump fastp module
matthdsm Dec 23, 2025
6ee5e9d
fix snapshots
matthdsm Dec 23, 2025
aa029ef
Change export_plots setting from true to false
matthdsm Jan 24, 2026
605c622
use custom multiqc
matthdsm Feb 4, 2026
2c0dcc8
disable AI in reports
matthdsm Feb 4, 2026
29c77e6
fix linting
matthdsm Feb 4, 2026
cb4d66e
Merge pull request #152 from nf-cmgg/feat/mqc_cmgg
matthdsm Feb 4, 2026
f320131
gcp config: add instance templates
matthdsm Feb 6, 2026
3c10728
remove analysis profiles and migrate to exernal repo
matthdsm Feb 6, 2026
8cfdd78
fix linting
matthdsm Feb 6, 2026
2b0370b
fix snaps
matthdsm Feb 6, 2026
6aeeb97
Merge pull request #153 from nf-cmgg/config/GCP
matthdsm Feb 6, 2026
2b03d68
nf-cmgg/configs fix
matthdsm Feb 9, 2026
926ab49
bump version to 3.0.0dev
matthdsm Feb 9, 2026
f1d78fe
deprecate global analysis params in favor of per sample settings
matthdsm Feb 9, 2026
dcb2a6e
nextflow lint
matthdsm Feb 9, 2026
c672154
fix tests
matthdsm Feb 9, 2026
f723b97
fix linting
matthdsm Feb 10, 2026
e479866
fix fq_to_aligned cram test
matthdsm Feb 10, 2026
1472bc5
fix preprocessing test inputs
matthdsm Feb 10, 2026
bdd54c1
update snapshot
matthdsm Feb 10, 2026
3ded077
update snapshot
matthdsm Feb 10, 2026
71c8972
fix roi default
matthdsm Feb 10, 2026
0b4e4bd
nextflow lint entire pipeline
matthdsm Feb 10, 2026
efb99f0
meta fixes
matthdsm Feb 10, 2026
6614d33
bump picard/collectmultiplemetrics module
matthdsm Feb 10, 2026
f4fc5c7
bump picard/collecthsmetrics module
matthdsm Feb 10, 2026
60deb6a
bump picard/collectwgsmetrics module
matthdsm Feb 10, 2026
d66d99c
bam_qc -> topic
matthdsm Feb 10, 2026
39a4884
bump mqc module
matthdsm Feb 10, 2026
6e56545
bump star/align module
matthdsm Feb 10, 2026
1dfaee8
bump samtools/sormadup module
matthdsm Feb 10, 2026
1391207
bump bcl2fastq/bclconvert modules
matthdsm Feb 10, 2026
69ad5d3
bump biobambam/bamsormadup module
matthdsm Feb 10, 2026
fe6f856
bump aligner module
matthdsm Feb 10, 2026
fca02a2
update remaining modules
matthdsm Feb 10, 2026
38dd555
topic conversion work
matthdsm Feb 10, 2026
2772ae2
more topic work
matthdsm Feb 10, 2026
693fad7
add falco for unsupported fastq qc
matthdsm Feb 10, 2026
4ed9277
fix typo + linting
matthdsm Feb 11, 2026
27e1dd6
drop unused gh workflows
matthdsm Feb 11, 2026
9ebb533
calculate checksums for fastq output
matthdsm Feb 11, 2026
e5bd548
nextflow config lint
matthdsm Feb 11, 2026
78e0750
fix tests
matthdsm Feb 11, 2026
d5e1392
module patches
matthdsm Feb 11, 2026
35dec2c
fix snapshot
matthdsm Feb 11, 2026
78b9e05
fix coverage issues
matthdsm Feb 11, 2026
c5e10a3
fix genelist path parsing
matthdsm Feb 11, 2026
f4f213d
fix variable name
matthdsm Feb 11, 2026
ce69970
Merge pull request #156 from nf-cmgg/feat/fastq_qc
matthdsm Feb 11, 2026
20f538b
add falco for unsupported fastq qc
matthdsm Feb 10, 2026
0aa6686
fix typo + linting
matthdsm Feb 11, 2026
2dd7222
drop unused gh workflows
matthdsm Feb 11, 2026
d534d90
calculate checksums for fastq output
matthdsm Feb 11, 2026
670c18d
nextflow config lint
matthdsm Feb 11, 2026
5e9a2d5
fix tests
matthdsm Feb 11, 2026
de6df09
module patches
matthdsm Feb 11, 2026
32604dc
fix snapshot
matthdsm Feb 11, 2026
fbe5852
fix coverage issues
matthdsm Feb 11, 2026
e0e9591
fix genelist path parsing
matthdsm Feb 11, 2026
8d2580e
deprecate global analysis params in favor of per sample settings
matthdsm Feb 9, 2026
c238ce4
nextflow lint
matthdsm Feb 9, 2026
d9ab5ef
nextflow lint entire pipeline
matthdsm Feb 10, 2026
92cb905
bump picard/collectmultiplemetrics module
matthdsm Feb 10, 2026
0684218
more topic work
matthdsm Feb 10, 2026
a9323bb
lint (again)
matthdsm Feb 11, 2026
53d72df
nf-core linting
matthdsm Feb 11, 2026
b1ecdd5
Merge branch 'dev' into feat/per-sample-params
matthdsm Feb 11, 2026
58afbd1
patch modules
matthdsm Feb 11, 2026
c627fe4
remove versions
matthdsm Feb 11, 2026
b875892
panelcoverage: topic + make parallel
matthdsm Feb 11, 2026
c6d16cd
coverage: drop versions
matthdsm Feb 11, 2026
48c69b7
fix bcl* outputs
matthdsm Feb 11, 2026
530564b
fix bamsormadup inputs
matthdsm Feb 11, 2026
6474ddc
fix bam_qc
matthdsm Feb 11, 2026
3555ab3
fix more tests
matthdsm Feb 11, 2026
af539d4
fix coverage snapshot
matthdsm Feb 11, 2026
8a64abc
fix rna snapshots
matthdsm Feb 11, 2026
32ec4af
Merge pull request #155 from nf-cmgg/feat/per-sample-params
matthdsm Feb 13, 2026
3aa3756
deprecate bcl_demultiplex, only support bclconvert
matthdsm Feb 18, 2026
f379108
bump falco
matthdsm Feb 18, 2026
a31c697
Update all modules to topic and drop versions channel
matthdsm Feb 18, 2026
fde35f7
update snapshots
matthdsm Feb 19, 2026
88c974a
changelog
matthdsm Feb 19, 2026
2ba5c5c
changelog
matthdsm Feb 19, 2026
32b3565
update snapshot
matthdsm Feb 19, 2026
92881ae
fix snapshots
matthdsm Feb 19, 2026
6fd01c9
fix snapshots
matthdsm Feb 19, 2026
e124655
small cleanup
matthdsm Feb 19, 2026
b395ef1
fix bclconvert config
matthdsm Feb 23, 2026
000d81c
add demux logging
matthdsm Feb 25, 2026
a1355fd
typo
matthdsm Feb 25, 2026
10247f5
fix rg function
matthdsm Feb 25, 2026
f36dc71
fix rg function
matthdsm Feb 25, 2026
a51dd1f
catch library from sampleinfo if applicable
matthdsm Feb 25, 2026
8a3742c
fix bclconvert meta.id
matthdsm Feb 25, 2026
620e31c
add cgroup metrics plugin
matthdsm Feb 26, 2026
df6952a
Remove nf-cgroup-metrics plugin from config
matthdsm Feb 26, 2026
da7621b
Feat: MultiQC SAV (#160)
matthdsm Mar 5, 2026
75d9460
restore InterOp output
matthdsm Mar 5, 2026
6620a29
Bump modules (#161)
matthdsm Mar 5, 2026
d396dae
Update/docs (#162)
matthdsm Mar 5, 2026
2a73244
add plugins untill NF 26.XX is in prod
matthdsm Mar 6, 2026
6064f40
Remove download_pipeline workflow file
matthdsm Mar 6, 2026
6981bdc
Fix docs and new metro map
matthdsm Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 14 additions & 22 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
{
"name": "nfcore",
"image": "nfcore/gitpod:latest",
"remoteUser": "gitpod",
"runArgs": ["--privileged"],
"image": "nfcore/devcontainer:latest",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"python.defaultInterpreterPath": "/opt/conda/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.autopep8Path": "/opt/conda/bin/autopep8",
"python.formatting.yapfPath": "/opt/conda/bin/yapf",
"python.linting.flake8Path": "/opt/conda/bin/flake8",
"python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle",
"python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle",
"python.linting.pylintPath": "/opt/conda/bin/pylint"
},
"remoteUser": "root",
"privileged": true,

// Add the IDs of extensions you want installed when the container is created.
"extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
}
"remoteEnv": {
// Workspace path on the host for mounting with docker-outside-of-docker
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
},

"onCreateCommand": "./.devcontainer/setup.sh",

"hostRequirements": {
"cpus": 4,
"memory": "16gb",
"storage": "32gb"
}
}
13 changes: 13 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

# Customise the terminal command prompt
echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc
echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc
export PROMPT_DIRTRIM=2
export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '

# Update Nextflow
nextflow self-update

# Update welcome message
echo "Welcome to the nf-cmgg/preprocessing devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ If you wish to contribute a new step, please use the following coding standards:
5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core pipelines schema build` tool).
6. Add sanity checks and validation for all relevant parameters.
7. Perform local tests to validate that the new code works as expected.
8. If applicable, add a new test command in `.github/workflow/ci.yml`.
8. If applicable, add a new test in the `tests` directory.
9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module.
10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`.

Expand Down
31 changes: 9 additions & 22 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,42 +13,29 @@ body:
id: command_used
attributes:
label: Command used and terminal output
description: Steps to reproduce the behaviour. Please paste the command you used
to launch the pipeline and the output from your terminal.
description: Steps to reproduce the behaviour. Please paste the command you used to launch the pipeline and the output from your terminal.
render: console
placeholder: "$ nextflow run ...

placeholder: |
$ nextflow run ...

Some output where something broke

"
- type: textarea
id: files
attributes:
label: Relevant files
description: "Please drag and drop the relevant files here. Create a `.zip` archive
if the extension is not allowed.

Your verbose log file `.nextflow.log` is often useful _(this is a hidden file
in the directory where you launched the pipeline)_ as well as custom Nextflow
configuration files.
description: |
Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed.
Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files.

"
- type: textarea
id: system
attributes:
label: System information
description: "* Nextflow version _(eg. 23.04.0)_

description: |
* Nextflow version _(eg. 23.04.0)_
* Hardware _(eg. HPC, Desktop, Cloud)_

* Executor _(eg. slurm, local, awsbatch)_

* Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud,
or Apptainer)_

* Container engine: _(e.g. Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer)_
* OS _(eg. CentOS Linux, macOS, Linux Mint)_

* Version of nf-cmgg/preprocessing _(eg. 1.1, 1.5, 1.8.2)_

"
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ These are the most common things requested on pull requests (PRs).

Remember that PRs should be made against the dev branch, unless you're preparing a pipeline release.

Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-cmgg/preprocessing/tree/master/.github/CONTRIBUTING.md)
Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-cmgg/preprocessing/tree/main/.github/CONTRIBUTING.md)
-->

## PR checklist

- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add tests!
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-cmgg/preprocessing/tree/master/.github/CONTRIBUTING.md)
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-cmgg/preprocessing/tree/main/.github/CONTRIBUTING.md)
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`).
- [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir <OUTDIR>`).
Expand Down
69 changes: 69 additions & 0 deletions .github/actions/get-shards/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: "Get number of shards"
description: "Get the number of nf-test shards for the current CI job"
inputs:
max_shards:
description: "Maximum number of shards allowed"
required: true
paths:
description: "Component paths to test"
required: false
tags:
description: "Tags to pass as argument for nf-test --tag parameter"
required: false
outputs:
shard:
description: "Array of shard numbers"
value: ${{ steps.shards.outputs.shard }}
total_shards:
description: "Total number of shards"
value: ${{ steps.shards.outputs.total_shards }}
runs:
using: "composite"
steps:
- name: Install nf-test
uses: nf-core/setup-nf-test@v1
with:
version: ${{ env.NFT_VER }}
- name: Get number of shards
id: shards
shell: bash
run: |
# Run nf-test with dynamic parameter
nftest_output=$(nf-test test \
--profile +docker \
$(if [ -n "${{ inputs.tags }}" ]; then echo "--tag ${{ inputs.tags }}"; fi) \
--dry-run \
--ci \
--changed-since HEAD^) || {
echo "nf-test command failed with exit code $?"
echo "Full output: $nftest_output"
exit 1
}
echo "nf-test dry-run output: $nftest_output"

# Default values for shard and total_shards
shard="[]"
total_shards=0

# Check if there are related tests
if echo "$nftest_output" | grep -q 'No tests to execute'; then
echo "No related tests found."
else
# Extract the number of related tests
number_of_shards=$(echo "$nftest_output" | sed -n 's|.*Executed \([0-9]*\) tests.*|\1|p')
if [[ -n "$number_of_shards" && "$number_of_shards" -gt 0 ]]; then
shards_to_run=$(( $number_of_shards < ${{ inputs.max_shards }} ? $number_of_shards : ${{ inputs.max_shards }} ))
shard=$(seq 1 "$shards_to_run" | jq -R . | jq -c -s .)
total_shards="$shards_to_run"
else
echo "Unexpected output format. Falling back to default values."
fi
fi

# Write to GitHub Actions outputs
echo "shard=$shard" >> $GITHUB_OUTPUT
echo "total_shards=$total_shards" >> $GITHUB_OUTPUT

# Debugging output
echo "Final shard array: $shard"
echo "Total number of shards: $total_shards"
101 changes: 101 additions & 0 deletions .github/actions/nf-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: "nf-test Action"
description: "Runs nf-test with common setup steps"
inputs:
profile:
description: "Profile to use"
required: true
shard:
description: "Shard number for this CI job"
required: true
total_shards:
description: "Total number of test shards(NOT the total number of matrix jobs)"
required: true
paths:
description: "Test paths"
required: true
tags:
description: "Tags to pass as argument for nf-test --tag parameter"
required: false
runs:
using: "composite"
steps:
- name: Setup Nextflow
uses: nf-core/setup-nextflow@v2
with:
version: "${{ env.NXF_VERSION }}"

- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: "3.14"

- name: Install nf-test
uses: nf-core/setup-nf-test@v1
with:
version: "${{ env.NFT_VER }}"
install-pdiff: true

- name: Setup apptainer
if: contains(inputs.profile, 'singularity')
uses: eWaterCycle/setup-apptainer@main

- name: Set up Singularity
if: contains(inputs.profile, 'singularity')
shell: bash
run: |
mkdir -p $NXF_SINGULARITY_CACHEDIR
mkdir -p $NXF_SINGULARITY_LIBRARYDIR

- name: Run nf-test
shell: bash
env:
NFT_WORKDIR: ${{ env.NFT_WORKDIR }}
run: |
nf-test test \
--profile=+${{ inputs.profile }} \
$(if [ -n "${{ inputs.tags }}" ]; then echo "--tag ${{ inputs.tags }}"; fi) \
--ci \
--changed-since HEAD^ \
--verbose \
--tap=test.tap \
--shard ${{ inputs.shard }}/${{ inputs.total_shards }}

# Save the absolute path of the test.tap file to the output
echo "tap_file_path=$(realpath test.tap)" >> $GITHUB_OUTPUT

- name: Generate test summary
if: always()
shell: bash
run: |
# Add header if it doesn't exist (using a token file to track this)
if [ ! -f ".summary_header" ]; then
echo "# 🚀 nf-test results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Status | Test Name | Profile | Shard |" >> $GITHUB_STEP_SUMMARY
echo "|:------:|-----------|---------|-------|" >> $GITHUB_STEP_SUMMARY
touch .summary_header
fi

if [ -f test.tap ]; then
while IFS= read -r line; do
if [[ $line =~ ^ok ]]; then
test_name="${line#ok }"
# Remove the test number from the beginning
test_name="${test_name#* }"
echo "| ✅ | ${test_name} | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
elif [[ $line =~ ^not\ ok ]]; then
test_name="${line#not ok }"
# Remove the test number from the beginning
test_name="${test_name#* }"
echo "| ❌ | ${test_name} | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
fi
done < test.tap
else
echo "| ⚠️ | No test results found | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
fi

- name: Clean up
if: always()
shell: bash
run: |
sudo rm -rf /home/ubuntu/tests/
Loading