[pre-commit.ci] pre-commit autoupdate #106
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: Static Analysis & Test | |
on: [push, pull_request] | |
jobs: | |
static-analysis: | |
# We want to run on external PRs, but not on our own internal PRs as they'll | |
# be run by the push to the branch. Without this if check, checks are | |
# duplicated since internal PRs match both the push and pull_request events. | |
# https://github.com/psf/black/blob/f51e53726b39a177355a7917c91c56f390dda7ef/.github/workflows/lint.yml#L7-L12 | |
if: | |
github.event_name == 'push' || | |
github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.x" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox | |
- name: Lint with flake8 | |
run: tox -e flake8 | |
- name: Format with black | |
run: tox -e black | |
test: | |
# We want to run on external PRs, but not on our own internal PRs as they'll | |
# be run by the push to the branch. Without this if check, checks are | |
# duplicated since internal PRs match both the push and pull_request events. | |
if: | |
github.event_name == 'push' || | |
github.event.pull_request.head.repo.full_name != github.repository | |
strategy: | |
matrix: | |
python: ['3.7', '3.8', '3.9', '3.10'] | |
runs-on: 'windows-latest' | |
# Enable registry write testing | |
env: | |
CASEMENT_TEST_WRITE_ENV: 1 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox | |
- name: Run Tox | |
run: | | |
tox -e begin,py | |
- name: Upload coverage | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage | |
path: .coverage.* | |
retention-days: 1 | |
coverage: | |
# We want to run on external PRs, but not on our own internal PRs as they'll | |
# be run by the push to the branch. Without this if check, checks are | |
# duplicated since internal PRs match both the push and pull_request events. | |
if: | |
github.event_name == 'push' || | |
github.event.pull_request.head.repo.full_name != github.repository | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.x" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox | |
# Ensure version.py is created so coverage can read it's source | |
- name: Run begin | |
run: | | |
tox -e begin | |
- name: Download coverage artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: coverage | |
# Tox runs `coverage combine` and `coverage xml` | |
- name: Combine coverage and report | |
run: | | |
tox -e end | |
- name: Pytest Coverage Comment | |
uses: MishaKav/pytest-coverage-comment@main | |
with: | |
pytest-xml-coverage-path: ./coverage.xml | |
unique-id-for-comment: ${{ matrix.python-version }} |