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

Add filter step to CI to exclude some tests for some profiles #7273

Merged
merged 4 commits into from
Jan 9, 2025
Merged
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
39 changes: 33 additions & 6 deletions .github/actions/nf-test-action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,39 @@ runs:
--filter process,workflow \
${{ inputs.paths }}

# TODO If no test.tap, then make one to spoof?
- uses: pcolby/tap-summary@0959cbe1d4422e62afc65778cdaea6716c41d936 # v1
if: ${{ inputs.path != '' }}
with:
path: >-
test.tap
# 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()
Expand Down
194 changes: 0 additions & 194 deletions .github/conda_skip.yml

This file was deleted.

93 changes: 93 additions & 0 deletions .github/skip_nf_test.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
{
"conda": [
"modules/nf-core/angsd/gl",
"modules/nf-core/annotsv/installannotations",
"modules/nf-core/backsub",
"modules/nf-core/bakta/bakta",
"modules/nf-core/bakta/baktadbdownload",
"modules/nf-core/bases2fastq",
"modules/nf-core/bcl2fastq",
"modules/nf-core/bclconvert",
"modules/nf-core/celesta",
"modules/nf-core/cellpose",
"modules/nf-core/cellranger/count",
"modules/nf-core/cellranger/mkfastq",
"modules/nf-core/cellranger/mkgtf",
"modules/nf-core/cellranger/mkref",
"modules/nf-core/cellranger/mkvdjref",
"modules/nf-core/cellranger/multi",
"modules/nf-core/cellranger/vdj",
"modules/nf-core/cellrangerarc/mkgtf",
"modules/nf-core/checkqc",
"modules/nf-core/custom/dumpsoftwareversions",
"modules/nf-core/deepcell/mesmer",
"modules/nf-core/deepsomatic",
"modules/nf-core/deepvariant",
"modules/nf-core/deepvariant/callvariants",
"modules/nf-core/deepvariant/makeexamples",
"modules/nf-core/deepvariant/postprocessvariants",
"modules/nf-core/deepvariant/rundeepvariant",
"modules/nf-core/deepvariant/vcfstatsreport",
"modules/nf-core/doubletdetection",
"modules/nf-core/ensemblvep/vep",
"modules/nf-core/fastk/fastk",
"modules/nf-core/fastk/histex",
"modules/nf-core/fastk/merge",
"modules/nf-core/fcs/fcsadaptor",
"modules/nf-core/fcs/fcsgx",
"modules/nf-core/ganon/buildcustom",
"modules/nf-core/ganon/classify",
"modules/nf-core/ganon/report",
"modules/nf-core/ganon/table",
"modules/nf-core/gatk4/cnnscorevariants",
"modules/nf-core/gatk4/determinegermlinecontigploidy",
"modules/nf-core/genescopefk",
"modules/nf-core/happy/sompy",
"modules/nf-core/ilastik/multicut",
"modules/nf-core/ilastik/pixelclassification",
"modules/nf-core/imputeme/vcftoprs",
"modules/nf-core/islandpath",
"modules/nf-core/mcquant",
"modules/nf-core/mcstaging/imc2mc",
"modules/nf-core/mcstaging/phenoimager2mc",
"modules/nf-core/merquryfk/katcomp",
"modules/nf-core/merquryfk/katgc",
"modules/nf-core/merquryfk/merquryfk",
"modules/nf-core/merquryfk/ploidyplot",
"modules/nf-core/molkartgarage/clahe",
"modules/nf-core/parabricks",
"modules/nf-core/quartonotebook",
"modules/nf-core/scimap/mcmicro",
"modules/nf-core/scimap/spatiallda",
"modules/nf-core/sentieon/bwaindex",
"modules/nf-core/sentieon/bwamem",
"modules/nf-core/sentieon/datametrics",
"modules/nf-core/sentieon/dedup",
"modules/nf-core/sentieon/qualcal",
"modules/nf-core/spaceranger/count",
"modules/nf-core/spaceranger/mkgtf",
"modules/nf-core/spaceranger/mkref",
"modules/nf-core/spotiflow",
"modules/nf-core/svanalyzer/svbenchmark",
"modules/nf-core/universc",
"modules/nf-core/vt/decompose",
"modules/nf-core/wittyer",
"modules/nf-core/xeniumranger/import-segmentation",
"modules/nf-core/xeniumranger/relabel",
"modules/nf-core/xeniumranger/rename",
"modules/nf-core/xeniumranger/resegment",
"subworkflows/nf-core/bcl_demultiplex",
"subworkflows/nf-core/deepvariant",
"subworkflows/nf-core/fasta_newick_epang_gappa",
"subworkflows/nf-core/fastq_align_bamcmp_bwa",
"subworkflows/nf-core/fastq_align_bwa",
"subworkflows/nf-core/vcf_annotate_ensemblvep"
],
"docker_self_hosted": ["modules/nf-core/parabricks"],
"singularity": [
"modules/nf-core/bases2fastq",
"modules/nf-core/deepsomatic",
"modules/nf-core/parabricks",
"modules/nf-core/universc"
]
}
40 changes: 39 additions & 1 deletion .github/workflows/nf-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,45 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0

- name: Filter paths
id: filter
run: |
PATHS='${{ needs.nf-test-changes.outputs.paths }}'
FILTERED=$(jq -n -c \
--arg profile "${{ matrix.profile }}" \
--argjson input_paths "$PATHS" \
'
def get_skip_list: inputs | .[$profile] // [];

# Get skip list and filter
get_skip_list as $skip_patterns |

# Debug output
($skip_patterns | "Skip patterns: " + (map(" - " + .) | join(","))) |
debug |

# Do the actual filtering
$input_paths | map(
. as $path |
select($skip_patterns | all(. as $pattern | ($path | startswith($pattern)) | not))
) as $result |

# Debug what was skipped
(if ($input_paths - $result) | length > 0 then
"Skipped: " + (($input_paths - $result) | map(" - " + .) | join(","))
else
"No paths skipped"
end) |
debug |

$result
' .github/skip_nf_test.json)

echo "filtered_paths=${FILTERED}" >> $GITHUB_OUTPUT

- name: Run nf-test Action
if: ${{steps.filter.outputs.filtered_paths != '[]'}}
uses: ./.github/actions/nf-test-action
env:
SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }}
Expand All @@ -103,7 +141,7 @@ jobs:
profile: ${{ matrix.profile }}
shard: ${{ matrix.shard }}
total_shards: ${{ env.TOTAL_SHARDS }}
paths: "${{ join(fromJson(needs.nf-test-changes.outputs.paths), ' ') }}"
paths: "${{ join(fromJson(steps.filter.outputs.filtered_paths), ' ') }}"

confirm-pass:
runs-on: ubuntu-latest
Expand Down
Loading