Merge pull request #3101 from mirpedrol/template-customisation-citations #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create a pipeline from a template and test it | |
on: | |
push: | |
branches: | |
- dev | |
paths: | |
- nf_core/pipeline-template/** | |
pull_request: | |
paths-ignore: | |
- "docs/**" | |
- "CHANGELOG.md" | |
release: | |
types: [published] | |
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_ANSI_LOG: false | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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" | |
- "template_skip_code_linters.yml" | |
- "template_skip_citations.yml" | |
- "template_skip_gitpod.yml" | |
runner: | |
# use the runner given by the input if it is dispatched manually, run on github if it is a rerun or on self-hosted by default | |
- ${{ github.event.inputs.runners || github.run_number > 1 && 'ubuntu-latest' || '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" | |
fail-fast: false | |
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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
name: Check out source-code repository | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 | |
with: | |
python-version: "3.12" | |
- name: Install python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install . | |
- name: Install Nextflow | |
uses: nf-core/setup-nextflow@v2 | |
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 "org: 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 "org: my-prefix\nskip: github_badges" > create-test-lint-wf/template_skip_github_badges.yml | |
- name: Create template skip igenomes | |
run: | | |
printf "org: my-prefix\nskip: igenomes" > create-test-lint-wf/template_skip_igenomes.yml | |
- name: Create template skip ci | |
run: | | |
printf "org: my-prefix\nskip: ci" > create-test-lint-wf/template_skip_ci.yml | |
- name: Create template skip nf_core_configs | |
run: | | |
printf "org: my-prefix\nskip: nf_core_configs" > create-test-lint-wf/template_skip_nf_core_configs.yml | |
- name: Create template skip code_linters | |
run: | | |
printf "org: my-prefix\nskip: code_linters" > create-test-lint-wf/template_skip_code_linters.yml | |
- name: Create template skip citations | |
run: | | |
printf "org: my-prefix\nskip: citations" > create-test-lint-wf/template_skip_citations.yml | |
- name: Create template skip gitpod | |
run: | | |
printf "org: my-prefix\nskip: gitpod" > create-test-lint-wf/template_skip_gitpod.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 pipelines 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 pipelines sync | |
run: nf-core --log-file log.txt pipelines 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 pipelines lint | |
run: nf-core --log-file log.txt --hide-progress pipelines lint --dir my-prefix-testpipeline --fail-warned | |
working-directory: create-test-lint-wf | |
# Run bump-version | |
- name: nf-core pipelines bump-version | |
run: nf-core --log-file log.txt pipelines bump-version --dir my-prefix-testpipeline/ 1.1 | |
working-directory: create-test-lint-wf | |
# Run nf-core linting in release mode | |
- name: nf-core pipelines lint in release mode | |
run: nf-core --log-file log.txt --hide-progress pipelines 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@65462800fd760344b1a7b4382951275a0abb4808 # 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() |