POC: module yaml restructure #1399
Workflow file for this run
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: | |
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" | |
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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 | |
name: Check out source-code repository | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # 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@b9f764e8ba5c76b712ace14ecbfcef0e40ae2dd8 # 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@5d5d22a31266ced268874388b861e4b58bb5c2f3 # 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() |