An action to install Nextflow into a GitHub Actions workflow and make it available for subsequent steps.
name: Example workflow
on: push
jobs:
example:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: nf-core/setup-nextflow@v1
- run: nextflow run ${GITHUB_WORKSPACE}
All inputs are optional! 😎 By default, this action will install the latest stable release of Nextflow. You can optionally pick a different version, or choose to install all versions.
default:
latest
A version string to specify the version of Nextflow to install. This version number will try to resolve using npm's semantic versioning, so
version: 21
version: 21.10
version: 21.10.6
will all download Nextflow version 21.10.6 as of 13 June 2022. Since Nextflow does not use true semantic versioning, you should always specify at least the minor version (e.g. version: 21.10
).
Edge releases are resolved as pre-release, see https://github.com/npm/node-semver#prerelease-tags for more details. In short, in nearly all cases, passing an -edge
release to this action will need to specify the exact edge release targeted.
There are three (technically four) aliases to assist in choosing up-to-date Nextflow versions.
-
version: latest-stable
(aliasversion: latest
)This will download the latest stable release of Nextflow.
-
version: latest-edge
This will download the latest edge release of Nextflow. Note that edge releases may be older than the latest stable release. See nextflow-io/nextflow#2467
-
version: latest-everything
This will download the latest release of Nextflow, regardless of stable/edge status.
default:
false
A boolean deciding whether to download the "all versions" distribution of Nextflow. May be useful for running tests against multiple versions downstream.
There are no outputs from this action.
You may be asking, why not just a few yaml lines?
- name: Install Nextflow
env:
NXF_VER: ${{ matrix.NXF_VER }}
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
The versioning. From the Nextflow install script you can't get latest-edge
or latest-everything
for example.