Wv scraper #721
Workflow file for this run
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: Testing and distribution | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
lint-python: | |
name: Lint Python code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: lint | |
name: Lint | |
run: make lint | |
mypy-python: | |
name: Static type check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: mypy | |
name: Mypy | |
run: make mypy | |
test-docs: | |
name: Test Sphinx build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: tally | |
name: Tally sources | |
run: make tally-sources | |
- id: build | |
name: Build | |
run: make test-docs | |
- id: save | |
name: Save artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: docs-${{ github.run_number }} | |
path: ./docs | |
if-no-files-found: error | |
test-python: | |
strategy: | |
matrix: | |
python: ["3.7", "3.8", "3.9", "3.10"] | |
name: Test Python code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: run | |
name: Run tests | |
run: make test | |
- id: coverage | |
name: Coverage report | |
run: make coverage | |
test-build: | |
name: Build Python package | |
runs-on: ubuntu-latest | |
needs: [test-python] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install pipenv | |
run: pipx install pipenv | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
cache: 'pipenv' | |
- id: pipenv-install | |
name: Install Python dependencies | |
run: pipenv install --dev --python `which python` | |
- id: build | |
name: Build release | |
run: make build-release | |
- id: check | |
name: Check release | |
run: make check-release | |
- id: save | |
name: Save artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: test-release-${{ github.run_number }} | |
path: ./dist | |
if-no-files-found: error | |
test-release: | |
name: Test PyPI release | |
runs-on: ubuntu-latest | |
needs: [test-build] | |
if: startsWith(github.ref, 'refs/tags') == 0 | |
steps: | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v1 | |
with: | |
python-version: '3.9' | |
- id: fetch | |
name: Fetch artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: test-release-${{ github.run_number }} | |
path: ./dist | |
- id: publish | |
name: Publish release | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
env: | |
PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | |
if: env.PYPI_API_TOKEN != null | |
with: | |
user: __token__ | |
password: ${{ secrets.TEST_PYPI_API_TOKEN }} | |
repository_url: https://test.pypi.org/legacy/ | |
verbose: true | |
verify_metadata: false | |
tag-release: | |
name: Tagged PyPI release | |
runs-on: ubuntu-latest | |
needs: [test-build] | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
steps: | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.9' | |
- id: fetch | |
name: Fetch artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: test-release-${{ github.run_number }} | |
path: ./dist | |
- id: publish | |
name: Publish release | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
verbose: true | |
verify_metadata: false |