[pre-commit.ci] pre-commit autoupdate #980
This file contains 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: Continuous Integration Workflow | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
run-tests: | |
name: Run tests for ${{ matrix.os }} on ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
python-version: ['3.6', '3.7', '3.8'] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
python-version: ${{ matrix.python-version }} | |
- name: Install core dependencies. | |
shell: bash -l {0} | |
run: conda install -c conda-forge tox-conda coverage | |
- name: Install fixes for Python 3+ on Windows | |
if: runner.os == 'Windows' | |
shell: bash -l {0} | |
run: conda install -c conda-forge bokeh conda-build numpy python-snappy scipy | |
# Unit, integration, and end-to-end tests. | |
- name: Run unit tests and doctests. | |
shell: bash -l {0} | |
run: tox -e pytest -- src tests -m "unit or (not integration and not end_to_end and not optional)" --cov=./ --cov-report=xml -n auto | |
- name: Upload coverage report for unit tests and doctests. | |
if: runner.os == 'Linux' && matrix.python-version == '3.8' | |
shell: bash -l {0} | |
run: bash <(curl -s https://codecov.io/bash) -F unit -c | |
- name: Run integration tests. | |
shell: bash -l {0} | |
run: tox -e pytest -- src tests -m integration --cov=./ --cov-report=xml -n auto | |
- name: Upload coverage reports of integration tests. | |
if: runner.os == 'Linux' && matrix.python-version == '3.8' | |
shell: bash -l {0} | |
run: bash <(curl -s https://codecov.io/bash) -F integration -c | |
- name: Run end-to-end tests. | |
shell: bash -l {0} | |
run: tox -e pytest -- src tests -m end_to_end --cov=./ --cov-report=xml -n auto | |
- name: Upload coverage reports of end-to-end tests. | |
if: runner.os == 'Linux' && matrix.python-version == '3.8' | |
shell: bash -l {0} | |
run: bash <(curl -s https://codecov.io/bash) -F end_to_end -c | |
- name: Validate codecov.yml | |
if: runner.os == 'Linux' && matrix.python-version == '3.8' | |
shell: bash -l {0} | |
run: cat codecov.yml | curl --data-binary @- https://codecov.io/validate | |
docs: | |
name: Run documentation. | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
- name: Install core dependencies. | |
shell: bash -l {0} | |
run: conda install -c conda-forge tox-conda | |
- name: Build docs | |
shell: bash -l {0} | |
run: tox -e sphinx |