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

Use new nf-test features #6286

Merged
merged 61 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
c2f20e4
ci: Attempt to split everything out
edmundmiller Aug 23, 2024
8897f68
ci: Add changed since, sharding, and ci
edmundmiller Aug 23, 2024
2e20ff4
ci: Add filter to try to get jobs split up
edmundmiller Aug 23, 2024
ea0de23
ci: Switch to only-changed
edmundmiller Aug 23, 2024
2c5b4bd
ci: See if follow-dependencies works without "related-tests"
edmundmiller Aug 23, 2024
6322086
ci: Remove skipped tests
edmundmiller Aug 23, 2024
71d9e5a
ci: Actually use the nf-test version
edmundmiller Aug 23, 2024
afd049d
ci: module => process
edmundmiller Aug 23, 2024
a823ee3
ci: Clean up job names
edmundmiller Aug 23, 2024
0d2c26c
dummy: Make a change
edmundmiller Aug 23, 2024
97f6406
ci: Skip test.tap
edmundmiller Aug 23, 2024
c486922
ci: Add fetch-depth
edmundmiller Aug 23, 2024
d58ecdb
ci: Clean up name
edmundmiller Aug 23, 2024
52a826d
ci: Lint everything
edmundmiller Aug 23, 2024
1043d64
ci: Get the job names clean
edmundmiller Aug 23, 2024
94c2453
ci: Add hide-progress on linting
edmundmiller Aug 23, 2024
ab5194b
ci: Add psuedocode for conda-fail.yml
edmundmiller Aug 24, 2024
2a218e3
test: Snapshot the versions contents, not the hash
edmundmiller Sep 10, 2024
e833cd5
ci: Keep running nf-core lint the way it was
Sep 18, 2024
392ffe7
ci: Move conda skips out
edmundmiller Sep 24, 2024
af2d917
ci: Address a comment
edmundmiller Sep 24, 2024
372625e
style: Move prettier and editorconfig to pre-commit
edmundmiller Sep 24, 2024
1670c52
ci: Add note about nf-core lint pre-commit
edmundmiller Sep 24, 2024
adf6658
chore: Copy over conda skips
edmundmiller Sep 24, 2024
d0caf9e
ci: only-changed => changed-since
edmundmiller Sep 30, 2024
3b97a33
Add confirm-pass
edmundmiller Oct 14, 2024
865787a
ci: dynamically set shards
edmundmiller Oct 17, 2024
c141a14
ci: Run 3 process jobs per CI run as an example
edmundmiller Oct 17, 2024
c984d91
Merge branch 'master' into fresh-ci
maxulysse Oct 23, 2024
d355521
install nf-test
maxulysse Oct 23, 2024
f42d82a
fix install nf-test
maxulysse Oct 23, 2024
c99a2fc
fix install nf-test
maxulysse Oct 23, 2024
0638d19
Merge branch 'master' of github.com:nf-core/modules into fresh-ci
edmundmiller Nov 14, 2024
c3f3fbe
ci: Remove dynamic number of shards, and combine process and workflow…
edmundmiller Nov 14, 2024
1095134
ci: Remove variable Nextflow versions
edmundmiller Nov 14, 2024
b89a08d
test: Update bowtie versions
edmundmiller Nov 14, 2024
7216e82
ci: Fix indention
edmundmiller Nov 14, 2024
b957e0f
ci: We're not testing multiple python versions
edmundmiller Nov 14, 2024
350a4cb
style: Clean up job names
edmundmiller Nov 14, 2024
47e4696
build: Remove invisible characters?
edmundmiller Nov 14, 2024
fad188b
test(bowtie): Bump snapshots
edmundmiller Nov 14, 2024
5c48edb
style: Remove stray comment
edmundmiller Nov 15, 2024
f8f7be6
Merge branch 'master' of github.com:nf-core/modules into fresh-ci
edmundmiller Nov 17, 2024
aba6203
ci: Add GPU tests in their own workflows
edmundmiller Nov 17, 2024
8329465
ci(gpu): Clean up triggers and make a note about
edmundmiller Nov 17, 2024
54391d3
ci: pip install cryptography
edmundmiller Nov 17, 2024
b477ac3
ci: Try removing path
edmundmiller Nov 17, 2024
c47e407
ci: Add fetch-depth and remove duplicate checkout
edmundmiller Nov 18, 2024
e04a743
test: Remove the second gpu profile
edmundmiller Nov 18, 2024
c7984e5
ci: Add path back in
edmundmiller Nov 18, 2024
fc7247a
ci(gpu): Remove changed-since
edmundmiller Nov 18, 2024
ec92b74
ci: Fix missed dorny/paths-filter update
edmundmiller Nov 18, 2024
3f5fe11
Add changes from codereview
edmundmiller Nov 18, 2024
9d05040
style: Remove example TODO comments
edmundmiller Nov 18, 2024
e04d248
refactor: Try tags for GPU CI
edmundmiller Nov 18, 2024
9863eba
style: Set NFT_WORKDIR as an ENV variable
edmundmiller Nov 18, 2024
d134e78
style: Run lsp format on a parabricks module
edmundmiller Nov 18, 2024
a5557af
test: Add gpu tags to parabricks
edmundmiller Nov 18, 2024
08a16d4
ci: Split tags out of matrix
edmundmiller Nov 18, 2024
ee7ffc0
Revert "style: Run lsp format on a parabricks module"
edmundmiller Nov 18, 2024
c0771d6
ci: Fix name
edmundmiller Nov 18, 2024
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
29 changes: 22 additions & 7 deletions .github/actions/nf-test-action/action.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
name: "nf-test Action"
description: "Runs nf-test with common setup steps"
inputs:
path:
description: "Path to test"
required: true
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
tags:
description: "Tags to test (`<tags>[,<tags>...]`)"
required: false

runs:
using: "composite"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4

- uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4
with:
distribution: "temurin"
Expand Down Expand Up @@ -56,20 +60,31 @@ runs:
if: env.SENTIEON_ENCRYPTION_KEY != '' && env.SENTIEON_LICENSE_MESSAGE != ''
shell: bash
run: |
python -m pip install cryptography
nextflow secrets set SENTIEON_AUTH_DATA $(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE")

# TODO Skip failing conda tests and document their failures
# https://github.com/nf-core/modules/issues/7017
- name: Run nf-test
shell: bash
env:
SENTIEON_LICSRVR_IP: ${{ env.SENTIEON_LICSRVR_IP }}
SENTIEON_AUTH_MECH: "GitHub Actions - token"
TAGS: ${{ inputs.tags && format('--tag {0}', inputs.tags) || '' }}
NFT_WORKDIR: "~"
run: |
NFT_WORKDIR=~ \
nf-test test \
--profile=${{ inputs.profile }} \
--tap=test.tap \
--verbose \
${{ inputs.path }}
--ci \
--changed-since HEAD^ \
--shard ${{ inputs.shard }}/${{ inputs.total_shards }} \
--filter process,workflow \
--follow-dependencies \
${{ env.TAGS }}

# TODO If no test.tap, then make one to spoof?
- uses: pcolby/tap-summary@0959cbe1d4422e62afc65778cdaea6716c41d936 # v1
if: ${{ inputs.path != '' }}
with:
Expand Down
184 changes: 184 additions & 0 deletions .github/conda_skip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# TODO What do we do with these?
# I think we can require Docker,modules,Shard 1..Singularity,subworkflows,3 and skip the condas now
exclude:
- path: modules/nf-core/nf-test
- profile: conda
path: modules/nf-core/angsd/gl
- profile: conda
path: modules/nf-core/annotsv/installannotations
- profile: conda
path: modules/nf-core/happy/sompy
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
- profile: conda
path: modules/nf-core/backsub
- profile: conda
path: modules/nf-core/bakta/bakta
- profile: conda
path: modules/nf-core/bakta/baktadbdownload
- profile: conda
path: modules/nf-core/bases2fastq
- profile: conda
path: modules/nf-core/bcl2fastq
- profile: conda
path: modules/nf-core/bclconvert
- profile: conda
path: modules/nf-core/celesta
- profile: conda
path: modules/nf-core/cellpose
- profile: conda
path: modules/nf-core/cellranger/count
- profile: conda
path: modules/nf-core/cellranger/mkfastq
- profile: conda
path: modules/nf-core/cellranger/mkgtf
- profile: conda
path: modules/nf-core/cellranger/mkref
- profile: conda
path: modules/nf-core/cellranger/mkvdjref
- profile: conda
path: modules/nf-core/cellranger/multi
- profile: conda
path: modules/nf-core/cellranger/vdj
- profile: conda
path: modules/nf-core/checkqc
- profile: conda
path: modules/nf-core/custom/dumpsoftwareversions
- profile: conda
path: modules/nf-core/deepcell/mesmer
- profile: conda
path: modules/nf-core/deepsomatic
- profile: singularity
path: modules/nf-core/deepsomatic
- profile: conda
path: modules/nf-core/deepvariant
- profile: conda
path: modules/nf-core/deepvariant/callvariants
- profile: conda
path: modules/nf-core/deepvariant/makeexamples
- profile: conda
path: modules/nf-core/deepvariant/postprocessvariants
- profile: conda
path: modules/nf-core/deepvariant/rundeepvariant
- profile: conda
path: modules/nf-core/deepvariant/vcfstatsreport
- profile: conda
path: modules/nf-core/doubletdetection
- profile: conda
path: modules/nf-core/ensemblvep/vep
- profile: conda
path: modules/nf-core/fastk/fastk
- profile: conda
path: modules/nf-core/cellrangerarc/mkgtf
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
- profile: conda
path: modules/nf-core/fastk/histex
- profile: conda
path: modules/nf-core/fastk/merge
- profile: conda
path: modules/nf-core/fcs/fcsadaptor
- profile: conda
path: modules/nf-core/fcs/fcsgx
- profile: conda
path: modules/nf-core/ganon/buildcustom
- profile: conda
path: modules/nf-core/ganon/classify
- profile: conda
path: modules/nf-core/ganon/report
- profile: conda
path: modules/nf-core/ganon/table
- profile: conda
path: modules/nf-core/gatk4/cnnscorevariants
- profile: conda
path: modules/nf-core/gatk4/determinegermlinecontigploidy
- profile: conda
path: modules/nf-core/genescopefk
- profile: conda
path: modules/nf-core/ilastik/multicut
- profile: conda
path: modules/nf-core/ilastik/pixelclassification
- profile: conda
path: modules/nf-core/imputeme/vcftoprs
- profile: conda
path: modules/nf-core/mcstaging/imc2mc
- profile: conda
path: modules/nf-core/mcquant
- profile: conda
path: modules/nf-core/mcstaging/phenoimager2mc
- profile: conda
path: modules/nf-core/merquryfk/katcomp
- profile: conda
path: modules/nf-core/merquryfk/katgc
- profile: conda
path: modules/nf-core/merquryfk/merquryfk
- profile: conda
path: modules/nf-core/merquryfk/ploidyplot
- profile: conda
path: modules/nf-core/molkartgarage/clahe
- profile: conda
path: modules/nf-core/quartonotebook
- profile: conda
path: modules/nf-core/scimap/spatiallda
- profile: conda
path: modules/nf-core/sentieon/bwaindex
- profile: conda
path: modules/nf-core/sentieon/bwamem
- profile: conda
path: modules/nf-core/sentieon/datametrics
- profile: conda
path: modules/nf-core/sentieon/dedup
- profile: conda
path: modules/nf-core/sentieon/qualcal
- profile: conda
path: modules/nf-core/spaceranger/mkgtf
- profile: conda
path: modules/nf-core/spaceranger/mkref
- profile: conda
path: modules/nf-core/spaceranger/count
- profile: conda
path: modules/nf-core/spotiflow
- profile: conda
path: modules/nf-core/svanalyzer/svbenchmark
- profile: conda
path: modules/nf-core/universc
- profile: singularity
path: modules/nf-core/universc
- profile: conda
path: modules/nf-core/vt/decompose
- profile: singularity
path: modules/nf-core/bases2fastq
- profile: conda
path: modules/nf-core/wittyer
- profile: conda
path: modules/nf-core/islandpath
- profile: conda
path: modules/nf-core/scimap/mcmicro
- profile: conda
path: modules/nf-core/parabricks/fq2bammeth
- profile: docker_self_hosted
path: modules/nf-core/parabricks/fq2bammeth
- profile: singularity
path: modules/nf-core/parabricks/fq2bammeth
- profile: conda
path: modules/nf-core/parabricks/fq2bam
- profile: docker_self_hosted
path: modules/nf-core/parabricks/fq2bam
- profile: singularity
path: modules/nf-core/parabricks/fq2bam
- profile: conda
path: subworkflows/nf-core/vcf_annotate_ensemblvep
- profile: conda
path: subworkflows/nf-core/bcl_demultiplex
- profile: conda
path: subworkflows/nf-core/deepvariant
- profile: conda
path: subworkflows/nf-core/fastq_align_bamcmp_bwa
- profile: conda
path: subworkflows/nf-core/fastq_align_bwa
- profile: conda
path: subworkflows/nf-core/fasta_newick_epang_gappa
- profile: conda
path: modules/nf-core/xeniumranger/relabel
- profile: conda
path: modules/nf-core/xeniumranger/rename
- profile: conda
path: modules/nf-core/xeniumranger/resegment
- profile: conda
path: modules/nf-core/xeniumranger/import-segmentation
71 changes: 71 additions & 0 deletions .github/workflows/gpu-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Run GPU nf-tests
on:
push:
branches:
# https://docs.renovatebot.com/key-concepts/automerge/#branch-vs-pr-automerging
- "renovate/**" # branches Renovate creates
pull_request:
branches: [master]
paths:
- ".github/workflows/gpu-tests.yml"
- "modules/nf-core/parabricks/**"
merge_group:
types: [checks_requested]
branches: [master]
workflow_dispatch:
inputs:
runners:
description: "Runners to test on"
type: choice
options:
- "ubuntu-latest"
- "self-hosted"
default: "self-hosted"

# Cancel if a newer run is started
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NFT_VER: "0.9.2"
NXF_ANSI_LOG: false
NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity
NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity
NXF_VER: "24.04.4"

jobs:
nf-test-gpu:
runs-on: "gpu"
name: "GPU | ${{ matrix.tags}} | ${{ matrix.profile }} | ${{ matrix.shard }}"
strategy:
fail-fast: false
matrix:
shard: [1, 2]
profile: [docker_self_hosted, singularity] # conda?
# TODO Pass these in from GitHub PR trigger events
tags:
- parabricks/applybqsr
- parabricks/fq2bam
- parabricks/fq2bammeth
env:
NXF_ANSI_LOG: false
TOTAL_SHARDS: 2

steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0
- name: Run nf-test Action
uses: ./.github/actions/nf-test-action
env:
SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }}
SENTIEON_LICENSE_MESSAGE: ${{ secrets.SENTIEON_LICENSE_MESSAGE }}
SENTIEON_LICSRVR_IP: ${{ secrets.SENTIEON_LICSRVR_IP }}
SENTIEON_AUTH_MECH: "GitHub Actions - token"
with:
profile: ${{ matrix.profile }},gpu
shard: ${{ matrix.shard }}
total_shards: ${{ env.TOTAL_SHARDS }}
tags: ${{matrix.tags}},gpu
Loading
Loading