[repo-helper] Configuration Update #134
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
# This file is managed by 'repo_helper'. Don't edit it directly. | |
--- | |
name: Linux | |
on: | |
push: | |
branches-ignore: | |
- 'repo-helper-update' | |
- 'pre-commit-ci-update-config' | |
- 'imgbot' | |
tags: | |
- '*' | |
pull_request: | |
permissions: | |
actions: write | |
issues: write | |
contents: read | |
jobs: | |
tests: | |
name: "ubuntu-20.04 / Python ${{ matrix.config.python-version }}" | |
runs-on: "ubuntu-20.04" | |
continue-on-error: ${{ matrix.config.experimental }} | |
env: | |
USING_COVERAGE: '3.6,3.7,3.8,3.9,3.10,3.11,pypy-3.6,pypy-3.7,pypy-3.8,pypy-3.9' | |
strategy: | |
fail-fast: False | |
matrix: | |
config: | |
- {python-version: "3.6", testenvs: "py36,build", experimental: False} | |
- {python-version: "3.7", testenvs: "py37,build", experimental: False} | |
- {python-version: "3.8", testenvs: "py38,build", experimental: False} | |
- {python-version: "3.9", testenvs: "py39,build", experimental: False} | |
- {python-version: "3.10", testenvs: "py310,build", experimental: False} | |
- {python-version: "3.11", testenvs: "py311-dev,build", experimental: True} | |
- {python-version: "pypy-3.6", testenvs: "pypy36,build", experimental: False} | |
- {python-version: "pypy-3.7", testenvs: "pypy37,build", experimental: True} | |
- {python-version: "pypy-3.8", testenvs: "pypy38,build", experimental: True} | |
- {python-version: "pypy-3.9", testenvs: "pypy39,build", experimental: True} | |
steps: | |
- name: Checkout 🛎️ | |
uses: "actions/checkout@v3" | |
- name: Check for changed files | |
if: startsWith(github.ref, 'refs/tags/') != true | |
uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
list-files: "json" | |
filters: | | |
code: | |
- '!(doc-source/**|CONTRIBUTING.rst|.imgbotconfig|.pre-commit-config.yaml|.pylintrc|.readthedocs.yml)' | |
- name: Setup Python 🐍 | |
id: setup-python | |
if: ${{ steps.changes.outputs.code == 'true' || steps.changes.outcome == 'skipped' }} | |
uses: "actions/setup-python@v4" | |
with: | |
python-version: "${{ matrix.config.python-version }}" | |
- name: Install dependencies 🔧 | |
if: steps.setup-python.outcome == 'success' | |
run: | | |
python -VV | |
python -m site | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install --upgrade tox~=3.0 virtualenv!=20.16.0 | |
python -m pip install --upgrade coverage_pyver_pragma | |
- name: "Run Tests for Python ${{ matrix.config.python-version }}" | |
if: steps.setup-python.outcome == 'success' | |
run: python -m tox -e "${{ matrix.config.testenvs }}" -s false | |
- name: "Upload Coverage 🚀" | |
uses: actions/upload-artifact@v3 | |
if: ${{ always() && steps.setup-python.outcome == 'success' }} | |
with: | |
name: "coverage-${{ matrix.config.python-version }}" | |
path: .coverage | |
Coverage: | |
needs: tests | |
runs-on: "ubuntu-20.04" | |
steps: | |
- name: Checkout 🛎️ | |
uses: "actions/checkout@v3" | |
- name: Setup Python 🐍 | |
uses: "actions/setup-python@v4" | |
with: | |
python-version: 3.8 | |
- name: Install dependencies 🔧 | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install --upgrade "coveralls>=3.0.0" coverage_pyver_pragma | |
- name: "Download Coverage 🪂" | |
uses: actions/download-artifact@v3 | |
with: | |
path: coverage | |
- name: Display structure of downloaded files | |
id: show | |
run: ls -R | |
working-directory: coverage | |
continue-on-error: true | |
- name: Combine Coverage 👷 | |
if: ${{ steps.show.outcome != 'failure' }} | |
run: | | |
shopt -s globstar | |
python -m coverage combine coverage/**/.coverage | |
- name: "Upload Combined Coverage Artefact 🚀" | |
if: ${{ steps.show.outcome != 'failure' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "combined-coverage" | |
path: .coverage | |
- name: "Upload Combined Coverage to Coveralls" | |
if: ${{ steps.show.outcome != 'failure' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
coveralls --service=github | |
Deploy: | |
needs: tests | |
runs-on: "ubuntu-20.04" | |
steps: | |
- name: Checkout 🛎️ | |
uses: "actions/checkout@v3" | |
if: startsWith(github.ref, 'refs/tags/') | |
- name: Setup Python 🐍 | |
uses: "actions/setup-python@v4" | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
python-version: 3.8 | |
- name: Install dependencies 🔧 | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install --upgrade tox~=3.0 | |
- name: Build distributions 📦 | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
tox -e build | |
- name: Upload distribution to PyPI 🚀 | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: pypa/gh-action-pypi-publish@v1.4.2 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_TOKEN }} | |
skip_existing: true | |
- name: Close milestone 🚪 | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
python -m pip install --upgrade github3.py packaging | |
python .github/milestones.py | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |