summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2022-12-08 07:41:19 -0500
committerNed Batchelder <ned@nedbatchelder.com>2022-12-08 07:41:19 -0500
commit02cb14bd068211569f4201b6943a345e7125dddb (patch)
tree1b0271f176a559515a50d4221cf4502109d46f82
parentd4f76976a8084622faef86f6083b75b63865ddfd (diff)
downloadpython-coveragepy-git-nedbat/parallel-reports-1504-metacov.tar.gz
temp: don't run any actions on this wip branchnedbat/parallel-reports-1504-metacov
-rw-r--r--.github/workflows/codeql-analysis.yml77
-rw-r--r--.github/workflows/coverage.yml222
-rw-r--r--.github/workflows/dependency-review.yml20
-rw-r--r--.github/workflows/kit.yml243
-rw-r--r--.github/workflows/python-nightly.yml88
-rw-r--r--.github/workflows/quality.yml82
-rw-r--r--.github/workflows/testsuite.yml99
7 files changed, 0 insertions, 831 deletions
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index ad316eb4..00000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,77 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: "CodeQL"
-
-on:
- push:
- branches:
- - master
- pull_request:
- # The branches below must be a subset of the branches above
- branches:
- - master
- schedule:
- - cron: '30 20 * * 6'
-
-permissions:
- contents: read
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language:
- - python
- - javascript
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
- # Learn more about CodeQL language support at https://git.io/codeql-language-support
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v2
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
- # queries: ./path/to/local/query, your-org/your-repo/queries@main
-
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v2
-
- # â„šī¸ Command-line programs to run using the OS shell.
- # 📚 https://git.io/JvXDl
-
- # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- #- run: |
- # make bootstrap
- # make release
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
deleted file mode 100644
index aa740fa5..00000000
--- a/.github/workflows/coverage.yml
+++ /dev/null
@@ -1,222 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
-
-name: "Coverage"
-
-on:
- # As currently structured, this adds too many jobs (checks?), so don't run it
- # on pull requests yet.
- push:
- branches:
- - master
- - "**/*metacov*"
- workflow_dispatch:
-
-defaults:
- run:
- shell: bash
-
-env:
- PIP_DISABLE_PIP_VERSION_CHECK: 1
- FORCE_COLOR: 1 # Get colored pytest output
-
-permissions:
- contents: read
-
-concurrency:
- group: "${{ github.workflow }}-${{ github.ref }}"
- cancel-in-progress: true
-
-jobs:
- coverage:
- name: "Python ${{ matrix.python-version }} on ${{ matrix.os }}"
- runs-on: "${{ matrix.os }}"
-
- strategy:
- matrix:
- os:
- - ubuntu-latest
- - macos-latest
- - windows-latest
- python-version:
- # When changing this list, be sure to check the [gh-actions] list in
- # tox.ini so that tox will run properly. PYVERSIONS
- # Available versions:
- # https://github.com/actions/python-versions/blob/main/versions-manifest.json
- - "3.7"
- - "3.8"
- - "3.9"
- - "3.10"
- - "3.11"
- - "pypy-3.7"
- exclude:
- # Windows PyPy doesn't seem to work?
- - os: windows-latest
- python-version: "pypy-3.7"
- # Mac PyPy always takes the longest, and doesn't add anything.
- - os: macos-latest
- python-version: "pypy-3.7"
- # If one job fails, stop the whole thing.
- fail-fast: true
-
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v3"
-
- - name: "Set up Python"
- uses: "actions/setup-python@v4"
- with:
- python-version: "${{ matrix.python-version }}"
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install dependencies"
- run: |
- set -xe
- python -VV
- python -m site
- python -m pip install --require-hashes -r requirements/tox.pip
-
- - name: "Run tox coverage for ${{ matrix.python-version }}"
- env:
- COVERAGE_COVERAGE: "yes"
- COVERAGE_CONTEXT: "${{ matrix.python-version }}.${{ matrix.os }}"
- run: |
- set -xe
- python -m tox
-
- - name: "Upload coverage data"
- uses: actions/upload-artifact@v3
- with:
- name: metacov
- path: .metacov.*
-
- combine:
- name: "Combine coverage data"
- needs: coverage
- runs-on: ubuntu-latest
- outputs:
- total: ${{ steps.total.outputs.total }}
- env:
- COVERAGE_RCFILE: "metacov.ini"
-
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v3"
-
- - name: "Set up Python"
- uses: "actions/setup-python@v4"
- with:
- python-version: "3.7" # Minimum of PYVERSIONS
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install dependencies"
- run: |
- set -xe
- python -VV
- python -m site
- python -m pip install -e .
- python igor.py zip_mods
-
- - name: "Download coverage data"
- uses: actions/download-artifact@v3
- with:
- name: metacov
-
- - name: "Combine and report"
- id: combine
- env:
- COVERAGE_CONTEXT: "yes"
- run: |
- set -xe
- python igor.py combine_html
-
- - name: "Upload HTML report"
- uses: actions/upload-artifact@v3
- with:
- name: html_report
- path: htmlcov
-
- - name: "Get total"
- id: total
- run: |
- echo "total=$(python -m coverage report --format=total)" >> $GITHUB_OUTPUT
-
- publish:
- name: "Publish coverage report"
- needs: combine
- runs-on: ubuntu-latest
-
- steps:
- - name: "Checkout reports repo"
- run: |
- set -xe
- git clone --depth=1 --no-checkout https://${{ secrets.COVERAGE_REPORTS_TOKEN }}@github.com/nedbat/coverage-reports reports_repo
- cd reports_repo
- git sparse-checkout init --cone
- git sparse-checkout set --skip-checks '/*' '!/reports'
- git config user.name nedbat
- git config user.email ned@nedbatchelder.com
- git checkout main
-
- - name: "Compute info for later steps"
- id: info
- run: |
- set -xe
- export SHA10=$(echo ${{ github.sha }} | cut -c 1-10)
- export SLUG=$(date +'%Y%m%d')_$SHA10
- export REPORT_DIR=reports/$SLUG/htmlcov
- export REF="${{ github.ref }}"
- echo "total=${{ needs.combine.outputs.total }}" >> $GITHUB_ENV
- echo "sha10=$SHA10" >> $GITHUB_ENV
- echo "slug=$SLUG" >> $GITHUB_ENV
- echo "report_dir=$REPORT_DIR" >> $GITHUB_ENV
- echo "url=https://nedbat.github.io/coverage-reports/$REPORT_DIR" >> $GITHUB_ENV
- echo "branch=${REF#refs/heads/}" >> $GITHUB_ENV
-
- - name: "Download coverage HTML report"
- uses: actions/download-artifact@v3
- with:
- name: html_report
- path: reports_repo/${{ env.report_dir }}
-
- - name: "Push to report repo"
- env:
- COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
- run: |
- set -xe
- # Make the redirect to the latest report.
- echo "<html><head>" > reports_repo/latest.html
- echo "<meta http-equiv='refresh' content='0;url=${{ env.url }}' />" >> reports_repo/latest.html
- echo "<body>Coverage report redirect..." >> reports_repo/latest.html
- # Make the commit message.
- echo "${{ env.total }}% - $COMMIT_MESSAGE" > commit.txt
- echo "" >> commit.txt
- echo "${{ env.url }}" >> commit.txt
- echo "${{ env.sha10 }}: ${{ env.branch }}" >> commit.txt
- # Commit.
- cd ./reports_repo
- git sparse-checkout set --skip-checks '/*' '${{ env.report_dir }}'
- rm ${{ env.report_dir }}/.gitignore
- git add ${{ env.report_dir }} latest.html
- git commit --file=../commit.txt
- git push
-
- - name: "Create badge"
- # https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5
- uses: schneegans/dynamic-badges-action@5d424ad4060f866e4d1dab8f8da0456e6b1c4f56
- with:
- auth: ${{ secrets.METACOV_GIST_SECRET }}
- gistID: 8c6980f77988a327348f9b02bbaf67f5
- filename: metacov.json
- label: Coverage
- message: ${{ env.total }}%
- minColorRange: 60
- maxColorRange: 95
- valColorRange: ${{ env.total }}
-
- - name: "Create summary"
- run: |
- echo '### Total coverage: ${{ env.total }}%' >> $GITHUB_STEP_SUMMARY
- echo '[${{ env.url }}](${{ env.url }})' >> $GITHUB_STEP_SUMMARY
diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml
deleted file mode 100644
index 34b14c39..00000000
--- a/.github/workflows/dependency-review.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-# Dependency Review Action
-#
-# This Action will scan dependency manifest files that change as part of a Pull Reqest, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
-#
-# Source repository: https://github.com/actions/dependency-review-action
-# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
-name: 'Dependency Review'
-on: [pull_request]
-
-permissions:
- contents: read
-
-jobs:
- dependency-review:
- runs-on: ubuntu-latest
- steps:
- - name: 'Checkout Repository'
- uses: actions/checkout@v3
- - name: 'Dependency Review'
- uses: actions/dependency-review-action@v3
diff --git a/.github/workflows/kit.yml b/.github/workflows/kit.yml
deleted file mode 100644
index f835786e..00000000
--- a/.github/workflows/kit.yml
+++ /dev/null
@@ -1,243 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
-
-# This file is meant to be processed with cog.
-# Running "make prebuild" will bring it up to date.
-
-# Based on:
-# https://github.com/joerick/cibuildwheel/blob/master/examples/github-deploy.yml
-
-# To test installing wheels without uploading them to PyPI:
-#
-# $ mkdir /tmp/pypi
-# $ cp dist/* /tmp/pypi
-# $ python -m pip install piprepo
-# $ piprepo build /tmp/pypi
-# $ python -m pip install -v coverage --index-url=file:///tmp/pypi/simple
-#
-# Note that cibuildwheel recommends not shipping wheels for pre-release versions
-# of Python: https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons
-# So we don't.
-
-name: "Kits"
-
-on:
- push:
- branches:
- # Don't build kits all the time, but do if the branch is about kits.
- - "**/*kit*"
- workflow_dispatch:
- repository_dispatch:
- types:
- - build-kits
-
-defaults:
- run:
- shell: bash
-
-env:
- PIP_DISABLE_PIP_VERSION_CHECK: 1
-
-permissions:
- contents: read
-
-concurrency:
- group: "${{ github.workflow }}-${{ github.ref }}"
- cancel-in-progress: true
-
-jobs:
- wheels:
- name: "Build ${{ matrix.os }} ${{ matrix.py }} ${{ matrix.arch }} wheels"
- runs-on: ${{ matrix.os }}-latest
- strategy:
- matrix:
- include:
- # To change the matrix, edit the choices, then process this file with cog:
- #
- # $ make workflows
- #
- # which runs:
- #
- # $ python -m pip install cogapp
- # $ python -m cogapp -crP .github/workflows/kit.yml
- #
- # Choices come from the table on https://pypi.org/project/cibuildwheel/
- #
- # [[[cog
- # #----- vvv Choices for the matrix vvv -----
- #
- # # Operating systems:
- # oss = ["ubuntu", "macos", "windows"]
- #
- # # For each OS, what arch to use with cibuildwheel:
- # os_archs = {
- # "ubuntu": ["x86_64", "i686", "aarch64"],
- # "macos": ["arm64", "x86_64"],
- # "windows": ["x86", "AMD64"],
- # }
- # # PYVERSIONS. Available versions:
- # # https://github.com/actions/python-versions/blob/main/versions-manifest.json
- # # Include prereleases if they are at rc stage.
- # pys = ["cp37", "cp38", "cp39", "cp310", "cp311"]
- #
- # # Some OS/arch combinations need overrides for the Python versions:
- # os_arch_pys = {
- # ("macos", "arm64"): ["cp38", "cp39", "cp310", "cp311"],
- # }
- #
- # #----- ^^^ ---------------------- ^^^ -----
- #
- # import json
- # for the_os in oss:
- # for the_arch in os_archs[the_os]:
- # for the_py in os_arch_pys.get((the_os, the_arch), pys):
- # them = {
- # "os": the_os,
- # "py": the_py,
- # "arch": the_arch,
- # }
- # print(f"- {json.dumps(them)}")
- # ]]]
- - {"os": "ubuntu", "py": "cp37", "arch": "x86_64"}
- - {"os": "ubuntu", "py": "cp38", "arch": "x86_64"}
- - {"os": "ubuntu", "py": "cp39", "arch": "x86_64"}
- - {"os": "ubuntu", "py": "cp310", "arch": "x86_64"}
- - {"os": "ubuntu", "py": "cp311", "arch": "x86_64"}
- - {"os": "ubuntu", "py": "cp37", "arch": "i686"}
- - {"os": "ubuntu", "py": "cp38", "arch": "i686"}
- - {"os": "ubuntu", "py": "cp39", "arch": "i686"}
- - {"os": "ubuntu", "py": "cp310", "arch": "i686"}
- - {"os": "ubuntu", "py": "cp311", "arch": "i686"}
- - {"os": "ubuntu", "py": "cp37", "arch": "aarch64"}
- - {"os": "ubuntu", "py": "cp38", "arch": "aarch64"}
- - {"os": "ubuntu", "py": "cp39", "arch": "aarch64"}
- - {"os": "ubuntu", "py": "cp310", "arch": "aarch64"}
- - {"os": "ubuntu", "py": "cp311", "arch": "aarch64"}
- - {"os": "macos", "py": "cp38", "arch": "arm64"}
- - {"os": "macos", "py": "cp39", "arch": "arm64"}
- - {"os": "macos", "py": "cp310", "arch": "arm64"}
- - {"os": "macos", "py": "cp311", "arch": "arm64"}
- - {"os": "macos", "py": "cp37", "arch": "x86_64"}
- - {"os": "macos", "py": "cp38", "arch": "x86_64"}
- - {"os": "macos", "py": "cp39", "arch": "x86_64"}
- - {"os": "macos", "py": "cp310", "arch": "x86_64"}
- - {"os": "macos", "py": "cp311", "arch": "x86_64"}
- - {"os": "windows", "py": "cp37", "arch": "x86"}
- - {"os": "windows", "py": "cp38", "arch": "x86"}
- - {"os": "windows", "py": "cp39", "arch": "x86"}
- - {"os": "windows", "py": "cp310", "arch": "x86"}
- - {"os": "windows", "py": "cp311", "arch": "x86"}
- - {"os": "windows", "py": "cp37", "arch": "AMD64"}
- - {"os": "windows", "py": "cp38", "arch": "AMD64"}
- - {"os": "windows", "py": "cp39", "arch": "AMD64"}
- - {"os": "windows", "py": "cp310", "arch": "AMD64"}
- - {"os": "windows", "py": "cp311", "arch": "AMD64"}
- # [[[end]]] (checksum: ded8a9f214bf59776562d91ae6828863)
- fail-fast: false
-
- steps:
- - name: "Setup QEMU"
- if: matrix.os == 'ubuntu'
- uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18
- with:
- platforms: arm64
-
- - name: "Check out the repo"
- uses: actions/checkout@v3
-
- - name: "Install Python 3.8"
- uses: actions/setup-python@v4
- with:
- python-version: "3.8"
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install tools"
- run: |
- python -m pip install --require-hashes -r requirements/kit.pip
-
- - name: "Build wheels"
- env:
- CIBW_BUILD: ${{ matrix.py }}-*
- CIBW_ARCHS: ${{ matrix.arch }}
- CIBW_ENVIRONMENT: PIP_DISABLE_PIP_VERSION_CHECK=1
- CIBW_TEST_COMMAND: python -c "from coverage.tracer import CTracer; print('CTracer OK!')"
- run: |
- python -m cibuildwheel --output-dir wheelhouse
-
- - name: "List wheels"
- run: |
- ls -al wheelhouse/
-
- - name: "Upload wheels"
- uses: actions/upload-artifact@v3
- with:
- name: dist
- path: wheelhouse/*.whl
-
- sdist:
- name: "Build source distribution"
- runs-on: ubuntu-latest
- steps:
- - name: "Check out the repo"
- uses: actions/checkout@v3
-
- - name: "Install Python 3.8"
- uses: actions/setup-python@v4
- with:
- python-version: "3.8"
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install tools"
- run: |
- python -m pip install --require-hashes -r requirements/kit.pip
-
- - name: "Build sdist"
- run: |
- python -m build
-
- - name: "List tarballs"
- run: |
- ls -al dist/
-
- - name: "Upload sdist"
- uses: actions/upload-artifact@v3
- with:
- name: dist
- path: dist/*.tar.gz
-
- pypy:
- name: "Build PyPy wheel"
- runs-on: ubuntu-latest
- steps:
- - name: "Check out the repo"
- uses: actions/checkout@v3
-
- - name: "Install PyPy"
- uses: actions/setup-python@v4
- with:
- # PYVERSIONS
- python-version: "pypy-3.7"
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install requirements"
- run: |
- pypy3 -m pip install -r requirements/kit.pip
-
- - name: "Build wheel"
- run: |
- # One wheel works for all PyPy versions.
- # yes, this is weird syntax: https://github.com/pypa/build/issues/202
- pypy3 -m build -w -C="--global-option=--python-tag" -C="--global-option=pp36.pp37.pp38"
-
- - name: "List wheels"
- run: |
- ls -al dist/
-
- - name: "Upload wheels"
- uses: actions/upload-artifact@v3
- with:
- name: dist
- path: dist/*.whl
diff --git a/.github/workflows/python-nightly.yml b/.github/workflows/python-nightly.yml
deleted file mode 100644
index 88b2b389..00000000
--- a/.github/workflows/python-nightly.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
-
-name: "Python Nightly Tests"
-
-on:
- push:
- branches:
- - "**/*nightly*"
- schedule:
- # Run at 2:22am early every morning Eastern time (6/7:22 UTC)
- # so that we get tips of CPython development tested.
- # https://crontab.guru/#22_7_%2a_%2a_%2a
- - cron: "22 7 * * *"
- workflow_dispatch:
-
-defaults:
- run:
- shell: bash
-
-env:
- PIP_DISABLE_PIP_VERSION_CHECK: 1
- COVERAGE_IGOR_VERBOSE: 1
-
-permissions:
- contents: read
-
-concurrency:
- group: "${{ github.workflow }}-${{ github.ref }}"
- cancel-in-progress: true
-
-jobs:
- tests:
- name: "Python ${{ matrix.python-version }}"
- # Choose a recent Ubuntu that deadsnakes still builds all the versions for.
- # For example, deadsnakes doesn't provide 3.10 nightly for 22.04 (jammy)
- # because jammy ships 3.10, and deadsnakes doesn't want to clobber it.
- # https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly/+packages
- # https://github.com/deadsnakes/issues/issues/234
- runs-on: ubuntu-20.04
-
- strategy:
- matrix:
- python-version:
- # When changing this list, be sure to check the [gh-actions] list in
- # tox.ini so that tox will run properly. PYVERSIONS
- # Available versions:
- # https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly/+packages
- - "3.10-dev"
- - "3.11-dev"
- - "3.12-dev"
- # https://github.com/actions/setup-python#available-versions-of-pypy
- - "pypy-3.7-nightly"
- - "pypy-3.8-nightly"
- - "pypy-3.9-nightly"
- fail-fast: false
-
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v3"
-
- - name: "Install ${{ matrix.python-version }} with deadsnakes"
- uses: deadsnakes/action@e3117c2981fd8afe4af79f3e1be80066c82b70f5
- if: "!startsWith(matrix.python-version, 'pypy-')"
- with:
- python-version: "${{ matrix.python-version }}"
-
- - name: "Install ${{ matrix.python-version }} with setup-python"
- uses: "actions/setup-python@v4"
- if: "startsWith(matrix.python-version, 'pypy-')"
- with:
- python-version: "${{ matrix.python-version }}"
-
- - name: "Show diagnostic info"
- run: |
- set -xe
- python -VV
- python -m site
- python -m coverage debug sys
- python -m coverage debug pybehave
-
- - name: "Install dependencies"
- run: |
- python -m pip install --require-hashes -r requirements/tox.pip
-
- - name: "Run tox"
- run: |
- python -m tox -- -rfsEX
diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml
deleted file mode 100644
index 5483f7b8..00000000
--- a/.github/workflows/quality.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
-
-name: "Quality"
-
-on:
- push:
- branches:
- - master
- - nedbat/*
- pull_request:
- workflow_dispatch:
-
-defaults:
- run:
- shell: bash
-
-env:
- PIP_DISABLE_PIP_VERSION_CHECK: 1
-
-permissions:
- contents: read
-
-concurrency:
- group: "${{ github.workflow }}-${{ github.ref }}"
- cancel-in-progress: true
-
-jobs:
- lint:
- name: "Pylint etc"
- # Because pylint can report different things on different OS's (!)
- # (https://github.com/PyCQA/pylint/issues/3489), run this on Mac where local
- # pylint gets run.
- runs-on: macos-latest
-
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v3"
-
- - name: "Install Python"
- uses: "actions/setup-python@v4"
- with:
- python-version: "3.7" # Minimum of PYVERSIONS
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install dependencies"
- run: |
- set -xe
- python -VV
- python -m site
- python -m pip install --require-hashes -r requirements/tox.pip
-
- - name: "Tox lint"
- run: |
- python -m tox -e lint
-
- doc:
- name: "Build docs"
- runs-on: ubuntu-latest
-
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v3"
-
- - name: "Install Python"
- uses: "actions/setup-python@v4"
- with:
- python-version: "3.7" # Minimum of PYVERSIONS
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install dependencies"
- run: |
- set -xe
- python -VV
- python -m site
- python -m pip install --require-hashes -r requirements/tox.pip
-
- - name: "Tox doc"
- run: |
- python -m tox -e doc
diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml
deleted file mode 100644
index 30b83856..00000000
--- a/.github/workflows/testsuite.yml
+++ /dev/null
@@ -1,99 +0,0 @@
-# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
-# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
-
-name: "Tests"
-
-on:
- push:
- branches:
- - master
- - nedbat/*
- pull_request:
- workflow_dispatch:
-
-defaults:
- run:
- shell: bash
-
-env:
- PIP_DISABLE_PIP_VERSION_CHECK: 1
- COVERAGE_IGOR_VERBOSE: 1
- FORCE_COLOR: 1 # Get colored pytest output
-
-permissions:
- contents: read
-
-concurrency:
- group: "${{ github.workflow }}-${{ github.ref }}"
- cancel-in-progress: true
-
-jobs:
- tests:
- name: "${{ matrix.python-version }} on ${{ matrix.os }}"
- runs-on: "${{ matrix.os }}-latest"
-
- strategy:
- matrix:
- os:
- - ubuntu
- - macos
- - windows
- python-version:
- # When changing this list, be sure to check the [gh-actions] list in
- # tox.ini so that tox will run properly. PYVERSIONS
- # Available versions:
- # https://github.com/actions/python-versions/blob/main/versions-manifest.json
- # https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#available-versions-of-python-and-pypy
- - "3.7"
- - "3.8"
- - "3.9"
- - "3.10"
- - "3.11"
- - "pypy-3.7"
- - "pypy-3.9"
- fail-fast: false
-
- steps:
- - name: "Check out the repo"
- uses: "actions/checkout@v3"
-
- - name: "Set up Python"
- uses: "actions/setup-python@v4"
- with:
- python-version: "${{ matrix.python-version }}"
- cache: pip
- cache-dependency-path: 'requirements/*.pip'
-
- - name: "Install dependencies"
- run: |
- set -xe
- python -VV
- python -m site
- python -m pip install --require-hashes -r requirements/tox.pip
- # For extreme debugging:
- # python -c "import urllib.request as r; exec(r.urlopen('https://bit.ly/pydoctor').read())"
-
- - name: "Run tox for ${{ matrix.python-version }}"
- run: |
- python -m tox -- -rfsEX
-
- - name: "Retry tox for ${{ matrix.python-version }}"
- if: failure()
- run: |
- # `exit 1` makes sure that the job remains red with flaky runs
- python -m tox -- -rfsEX --lf -vvvvv && exit 1
-
- # This job aggregates test results. It's the required check for branch protection.
- # https://github.com/marketplace/actions/alls-green#why
- # https://github.com/orgs/community/discussions/33579
- success:
- name: Tests successful
- if: always()
- needs:
- - tests
- runs-on: ubuntu-latest
- steps:
- - name: Decide whether the needed jobs succeeded or failed
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
- with:
- jobs: ${{ toJSON(needs) }}