[pre-commit.ci] pre-commit autoupdate #881
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: | |
- '*' | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
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.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 | |
############################################################################### | |
# tox-conda fixes on Windows (https://github.com/tox-dev/tox-conda/issues/37) # | |
############################################################################### | |
- name: Install fixes for Python 3+ on Windows | |
if: runner.os == 'Windows' | |
shell: bash -l {0} | |
run: conda install -c conda-forge -c opensourceeconomics conda-build estimagic matplotlib python-snappy | |
############### | |
# Test Matrix # | |
############### | |
# Unit tests. | |
- name: Run unit tests and doctests. | |
shell: bash -l {0} | |
run: tox -e pytest -- -m "not slow and not integration and not end_to_end" --cov=./ --cov-report=xml -n auto | |
- name: Upload coverage report | |
if: runner.os == 'Linux' && matrix.python-version == '3.8' | |
shell: bash -l {0} | |
run: bash <(curl -s https://codecov.io/bash) -F unit -c | |
# Integration tests. | |
- name: Run integration tests. | |
shell: bash -l {0} | |
run: tox -e pytest -- -m "not slow and integration" --cov=./ --cov-report=xml -n auto | |
- name: Upload coverage report | |
if: runner.os == 'Linux' && matrix.python-version == '3.8' | |
shell: bash -l {0} | |
run: bash <(curl -s https://codecov.io/bash) -F integration -c | |
# End-to-end tests. | |
- name: Run end_to_end tests. | |
shell: bash -l {0} | |
run: tox -e pytest -- -m "not slow and end_to_end" --cov=./ --cov-report=xml -n auto | |
- name: Upload coverage report | |
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 | |
################################## | |
# Validate codecov configuration # | |
################################## | |
- 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 | |
pre-commit: | |
name: Run pre-commit. | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v1 | |
with: | |
python-version: 3.8 | |
- name: Install dependencies | |
run: pip install tox | |
- name: Run pre-commit | |
run: tox -e pre-commit | |
docs: | |
name: Run documentation. | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
python-version: 3.8 | |
- 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 |