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 test for initialize breaking the template #4855

Closed
wants to merge 3 commits into from
Closed
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
154 changes: 154 additions & 0 deletions .github/workflows/tools.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
name: Run Template Tests
on:
push:
branches: [master]
paths:
- "subworkflows/nf-core/initialise/**"
pull_request:
branches: [master]
paths:
- "subworkflows/nf-core/initialise/**"
merge_group:
types: [checks_requested]
branches: [master]
paths:
- "subworkflows/nf-core/initialise/**"

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

jobs:
RunTestWorkflow:
runs-on: ${{ matrix.runner }}
env:
NXF_ANSI_LOG: false
strategy:
matrix:
TEMPLATE:
- "template_skip_github_badges.yml"
- "template_skip_igenomes.yml"
- "template_skip_ci.yml"
runner: ["self-hosted"]
profile: ["self_hosted_runner"]
include:
- TEMPLATE: "template_skip_all.yml"
runner: ubuntu-latest
profile: "docker"
- TEMPLATE: "template_skip_nf_core_configs.yml"
runner: ubuntu-latest
profile: "docker"

steps:
- name: go to working directory
run: |
mkdir -p create-lint-wf-template
cd create-lint-wf-template
export NXF_WORK=$(pwd)

- uses: actions/checkout@v4
name: Check out source-code repository

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

- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install .

- name: Install Nextflow
uses: nf-core/setup-nextflow@v1
with:
version: latest-everything

# Create template files
- name: Create template skip all (except github)
run: |
mkdir create-test-lint-wf
export NXF_WORK=$(pwd)
printf "prefix: my-prefix\nskip: ['ci', 'github_badges', 'igenomes', 'nf_core_configs']" > create-test-lint-wf/template_skip_all.yml

- name: Create template skip github_badges
run: |
printf "prefix: my-prefix\nskip: github_badges" > create-test-lint-wf/template_skip_github_badges.yml

- name: Create template skip igenomes
run: |
printf "prefix: my-prefix\nskip: igenomes" > create-test-lint-wf/template_skip_igenomes.yml

- name: Create template skip ci
run: |
printf "prefix: my-prefix\nskip: ci" > create-test-lint-wf/template_skip_ci.yml

- name: Create template skip nf_core_configs
run: |
printf "prefix: my-prefix\nskip: nf_core_configs" > create-test-lint-wf/template_skip_nf_core_configs.yml

# Create a pipeline from the template
- name: create a pipeline from the template ${{ matrix.TEMPLATE }}
run: |
cd create-test-lint-wf
nf-core --log-file log.txt create -n testpipeline -d "This pipeline is for testing" -a "Testing McTestface" --template-yaml ${{ matrix.TEMPLATE }}

- name: run the pipeline
run: |
cd create-test-lint-wf
nextflow run my-prefix-testpipeline -profile test,${{matrix.profile}} --outdir ./results

# Remove results folder before linting
- name: remove results folder
run: |
rm -rf create-test-lint-wf/results

# Try syncing it before we change anything
- name: nf-core sync
run: nf-core --log-file log.txt sync --dir create-test-lint-wf/my-prefix-testpipeline/

# Run code style linting
- name: Run pre-commit
run: pre-commit run --all-files
working-directory: create-test-lint-wf

# Remove TODO statements
- name: remove TODO
run: find my-prefix-testpipeline -type f -exec sed -i '/TODO nf-core:/d' {} \;
working-directory: create-test-lint-wf

# Replace zenodo.XXXXXX to pass readme linting
- name: replace zenodo.XXXXXX
run: find my-prefix-testpipeline -type f -exec sed -i 's/zenodo.XXXXXX/zenodo.123456/g' {} \;
working-directory: create-test-lint-wf

# Run nf-core linting
- name: nf-core lint
run: nf-core --log-file log.txt --hide-progress lint --dir my-prefix-testpipeline --fail-warned
working-directory: create-test-lint-wf

# Run bump-version
- name: nf-core bump-version
run: nf-core --log-file log.txt bump-version --dir my-prefix-testpipeline/ 1.1
working-directory: create-test-lint-wf

# Run nf-core linting in release mode
- name: nf-core lint in release mode
run: nf-core --log-file log.txt --hide-progress lint --dir my-prefix-testpipeline --fail-warned --release
working-directory: create-test-lint-wf

- name: Tar files
run: tar -cvf artifact_files.tar log.txt template_skip*.yml
working-directory: create-test-lint-wf

- name: Upload log file artifact
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: nf-core-log-file-${{ matrix.TEMPLATE }}
path: create-test-lint-wf/artifact_files.tar

- name: Cleanup work directory
run: sudo rm -rf create-test-lint-wf
if: always()
1 change: 1 addition & 0 deletions subworkflows/nf-core/initialise/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ def dashedLine(monochrome_logs) {
return "-${colors.dim}----------------------------------------------------${colors.reset}-"
}


//
// nf-core logo
//
Expand Down
Loading