Skip to content

Merge pull request #1275: CI: Remove mamba list #1580

Merge pull request #1275: CI: Remove mamba list

Merge pull request #1275: CI: Remove mamba list #1580

Workflow file for this run

name: CI
on:
push:
branches:
- master
# Routinely check that tests pass with new versions of dependencies.
schedule:
# Every day at 17:42 UTC / 9:42 Seattle (winter) / 10:42 Seattle (summer)
- cron: "42 17 * * *"
pull_request:
workflow_dispatch:
jobs:
pytest-cram:
name: test (python=${{ matrix.python-version }} biopython=${{ matrix.biopython-version || 'latest' }})
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- '3.7'
- '3.8'
- '3.9'
- '3.10'
- '3.11'
biopython-version:
# list of Biopython versions with support for a new Python version
# from https://github.com/biopython/biopython/blob/master/NEWS.rst
- '1.73' # first to support Python 3.7
- '1.76' # first to support Python 3.8
- '1.79' # first to support Python 3.9
- '1.80' # first to support Python 3.10 and 3.11
- '' # latest
exclude:
# some older Biopython versions are incompatible with later Python versions
- { biopython-version: '1.73', python-version: '3.8' }
- { biopython-version: '1.73', python-version: '3.9' }
- { biopython-version: '1.73', python-version: '3.10' }
- { biopython-version: '1.73', python-version: '3.11' }
- { biopython-version: '1.76', python-version: '3.9' }
- { biopython-version: '1.76', python-version: '3.10' }
- { biopython-version: '1.76', python-version: '3.11' }
- { biopython-version: '1.79', python-version: '3.10' }
- { biopython-version: '1.79', python-version: '3.11' }
# Additionally, Bioconda does not support the following combinations
- { biopython-version: '1.80', python-version: '3.7' }
defaults:
run:
shell: bash -l {0}
env:
COVERAGE_FILE: ${{ github.workspace }}/.coverage@python=${{ matrix.python-version }},biopython=${{ matrix.biopython-version || 'latest' }}
COVERAGE_RCFILE: ${{ github.workspace }}/.coveragerc
steps:
- uses: actions/checkout@v3
- uses: conda-incubator/setup-miniconda@v2
with:
python-version: ${{ matrix.python-version }}
miniforge-variant: Mambaforge
channels: conda-forge,bioconda
- run: |
mamba install \
mafft \
raxml \
fasttree \
iqtree \
vcftools \
biopython=${{ matrix.biopython-version }}
- run: pip install .[dev]
- run: conda info
- run: conda list
- run: pytest -c pytest.python3.ini --cov=augur
- run: cram tests/
env:
AUGUR: coverage run -a ${{ github.workspace }}/bin/augur
- run: bash tests/builds/runner.sh
- uses: actions/upload-artifact@v3
with:
name: coverage
path: "${{ env.COVERAGE_FILE }}"
pathogen-ci:
runs-on: ubuntu-latest
continue-on-error: true
env:
repodata_use_zst: true
strategy:
matrix:
include:
- { pathogen: avian-flu, build-args: auspice/flu_avian_h5n1_ha.json }
- { pathogen: ebola }
- { pathogen: lassa }
- { pathogen: monkeypox }
- { pathogen: mumps }
- {
pathogen: ncov,
build-args: all_regions -j 2 --profile nextstrain_profiles/nextstrain-ci,
}
- {
pathogen: seasonal-flu,
build-args: --configfile profiles/ci/builds.yaml -p,
}
- { pathogen: zika }
name: test-pathogen-repo-ci (${{ matrix.pathogen }})
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v3
- uses: mamba-org/provision-with-micromamba@v15
with:
environment-file: false
environment-name: augur
extra-specs: nextstrain-base
channels: nextstrain,conda-forge,bioconda
cache-env: true
- run: pip install .
- uses: actions/checkout@v3
with:
repository: nextstrain/${{ matrix.pathogen }}
- name: Copy example data
run: |
if [[ -d example_data ]]; then
mkdir -p data/
cp -v example_data/* data/
else
echo No example data to copy.
fi
- run: snakemake -c all ${{ matrix.build-args }}
- if: always()
uses: actions/upload-artifact@v3
with:
name: output-${{ matrix.pathogen }}
path: |
auspice/
results/
benchmarks/
logs/
.snakemake/log/
codecov:
if: github.repository == 'nextstrain/augur'
needs: [pytest-cram]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- run: pip install coverage
- uses: actions/download-artifact@v3
with:
name: coverage
- run: coverage combine .coverage@*
- run: coverage xml
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: false
build-docs:
uses: nextstrain/.github/.github/workflows/docs-ci.yaml@master
with:
docs-directory: docs/
pip-install-target: .[dev]