[repo-helper] Configuration Update #268
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,3.12' | |
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,build", experimental: False} | |
- {python-version: "3.12", testenvs: "py312-dev,build", experimental: True} | |
steps: | |
- name: Checkout ποΈ | |
uses: "actions/checkout@v4" | |
- 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@v5" | |
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@v4 | |
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@v4" | |
- name: Setup Python π | |
uses: "actions/setup-python@v5" | |
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@v4 | |
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@v4 | |
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@v4" | |
if: startsWith(github.ref, 'refs/tags/') | |
- name: Setup Python π | |
uses: "actions/setup-python@v5" | |
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 }} |