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 41 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
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
172 changes: 172 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
name: Run Linting
on:
push:
branches:
# https://docs.renovatebot.com/key-concepts/automerge/#branch-vs-pr-automerging
- "renovate/**" # branches Renovate creates
pull_request:
branches: [master]
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:
NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity
NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
- uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
# FIXME Flip this off once we get to less than a couple hundred. Adding
# this so it will only run against changed files. It'll make it much
# easier to fix these as they come up rather than everything at once.
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
with:
extra_args: ""

###################
# nf-core linting #
###################
# TODO Move these to pre-commit
# https://github.com/nf-core/tools/pull/3141
nf-core-changes:
name: nf-core-changes
runs-on: ubuntu-latest
outputs:
tags: ${{ steps.filter.outputs.changes }}
modules: ${{ steps.tags.outputs.modules }}
subworkflows: ${{ steps.tags.outputs.subworkflows }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
with:
fetch-depth: 2 # To retrieve the preceding commit.

# TODO: change back to using dorny/paths-filter when https://github.com/dorny/paths-filter/pull/133 is implemented
edmundmiller marked this conversation as resolved.
Show resolved Hide resolved
- uses: mirpedrol/paths-filter@main
id: filter
with:
filters: "tests/config/pytest_modules.yml"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This relies on the pytest_modules.yml tags, is that what you want?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, probably just want it to run on any module that's changed. We could include both the nf-test and pytest_modules ymls though I think.

token: ""

- name: Fetch module tags
id: tags
run: |
echo modules=$(echo '${{ steps.filter.outputs.changes }}' | jq -c '. | map(select(contains("modules"))) | map(gsub("modules/"; ""))') >> $GITHUB_OUTPUT
echo subworkflows=$(echo '${{ steps.filter.outputs.changes }}' | jq '. | map(select(contains("subworkflow"))) | map(gsub("subworkflows/"; ""))') >> $GITHUB_OUTPUT

- name: debug
run: |
echo ${{ steps.tags.outputs.modules }}
echo ${{ steps.tags.outputs.subworkflows }}

nf-core-lint-modules:
runs-on: ${{ github.event.inputs.runners || 'self-hosted' }}
name: nf-core lint modules
needs: nf-core-changes
if: ${{ (needs.nf-core-changes.outputs.modules != '[]') }}
strategy:
fail-fast: false
matrix:
tags: "${{ fromJson(needs.nf-core-changes.outputs.modules) }}"
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

- name: Set up Python
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5
with:
python-version: "3.11"

- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
id: cache-pip
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
restore-keys: |
${{ runner.os }}-pip

- name: Install pip
run: python -m pip install --upgrade pip

- uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4
with:
distribution: "temurin"
java-version: "17"

- name: Setup Nextflow
uses: nf-core/setup-nextflow@v2

- name: Install nf-core tools development version
run: python -m pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev

- name: Lint module ${{ matrix.tags }}
run: nf-core modules lint ${{ matrix.tags }}

nf-core-lint-subworkflows:
runs-on: ubuntu-latest
name: nf-core lint subworkflows
needs: nf-core-changes
if: ${{ (needs.nf-core-changes.outputs.subworkflows != '[]') }}
strategy:
fail-fast: false
matrix:
tags: "${{ fromJson(needs.nf-core-changes.outputs.subworkflows) }}"
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4

- name: Set up Python
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5
with:
python-version: "3.11"

- name: Install pip
run: python -m pip install --upgrade pip

- uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4
with:
distribution: "temurin"
java-version: "17"

- name: Setup Nextflow
uses: nf-core/setup-nextflow@561fcfc7146dcb12e3871909b635ab092a781f34 # v2

- name: Install nf-core tools development version
run: python -m pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev

- name: Lint module ${{ matrix.tags }}
run: nf-core subworkflows lint ${{ matrix.tags }}

confirm-pass:
runs-on: ubuntu-latest
needs: [nf-core-lint-modules, nf-core-lint-subworkflows]
if: always()
steps:
- name: All tests ok
if: ${{ success() || !contains(needs.*.result, 'failure') }}
run: exit 0
- name: One or more tests failed
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) }}"
Loading
Loading