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:
plugins — list or multiline of name@version to nextflow plugin install after Nextflow is on PATH (with a couple of retries).
cache-plugins: true — actions/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.
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 timenextflowruns 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
checkpassed, then the merge-groupcheckfailed with:Same tip, same workflow — intermittent registry/network failure mid-test because
$NXF_HOME/pluginswas empty aftersetup-nextflow.What would help
Optional inputs on
nf-core/setup-nextflow, for example:plugins— list or multiline ofname@versiontonextflow plugin installafter Nextflow is on PATH (with a couple of retries).cache-plugins: true—actions/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.configwould be ideal so the config stays the single source of truth, but an explicitplugins:input is enough.Workaround we are using
After this action, a CI step parses
nextflow.configand runsnextflow plugin install …with retries before tests: https://github.com/seqeralabs/gradient-v3/pull/458Happy to bikeshed the input shape if you want this upstream instead of every consumer reinventing it.