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

Adding our nf-test tests to the GitHub Actions CI #66

Merged
merged 29 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
092b889
added nf-tests to ci and updated basipy and ashlar
RobJY Oct 28, 2024
a0a98cd
forcing more nf-tests in ci
RobJY Oct 28, 2024
3b8797b
update mesmer and added test param to not check conda channels
RobJY Oct 28, 2024
65c6b2a
removed ineffective test param
RobJY Oct 28, 2024
1d2885b
schema fix
RobJY Oct 29, 2024
a65f5aa
removing forced tests for testing
RobJY Oct 29, 2024
c31dced
ran prettier
RobJY Oct 29, 2024
d6ba5bd
added required final newline to ci.yml
RobJY Oct 29, 2024
7cc158f
testing detect-nf-test-changes fix
RobJY Oct 29, 2024
802a76d
testing another possible fix for detect changes
RobJY Oct 29, 2024
40dc458
ci fix: added modules_testdata_base_path
RobJY Oct 29, 2024
89ed2b3
fixed mesmer test file url
RobJY Oct 30, 2024
d079b34
ran prettier again
RobJY Oct 30, 2024
6e1b4d1
removed documentation branch from ci
RobJY Oct 31, 2024
271f172
added dev branch back to ci
RobJY Nov 4, 2024
7157cbe
pulled in template changes from dev
RobJY Nov 5, 2024
c2179d3
ran lint with fix option
RobJY Nov 5, 2024
c37bd8f
updated schema with missing modules_testsdata_base_path
RobJY Nov 5, 2024
afe7aa7
fixed editorconfig-checker error
RobJY Nov 5, 2024
502e25b
possible fix for last lint error
RobJY Nov 5, 2024
8c8fcdb
Update .github/workflows/ci.yml
RobJY Nov 6, 2024
acba646
added nf-tests to ci and updated basipy and ashlar
RobJY Oct 28, 2024
4d525a4
schema fix
RobJY Oct 29, 2024
6a05d51
bug fix: duplicated variable during rebase conflict resolution
RobJY Nov 25, 2024
3eb04fe
bug fix: another duplication
RobJY Nov 25, 2024
14d06da
bug fix: corrected schema version
RobJY Nov 25, 2024
2de5739
removed extra branches from ci push
RobJY Nov 26, 2024
288336c
changes requested in PR
RobJY Dec 2, 2024
315ec7e
one more suggested change from PR
RobJY Dec 2, 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
141 changes: 129 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,161 @@ name: nf-core CI
on:
push:
branches:
- dev
# - dev
- ci_nf-test
pull_request:
release:
types: [published]
workflow_dispatch:

env:
NXF_ANSI_LOG: false
NFT_VER: "0.9.0"
NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity
NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity
# env var to force tests
# TEST_SET: '["tests/workflows/mcmicro.nf.test", "subworkflows/local/utils_nfcore_mcmicro_pipeline/tests/initialisation.nf.test", "tests/main.nf.test"]'

concurrency:
group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}"
cancel-in-progress: true

jobs:
nf-test-changes:
name: Check for changes
runs-on: ubuntu-latest
outputs:
nf_test_files: ${{ steps.list.outputs.components }}
# nf_test_files: ${{ env.TEST_SET }}

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: List nf-test files
id: list
uses: adamrtalbot/detect-nf-test-changes@v0.0.4
with:
head: ${{ github.sha }}
# TODO: check that the following works on pull_request
# base: origin/${{ github.ref_name }}
base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha || github.event.before }}

- name: print list of nf-test files
run: |
echo ${{ steps.list.outputs.components }}

test:
name: Run pipeline with test data
# Only run on push if this is the nf-core dev branch (merged PRs)
if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mcmicro') }}"
name: "Run tests (${{ matrix.nf_test_files }} ${{ matrix.profile }} NF-${{ matrix.NXF_VER }})"
needs: [nf-test-changes]
if: needs.nf-test-changes.outputs.nf_test_files != '[]'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
NXF_VER:
- "23.04.0"
- "24.04.2"
- "latest-everything"
nf_test_files: ["${{ fromJson(needs.nf-test-changes.outputs.nf_test_files) }}"]
profile:
# - "conda"
- "docker"
- "singularity"
steps:
- name: install curl
run: sudo apt update && sudo apt install -y curl wget

- name: Check out pipeline code
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4

- name: Install Nextflow
- name: Set up Nextflow
uses: nf-core/setup-nextflow@v2
with:
version: "${{ matrix.NXF_VER }}"

- name: Disk space cleanup
- name: Set up Apptainer
if: matrix.profile == 'singularity'
uses: eWaterCycle/setup-apptainer@main

- name: Set up Singularity
if: matrix.profile == 'singularity'
run: |
mkdir -p $NXF_SINGULARITY_CACHEDIR
mkdir -p $NXF_SINGULARITY_LIBRARYDIR

# - name: Set up Miniconda
# if: matrix.profile == 'conda'
# uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3
# with:
# miniconda-version: "latest"
# auto-update-conda: true
# conda-solver: libmamba
# channels: conda-forge,bioconda

# - name: Set up Conda
# if: matrix.profile == 'conda'
# run: |
# echo $(realpath $CONDA)/condabin >> $GITHUB_PATH
# echo $(realpath python) >> $GITHUB_PATH

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

- uses: actions/setup-python@v4
with:
python-version: "3.11"
architecture: "x64"

- name: Install pdiff to see diff between nf-test snapshots
run: |
python -m pip install --upgrade pip
pip install pdiff

- name: Clean up Disk space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1

- name: Run pipeline with test data
# TODO nf-core: You can customise CI pipeline run tests as required
# For example: adding multiple test runs with different parameters
# Remember that you can parallelise this by using strategy.matrix
- name: Run nf-test
run: |
nf-test test \
--verbose ${{ matrix.nf_test_files }} \
--profile "+${{ matrix.profile }},ci" \
--junitxml=test.xml \
--tap=test.tap

- uses: pcolby/tap-summary@v1
with:
path: >-
test.tap

- name: Output log on failure
if: failure()
run: |
sudo apt install bat > /dev/null
batcat --decorations=always --color=always ${{ github.workspace }}/.nf-test/tests/*/meta/nextflow.log

- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always() # always run even if the previous step fails
with:
report_paths: test.xml

confirm-pass:
runs-on: ubuntu-latest
needs: [test]
if: always()
steps:
- name: All tests ok
if: ${{ !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: |
nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results
echo "toJSON(needs) = ${{ toJSON(needs) }}"
echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}"
10 changes: 10 additions & 0 deletions conf/ci.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
process {
withName: ".*:DEEPCELL_MESMER" {
memory = "6.GB"
cpus = 2
}
withName: ".*:CELLPOSE"{
memory = "12.GB"
cpus = 4
}
}
1 change: 0 additions & 1 deletion conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ process {
}

withName: BASICPY {
containerOptions = '--entrypoint "" --user root'
publishDir = [
path: { "${params.outdir}/illumination_correction/basicpy" },
mode: params.publish_dir_mode,
Expand Down
6 changes: 3 additions & 3 deletions modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"nf-core": {
"ashlar": {
"branch": "master",
"git_sha": "a5a287db3590e7aa121e1251bf126c35e1418abf",
"git_sha": "666652151335353eef2fcd58880bcef5bc2928e1",
"installed_by": ["modules"],
"patch": "modules/nf-core/ashlar/ashlar.diff"
},
Expand All @@ -18,7 +18,7 @@
},
"basicpy": {
"branch": "master",
"git_sha": "716ef3019b66772a817b417078edce2f7b337858",
"git_sha": "666652151335353eef2fcd58880bcef5bc2928e1",
"installed_by": ["modules"],
"patch": "modules/nf-core/basicpy/basicpy.diff"
},
Expand All @@ -35,7 +35,7 @@
},
"deepcell/mesmer": {
"branch": "master",
"git_sha": "298406de7fb599b3a7acfed1dddb606ec182d4b6",
"git_sha": "666652151335353eef2fcd58880bcef5bc2928e1",
"installed_by": ["modules"]
},
"ilastik/multicut": {
Expand Down
4 changes: 1 addition & 3 deletions modules/nf-core/ashlar/environment.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

49 changes: 29 additions & 20 deletions modules/nf-core/ashlar/meta.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions modules/nf-core/basicpy/basicpy.diff
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a specific reason the module was changed? I have an open PR adding nf-test to basicpy nf-core/modules#6929 if there are some changes to be made to make the module more standardized feel free to add to that PR (it shouldn't be an issue since it's only in MCMICRO currently).

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions modules/nf-core/basicpy/environment.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions modules/nf-core/basicpy/main.nf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading