nf-core / nf-core/setup-nextflow

Optionally install/cache Nextflow plugins declared in nextflow.config

Open
#255 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
31
Forks
5
PR merge metrics
No merged PRs in 30d

Description

Problem

Workflows that pin plugins in nextflow.config (e.g. plugins { id 'nf-weblog@1.1.2' }) still do a live marketplace download the first time nextflow runs in CI. That download is flaky under load (merge queues, parallel jobs) and is not covered by this action today.

We hit this in Seqera's gradient-v3 merge queue: PR check passed, then the merge-group check failed with:

Downloading plugin nf-weblog@1.1.2
ERROR ~ Error during download of plugin nf-weblog

Same tip, same workflow — intermittent registry/network failure mid-test because $NXF_HOME/plugins was empty after setup-nextflow.

What would help

Optional inputs on nf-core/setup-nextflow, for example:

  1. plugins — list or multiline of name@version to nextflow plugin install after Nextflow is on PATH (with a couple of retries).
  2. cache-plugins: trueactions/cache (or the action's own cache) for $NXF_HOME/plugins (or the documented plugins dir), keyed on Nextflow version + plugin pins, so cold runners skip the registry when the cache hits.

Reading pins from a checked-out nextflow.config would be ideal so the config stays the single source of truth, but an explicit plugins: input is enough.

Workaround we are using

After this action, a CI step parses nextflow.config and runs nextflow plugin install … with retries before tests: https://github.com/seqeralabs/gradient-v3/pull/458

Happy to bikeshed the input shape if you want this upstream instead of every consumer reinventing it.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the setup-nextflow action's input handling and the flow that runs after Nextflow is added to PATH; the issue names no repository files or tests. Review how nextflow plugin install, retries, and the $NXF_HOME/plugins cache should interact, then verify that pinned plugins can be installed or restored reliably in CI.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
ci-cd, devops, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.