mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-11-13 05:13:09 +00:00
d0df4b03e3
Causing an issue with only running the subworkflow tests and now the modules. Just for now, we can come back to this.
213 lines
6.3 KiB
YAML
213 lines
6.3 KiB
YAML
name: Pytest-workflow
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
###########
|
|
# Modules #
|
|
###########
|
|
module_changes:
|
|
name: Check for changes in the modules
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
# Expose matched filters as job 'modules' output variable
|
|
modules: ${{ steps.filter.outputs.changes }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: dorny/paths-filter@v2
|
|
id: filter
|
|
with:
|
|
filters: "tests/config/pytest_modules.yml"
|
|
|
|
module_test:
|
|
runs-on: ubuntu-20.04
|
|
|
|
name: ${{ matrix.tags }} ${{ matrix.profile }} ${{ matrix.nxf_version }}
|
|
needs: module_changes
|
|
if: needs.module_changes.outputs.modules != '[]'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
nxf_version: ["21.04.0"]
|
|
tags: ["${{ fromJson(needs.modules_changes.outputs.modules) }}"]
|
|
profile: ["docker", "singularity", "conda"]
|
|
env:
|
|
NXF_ANSI_LOG: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
- name: Install Python dependencies
|
|
run: python -m pip install --upgrade pip pytest-workflow
|
|
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: /usr/local/bin/nextflow
|
|
key: ${{ runner.os }}-nextflow-${{ matrix.nxf_version }}
|
|
restore-keys: |
|
|
${{ runner.os }}-nextflow-
|
|
|
|
- name: Install Nextflow
|
|
env:
|
|
NXF_VER: ${{ matrix.nxf_version }}
|
|
CAPSULE_LOG: none
|
|
run: |
|
|
wget -qO- get.nextflow.io | bash
|
|
sudo mv nextflow /usr/local/bin/
|
|
|
|
- name: Set up Singularity
|
|
if: matrix.profile == 'singularity'
|
|
uses: eWaterCycle/setup-singularity@v5
|
|
with:
|
|
singularity-version: 3.7.1
|
|
|
|
- name: Setup miniconda
|
|
if: matrix.profile == 'conda'
|
|
uses: conda-incubator/setup-miniconda@v2
|
|
with:
|
|
auto-update-conda: true
|
|
channels: conda-forge,bioconda,defaults
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Conda clean
|
|
if: matrix.profile == 'conda'
|
|
run: conda clean -a
|
|
|
|
# Test the module
|
|
- name: Run pytest-workflow
|
|
# only use one thread for pytest-workflow to avoid race condition on conda cache.
|
|
run: NF_CORE_MODULES_TEST=1 TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof
|
|
|
|
- name: Upload logs on failure
|
|
if: failure()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: logs-${{ matrix.profile }}-${{ matrix.nxf_version }}
|
|
path: |
|
|
/home/runner/pytest_workflow_*/*/.nextflow.log
|
|
/home/runner/pytest_workflow_*/*/log.out
|
|
/home/runner/pytest_workflow_*/*/log.err
|
|
/home/runner/pytest_workflow_*/*/work
|
|
|
|
################
|
|
# Subworkflows #
|
|
################
|
|
subworkflow_changes:
|
|
name: Check for changes in the subworkflows
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
# Expose matched filters as job 'subworkflows' output variable
|
|
subworkflows: ${{ steps.filter.outputs.changes }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: dorny/paths-filter@v2
|
|
id: filter
|
|
with:
|
|
filters: "tests/config/pytest_subworkflows.yml"
|
|
|
|
subworkflow_test:
|
|
runs-on: ubuntu-20.04
|
|
|
|
name: ${{ matrix.tags }} ${{ matrix.profile }} ${{ matrix.nxf_version }}
|
|
needs: subworkflow_changes
|
|
if: needs.subworkflow_changes.outputs.subworkflows != '[]'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
nxf_version: ["21.04.0"]
|
|
tags: ["${{ fromJson(needs.subworkflow_changes.outputs.subworkflows) }}"]
|
|
profile: ["docker", "singularity", "conda"]
|
|
env:
|
|
NXF_ANSI_LOG: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
- name: Install Python dependencies
|
|
run: python -m pip install --upgrade pip pytest-workflow
|
|
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: /usr/local/bin/nextflow
|
|
key: ${{ runner.os }}-nextflow-${{ matrix.nxf_version }}
|
|
restore-keys: |
|
|
${{ runner.os }}-nextflow-
|
|
|
|
- name: Install Nextflow
|
|
env:
|
|
NXF_VER: ${{ matrix.nxf_version }}
|
|
CAPSULE_LOG: none
|
|
run: |
|
|
wget -qO- get.nextflow.io | bash
|
|
sudo mv nextflow /usr/local/bin/
|
|
|
|
- name: Set up Singularity
|
|
if: matrix.profile == 'singularity'
|
|
uses: eWaterCycle/setup-singularity@v5
|
|
with:
|
|
singularity-version: 3.7.1
|
|
|
|
- name: Setup miniconda
|
|
if: matrix.profile == 'conda'
|
|
uses: conda-incubator/setup-miniconda@v2
|
|
with:
|
|
auto-update-conda: true
|
|
channels: conda-forge,bioconda,defaults
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Conda clean
|
|
if: matrix.profile == 'conda'
|
|
run: conda clean -a
|
|
|
|
# Test the module
|
|
- name: Run pytest-workflow
|
|
# only use one thread for pytest-workflow to avoid race condition on conda cache.
|
|
run: NF_CORE_MODULES_TEST=1 TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof
|
|
|
|
- name: Upload logs on failure
|
|
if: failure()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: logs-${{ matrix.profile }}-${{ matrix.nxf_version }}
|
|
path: |
|
|
/home/runner/pytest_workflow_*/*/.nextflow.log
|
|
/home/runner/pytest_workflow_*/*/log.out
|
|
/home/runner/pytest_workflow_*/*/log.err
|
|
/home/runner/pytest_workflow_*/*/work
|