diff --git a/.github/workflows/linting.yml b/.github/workflows/code-linting.yml similarity index 100% rename from .github/workflows/linting.yml rename to .github/workflows/code-linting.yml diff --git a/.github/workflows/nf-core-linting.yml b/.github/workflows/nf-core-linting.yml new file mode 100644 index 00000000..25a50bcd --- /dev/null +++ b/.github/workflows/nf-core-linting.yml @@ -0,0 +1,75 @@ +name: nf-core linting +# This workflow is triggered on pushes and PRs to the repository. +# It runs the `nf-core lint` tests to ensure that the module code meets the nf-core guidelines +on: [push, pull_request] + +jobs: + changes: + name: Check for changes + 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_software.yml' + + lint: + runs-on: ubuntu-20.04 + env: + NXF_VER: 21.03.0-edge + + name: ${{ matrix.tags }} + needs: changes + if: needs.changes.outputs.modules != '[]' + strategy: + fail-fast: false + matrix: + tags: ['${{ fromJson(needs.changes.outputs.modules) }}'] + 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 pip + run: python -m pip install --upgrade pip + + # FIXME: Remove this when nf-core modules lint stabilizes and install stable release + - name: Install nf-core tools development version + run: python -m pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev + + - name: Install Nextflow + env: + CAPSULE_LOG: none + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + + - name: Lint ${{ matrix.tags }} + run: nf-core modules lint . -t ${{ matrix.tags }} + + - uses: actions/cache@v2 + with: + path: /usr/local/bin/nextflow + key: ${{ runner.os }} + restore-keys: | + ${{ runner.os }} diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index e678aa54..263495e7 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -10,6 +10,7 @@ jobs: modules: ${{ steps.filter.outputs.changes }} steps: - uses: actions/checkout@v2 + - uses: dorny/paths-filter@v2 id: filter with: @@ -17,23 +18,26 @@ jobs: test: runs-on: ubuntu-20.04 + name: ${{ matrix.tags }} ${{ matrix.profile }} ${{ matrix.nxf_version }} needs: changes if: needs.changes.outputs.modules != '[]' strategy: fail-fast: false matrix: - nxf_version: ['20.11.0-edge', '21.03.0-edge'] + nxf_version: ['21.03.0-edge'] tags: ['${{ fromJson(needs.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 @@ -45,14 +49,9 @@ jobs: uses: actions/setup-python@v2 with: python-version: "3.x" - - name: Install dependencies - run: python -m pip install --upgrade pip pytest-workflow - # FIXME: Remove this when nf-core modules lint stabilizes - - name: Install nf-core tools development version - run: python -m pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev - - name: Lint ${{ matrix.tags }} - run: nf-core modules lint . -t ${{ matrix.tags }} + - name: Install Python dependencies + run: python -m pip install --upgrade pip pytest-workflow - uses: actions/cache@v2 with: @@ -64,11 +63,11 @@ jobs: - 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 @@ -82,6 +81,7 @@ jobs: 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