Repository navigation
AVITI24 cytoprofiling support #234
This file contains hidden or 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: nf-core CI | |
| # This workflow runs the pipeline with the minimal test dataset to check that it completes without any syntax errors | |
| on: | |
| push: | |
| branches: | |
| - dev | |
| pull_request: | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| env: | |
| NXF_ANSI_LOG: false | |
| NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity | |
| NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity | |
| CONTAINER_REGISTRY: ghcr.io | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: "Run pipeline with test data (${{ matrix.NXF_VER }} | ${{ matrix.test_name }} | ${{ matrix.profile }})" | |
| # Only run on push if this is the dev branch (merged PRs) | |
| if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'wehi-soda-hub/sp_segment') }}" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| NXF_VER: | |
| - "24.04.2" | |
| - "latest-everything" | |
| profile: | |
| - "conda" | |
| - "docker" | |
| - "singularity" | |
| test_name: | |
| - "test" | |
| isMaster: | |
| - ${{ github.base_ref == 'master' }} | |
| # Exclude conda and singularity on dev | |
| # cellmeasurement doesn't support conda, and has issues with the docker container on CI | |
| exclude: | |
| - isMaster: false | |
| profile: "conda" | |
| - isMaster: false | |
| profile: "docker" | |
| steps: | |
| - name: Check out pipeline code | |
| uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 | |
| - name: Set up Nextflow | |
| uses: nf-core/setup-nextflow@v2 | |
| with: | |
| version: "${{ matrix.NXF_VER }}" | |
| - name: Set up Apptainer | |
| if: matrix.profile == 'singularity' | |
| uses: eWaterCycle/setup-apptainer@main | |
| - name: Set up Singularity | |
| if: matrix.profile == 'singularity' | |
| run: | | |
| mkdir -p $NXF_SINGULARITY_CACHEDIR | |
| mkdir -p $NXF_SINGULARITY_LIBRARYDIR | |
| - name: Set up Miniconda | |
| if: matrix.profile == 'conda' | |
| uses: conda-incubator/setup-miniconda@a4260408e20b96e80095f42ff7f1a15b27dd94ca # v3 | |
| with: | |
| miniconda-version: "latest" | |
| auto-update-conda: true | |
| conda-solver: libmamba | |
| channels: conda-forge,bioconda | |
| - name: Set up Conda | |
| if: matrix.profile == 'conda' | |
| run: | | |
| echo $(realpath $CONDA)/condabin >> $GITHUB_PATH | |
| echo $(realpath python) >> $GITHUB_PATH | |
| - name: Clean up Disk space | |
| uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 | |
| # Reuse the converted SIFs between runs. Without this every job re-pulls | |
| # ~6 GB from the Wave and GHCR registries, and a run has already been lost | |
| # to a single 230 MB pull stalling for 33 minutes until Nextflow's | |
| # pullTimeout killed it (exit 143). Nothing retries a stalled pull -- this | |
| # removes most of the opportunities to hit one. | |
| # | |
| # Keyed on the module files, which is where the container URIs live, so a | |
| # container change invalidates it. restore-keys means an unrelated module | |
| # edit still restores the previous SIFs and only the changed image is | |
| # pulled. GitHub evicts least-recently-used caches past 10 GB per repo, so | |
| # a miss degrades to today's behaviour rather than failing. | |
| # | |
| # Restored after the disk cleanup above, which the several GB of SIFs need. | |
| - name: Cache Singularity images | |
| if: matrix.profile == 'singularity' | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ github.workspace }}/.singularity | |
| key: singularity-${{ hashFiles('modules/**/main.nf') }} | |
| restore-keys: | | |
| singularity- | |
| - name: Log into Container registry ${{ env.CONTAINER_REGISTRY }} | |
| uses: docker/login-action@v2 | |
| with: | |
| registry: ${{ env.CONTAINER_REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: "Run pipeline with test data ${{ matrix.NXF_VER }} | ${{ matrix.test_name }} | ${{ matrix.profile }}" | |
| run: | | |
| mkdir -p work && chmod 777 work | |
| if [ "${{ matrix.profile }}" == "singularity" ]; then | |
| export NXF_SINGULARITY_HOME_MOUNT=true | |
| fi | |
| nextflow run ${GITHUB_WORKSPACE} -profile ${{ matrix.test_name }},${{ matrix.profile }} --outdir ./results |