Skip to content

Put the subcmd name in the validate_output error message [#1539] #2595

Put the subcmd name in the validate_output error message [#1539]

Put the subcmd name in the validate_output error message [#1539] #2595

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:
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v5
with:
# Types must be written for the lowest compatible Python version
python-version: '3.8'
- uses: actions/checkout@v4
- run: pip install .[dev]
- run: mypy
pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v5
with:
# Sync this with pythonVersion in pyrightconfig.json
python-version: '3.8'
- uses: actions/checkout@v4
- run: npx pyright --stats
pytest-cram:
name: test (python=${{ matrix.python-version }} biopython=${{ matrix.biopython-version || 'latest' }})
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- '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.80' # first to support Python 3.10 and 3.11
- '' # latest
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@v4
- name: Set cache key
run: echo "DATE=$(date +'%Y-%m-%d')" >> "$GITHUB_ENV"
# While it may be tempting to install Augur using Conda to avoid hardcoding
# the list of dependencies here, installing just the dependencies not
# available on PyPI allows us to test against dependencies installed by pip,
# which may have slightly different versions compared to Conda counterparts.
- name: Install dependencies from Conda
uses: mamba-org/setup-micromamba@v1
with:
create-args: mafft raxml fasttree iqtree vcftools biopython=${{ matrix.biopython-version }} python=${{ matrix.python-version }}
condarc: |
channels:
- conda-forge
- bioconda
channel_priority: strict
cache-environment: true
cache-environment-key: ${{ env.DATE }}
environment-name: augur
# Replace the Conda Augur installation with the local 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
# Only upload coverage for one job
- if: matrix.python-version == '3.11' && matrix.biopython-version == ''
uses: actions/upload-artifact@v4
with:
name: coverage
path: "${{ env.COVERAGE_FILE }}"
# TODO: Use the central pathogen-repo-ci workflow¹. Currently, this is not
# possible because it only supports "stock" docker and conda runtimes.
# ¹ https://github.com/nextstrain/.github/blob/-/.github/workflows/pathogen-repo-ci.yaml
pathogen-repo-ci:
runs-on: ubuntu-latest
continue-on-error: true
env:
repodata_use_zst: true
strategy:
matrix:
include:
- { pathogen: avian-flu, build-args: test_target }
- { pathogen: ebola }
- { pathogen: lassa }
- { pathogen: mumps }
- {
pathogen: ncov,
build-args: all_regions -j 2 --profile nextstrain_profiles/nextstrain-ci,
}
- { pathogen: rsv }
- {
pathogen: seasonal-flu,
build-args: --configfile profiles/ci/builds.yaml -p,
}
- { pathogen: tb }
# Disable some pathogens until pathogen-repo-ci supports custom build directories
# See issue https://github.com/nextstrain/.github/issues/63
# - { pathogen: mpox }
# - { pathogen: zika }
name: pathogen-repo-ci (${{ matrix.pathogen }})
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v4
with:
path: ./augur
- name: Set cache key
run: echo "DATE=$(date +'%Y-%m-%d')" >> "$GITHUB_ENV"
# Set up a Conda environment that replicates Nextstrain's Conda runtime.
- name: Install nextstrain-base from Conda
uses: mamba-org/setup-micromamba@v1
with:
create-args: nextstrain-base
condarc: |
channels:
- nextstrain
- conda-forge
- bioconda
channel_priority: strict
cache-environment: true
cache-environment-key: ${{ env.DATE }}
environment-name: augur
# Replace the Conda Augur installation with the local version.
- run: pip install ./augur
- uses: actions/checkout@v4
with:
repository: nextstrain/${{ matrix.pathogen }}
path: ./pathogen-repo
- name: Copy example data
working-directory: ./pathogen-repo
run: |
if [[ -d example_data ]]; then
mkdir -p data/
cp -r -v example_data/* data/
else
echo No example data to copy.
fi
- run: nextstrain build --ambient ./pathogen-repo ${{ matrix.build-args }}
- if: always()
uses: actions/upload-artifact@v4
with:
name: output-${{ matrix.pathogen }}
path: |
./pathogen-repo/auspice/
./pathogen-repo/results/
./pathogen-repo/benchmarks/
./pathogen-repo/logs/
./pathogen-repo/.snakemake/log/
codecov:
if: github.repository == 'nextstrain/augur'
needs: [pytest-cram]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- run: pip install coverage
- uses: actions/download-artifact@v4
with:
name: coverage
- run: coverage combine .coverage@*
- run: coverage xml
- uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
build-docs:
uses: nextstrain/.github/.github/workflows/docs-ci.yaml@master
with:
docs-directory: docs/
pip-install-target: .[dev]
check-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v5
- uses: actions/checkout@v4
- run: pip install .[dev]
- run: ./devel/regenerate-developer-api-docs
- name: Check for changes
run: |
if [[ -n $(git status --porcelain) ]]; then
git add .
git diff --staged >&2
echo "There are changes that affect the developer API docs. Please update: <https://github.com/nextstrain/augur/blob/-/docs/contribute/DEV_DOCS.md#regenerating-developer-api-docs>" >&2
echo "If there are changes to the Augur CLI, please manually adjust files under 'docs/usage/cli/'." >&2
exit 1
fi