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

Fastq align dedup bwameth #7007

Merged
merged 48 commits into from
Nov 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
ba8400c
init bwameth subworkflow
sateeshperi Nov 16, 2024
60c1b95
update output channels
sateeshperi Nov 16, 2024
144e096
bwameth single, paired-end default, skip_dedup tests
sateeshperi Nov 17, 2024
4a3077d
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 17, 2024
008510f
add GPU tests
sateeshperi Nov 17, 2024
3a52b1a
separate GPU tests
sateeshperi Nov 17, 2024
295bbaf
add subworkflow GPU test path to test.yml include
sateeshperi Nov 17, 2024
7a594a2
add subworkflow GPU test path to test.yml include
sateeshperi Nov 17, 2024
daca0ff
add subworkflow GPU test path to test.yml include
sateeshperi Nov 17, 2024
c8b5c03
use more descriptive collect variables than it
sateeshperi Nov 18, 2024
f0ba854
rename file to be explicit
sateeshperi Nov 18, 2024
77dbc16
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 18, 2024
1bd231c
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 18, 2024
90d83ff
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 18, 2024
1a40ef9
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 19, 2024
f30f94c
separate profile exclusions
sateeshperi Nov 19, 2024
7d5eaaa
add gpu tag
sateeshperi Nov 19, 2024
4d5ea8d
Merge branch 'master' into fastq_align_dedup_bwameth
SPPearce Nov 20, 2024
aa1419c
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 26, 2024
e54056a
rm old test.yml
sateeshperi Nov 26, 2024
69a3c7c
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 26, 2024
2cf0a4b
add gpu test path to gpu-tests.yml:ci
sateeshperi Nov 26, 2024
845c72e
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 27, 2024
789fedc
Merge branch 'master' into fastq_align_dedup_bwameth
GallVp Nov 27, 2024
7bd7cdb
Added log_level: DEBUG
GallVp Nov 27, 2024
d9feb70
Setup CI for debug
GallVp Nov 27, 2024
f84bdee
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 28, 2024
e843aa3
add more debug steps
sateeshperi Nov 28, 2024
d31cc23
usman's fix for exclude tags
sateeshperi Nov 28, 2024
2a56692
Updated fail condition
GallVp Nov 28, 2024
4df5aba
Merge branch 'master' into fastq_align_dedup_bwameth
GallVp Nov 28, 2024
4873102
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 28, 2024
a4a8502
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 28, 2024
d215e0c
Merge branch 'master' into fastq_align_dedup_bwameth
sateeshperi Nov 29, 2024
8e84a34
ci sync to master
sateeshperi Nov 29, 2024
9eac2fe
fix filtering by usman
sateeshperi Nov 29, 2024
7d1938f
Removed --changed-since when tags are supplied
GallVp Nov 29, 2024
cd67b2b
Enabled more checks and added a non-gpu module
GallVp Nov 29, 2024
f6b2f2c
Two fixes
GallVp Nov 29, 2024
5885920
Now using paths
GallVp Nov 29, 2024
e8e9fd5
Fixed paths
GallVp Nov 29, 2024
7ff111c
Fixed typo
GallVp Nov 29, 2024
4d03e85
Now pass all paths instead of matrix
GallVp Nov 29, 2024
d146fa4
Merge branch 'master' into fastq_align_dedup_bwameth
GallVp Nov 30, 2024
9ea6ada
Added confirm pass, cleaned dispatch and removed DEBUG
GallVp Nov 30, 2024
0271536
Renamed all passes to confirm-pass
GallVp Nov 30, 2024
37179e7
Now using adamrtalbot/detect-nf-test-changes
GallVp Nov 30, 2024
5c96bfb
small ch format fix
sateeshperi Nov 30, 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
11 changes: 4 additions & 7 deletions .github/actions/nf-test-action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ inputs:
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
paths:
description: "Test paths"
required: true

runs:
using: "composite"
Expand Down Expand Up @@ -72,19 +72,16 @@ runs:
env:
SENTIEON_LICSRVR_IP: ${{ env.SENTIEON_LICSRVR_IP }}
SENTIEON_AUTH_MECH: "GitHub Actions - token"
TAGS: ${{ inputs.tags && format('--tag {0}', inputs.tags) || '' }}
run: |
NFT_WORKDIR=~ \
nf-test test \
--profile=${{ inputs.profile }} \
--tap=test.tap \
--verbose \
--ci \
--changed-since HEAD^ \
--shard ${{ inputs.shard }}/${{ inputs.total_shards }} \
--filter process,workflow \
--follow-dependencies \
${{ env.TAGS }}
${{ inputs.paths }}

# TODO If no test.tap, then make one to spoof?
- uses: pcolby/tap-summary@0959cbe1d4422e62afc65778cdaea6716c41d936 # v1
Expand Down
43 changes: 27 additions & 16 deletions .github/workflows/gpu-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,15 @@ on:
- "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"
type: string
default: "gpu"

# Cancel if a newer run is started
concurrency:
Expand All @@ -43,7 +37,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
# Expose detected tags as 'modules' and 'workflows' output variables
paths: ${{ steps.outputs.outputs.components }}
paths: ${{ steps.list.outputs.components }}
modules: ${{ steps.outputs.outputs.modules }}
subworkflows: ${{ steps.outputs.outputs.subworkflows}}
# Prod for version bumping
Expand All @@ -60,11 +54,11 @@ jobs:

- name: List nf-test files
id: list
uses: adamrtalbot/detect-nf-test-changes@6bf6fd9fe0fb63a0362fb0e09de5acb6d055a754 # v0.0.5
uses: adamrtalbot/detect-nf-test-changes@de3c3c8e113031b4f15a3c1104b5f135e8346997 # v0.0.6
with:
head: ${{ github.sha }}
base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }}
n_parents: 2
n_parents: 0
tags: "gpu"

- name: Separate modules and subworkflows
Expand All @@ -74,21 +68,20 @@ jobs:
echo subworkflows=$(echo '${{ steps.list.outputs.components }}' | jq '. | map(select(contains("subworkflows"))) | map(gsub("subworkflows/nf-core/"; ""))') >> $GITHUB_OUTPUT
- name: debug
run: |
echo ${{ steps.outputs.outputs.components }}
echo ${{ steps.list.outputs.components }}
echo ${{ steps.outputs.outputs.modules }}
echo ${{ steps.outputs.outputs.subworkflows }}

nf-test-gpu:
runs-on: "gpu"
name: "GPU | ${{ matrix.profile }} | ${{ matrix.shard }}"
needs: nf-test-changes
if: ${{ fromJSON(needs.nf-test-changes.outputs.paths) != '[]' || needs.nf-test-changes.outputs.paths != '' }}
name: "GPU | ${{ matrix.tags}} | ${{ matrix.profile }} | ${{ matrix.shard }}"
if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }}
strategy:
fail-fast: false
matrix:
shard: [1, 2]
profile: [docker_self_hosted, singularity] # conda?
tags: ${{ fromJSON(needs.nf-test-changes.outputs.modules) && fromJSON(needs.nf-test-changes.outputs.subworkflows) }}
env:
NXF_ANSI_LOG: false
TOTAL_SHARDS: 2
Expand All @@ -108,4 +101,22 @@ jobs:
profile: ${{ matrix.profile }},gpu
shard: ${{ matrix.shard }}
total_shards: ${{ env.TOTAL_SHARDS }}
tags: ${{matrix.tags}},gpu
paths: "${{ join(fromJson(needs.nf-test-changes.outputs.paths), ' ') }}"

confirm-pass:
runs-on: ubuntu-latest
needs: [nf-test-gpu]
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) }}"
91 changes: 68 additions & 23 deletions .github/workflows/nf-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,45 +35,90 @@ env:
NXF_VER: "24.10.1"

jobs:
nf-test-changes:
name: nf-test-changes
runs-on: ubuntu-latest
outputs:
# Expose detected tags as 'modules' and 'workflows' output variables
paths: ${{ steps.list.outputs.components }}
modules: ${{ steps.outputs.outputs.modules }}
subworkflows: ${{ steps.outputs.outputs.subworkflows}}
# Prod for version bumping
steps:
- name: Clean Workspace # Purge the workspace in case it's running on a self-hosted runner
run: |
ls -la ./
rm -rf ./* || true
rm -rf ./.??* || true
ls -la ./
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0

- name: List nf-test files
id: list
uses: adamrtalbot/detect-nf-test-changes@de3c3c8e113031b4f15a3c1104b5f135e8346997 # v0.0.6
with:
head: ${{ github.sha }}
base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }}
n_parents: 0
exclude_tags: "gpu"

- name: Separate modules and subworkflows
id: outputs
run: |
echo modules=$(echo '${{ steps.list.outputs.components }}' | jq -c '. | map(select(contains("modules"))) | map(gsub("modules/nf-core/"; ""))') >> $GITHUB_OUTPUT
echo subworkflows=$(echo '${{ steps.list.outputs.components }}' | jq '. | map(select(contains("subworkflows"))) | map(gsub("subworkflows/nf-core/"; ""))') >> $GITHUB_OUTPUT
- name: debug
run: |
echo ${{ steps.list.outputs.components }}
echo ${{ steps.outputs.outputs.modules }}
echo ${{ steps.outputs.outputs.subworkflows }}
nf-test:
runs-on: ${{ github.event.inputs.runners || 'self-hosted' }}
# NOTE I think this is the cleanest way to get them organized
# process | conda | 1
# process | conda | 2
# process | conda | 3
# process | docker_self_hosted | 1
# ...
# workflow | singularity | 3
name: "${{ matrix.profile }} | ${{ matrix.shard }}"
# TODO
# needs: get-number-of-shards
# if: ${{ fromJSON(needs.get-number-of-shards.outputs.shards) != fromJSON('["1", "0"]') }}
needs: nf-test-changes
if: ${{ needs.nf-test-changes.outputs.modules != '[]' || needs.nf-test-changes.outputs.subworkflows != '[]' }}
strategy:
fail-fast: false
matrix:
# NOTE We could split these, but there's probably going to be more process tests than workflow tests, so we're just going to combine them all and bump up the shards for now
# NOTE The name of the test would be name: "${{ matrix.filter }} | ${{ matrix.profile }} | ${{ matrix.shard }}"
# filter: [process, workflow]
profile: [conda, docker_self_hosted, singularity]
shard: [1, 2, 3, 4, 5]
profile: [conda, docker_self_hosted, singularity]
env:
# FIXME Bumping them up to make the transition smooth, then we can throttle them back
NXF_ANSI_LOG: false
TOTAL_SHARDS: 5
SENTIEON_LICENSE_MESSAGE: ${{ secrets.SENTIEON_LICENSE_MESSAGE }}
SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }}

steps:
- name: Clean Workspace # Purge the workspace in case it's running on a self-hosted runner
run: |
ls -la ./
rm -rf ./* || true
rm -rf ./.??* || true
ls -la ./
- 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 }}
shard: ${{ matrix.shard }}
total_shards: ${{ env.TOTAL_SHARDS }}
paths: "${{ join(fromJson(needs.nf-test-changes.outputs.paths), ' ') }}"

confirm-pass:
runs-on: ubuntu-latest
needs: [nf-test]
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) }}"
3 changes: 2 additions & 1 deletion modules/nf-core/gffread/tests/main.nf.test
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ nextflow_process {
file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true)
]
input[1] = []

"""
}
}
Expand Down Expand Up @@ -220,4 +221,4 @@ nextflow_process {

}

}
}
Loading
Loading