Skip to content

Fix skip bug in which if exception group has all skips it reported error instead of skip #7228

Fix skip bug in which if exception group has all skips it reported error instead of skip

Fix skip bug in which if exception group has all skips it reported error instead of skip #7228

Workflow file for this run

name: test
on:
push:
branches:
- main
- "[0-9]+.[0-9]+.x"
- "test-me-*"
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+rc[0-9]+"
pull_request:
branches:
- main
- "[0-9]+.[0-9]+.x"
types:
- opened # default
- synchronize # default
- reopened # default
- ready_for_review # used in PRs created from the release workflow
workflow_dispatch: # allows manual triggering of the workflow
env:
PYTEST_ADDOPTS: "--color=yes"
# Cancel running jobs for the same workflow and branch.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# Set permissions at the job level.
permissions: {}
jobs:
package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
persist-credentials: false
- name: Build and Check Package
uses: hynek/build-and-inspect-python-package@c52c3a4710070b50470d903818a7b25115dcd076
build:
needs: [package]
runs-on: ${{ matrix.os }}
timeout-minutes: 45
permissions:
contents: read
strategy:
fail-fast: false
matrix:
name: [
"windows-py310-unittest-asynctest",
"windows-py310-unittest-twisted24",
"windows-py310-unittest-twisted25",
"windows-py310-pluggy",
"windows-py310-xdist",
"windows-py311",
"windows-py312",
"windows-py313",
"windows-py314",
"ubuntu-py310-unittest-asynctest",
"ubuntu-py310-unittest-twisted24",
"ubuntu-py310-unittest-twisted25",
"ubuntu-py310-lsof-numpy-pexpect",
"ubuntu-py310-pluggy",
"ubuntu-py310-freeze",
"ubuntu-py310-xdist",
"ubuntu-py311",
"ubuntu-py312",
"ubuntu-py313-pexpect",
"ubuntu-py314",
"ubuntu-pypy3-xdist",
"macos-py310",
"macos-py312",
"macos-py313",
"macos-py314",
"doctesting",
"plugins",
]
include:
# Use separate jobs for different unittest flavors (twisted, asynctest) to ensure proper coverage.
- name: "windows-py310-unittest-asynctest"
python: "3.10"
os: windows-latest
tox_env: "py310-asynctest"
use_coverage: true
- name: "windows-py310-unittest-twisted24"
python: "3.10"
os: windows-latest
tox_env: "py310-twisted24"
use_coverage: true
- name: "windows-py310-unittest-twisted25"
python: "3.10"
os: windows-latest
tox_env: "py310-twisted25"
use_coverage: true
- name: "windows-py310-pluggy"
python: "3.10"
os: windows-latest
tox_env: "py310-pluggymain-pylib-xdist"
- name: "windows-py310-xdist"
python: "3.10"
os: windows-latest
tox_env: "py310-xdist"
- name: "windows-py311"
python: "3.11"
os: windows-latest
tox_env: "py311"
- name: "windows-py312"
python: "3.12"
os: windows-latest
tox_env: "py312"
- name: "windows-py313"
python: "3.13"
os: windows-latest
tox_env: "py313"
- name: "windows-py314"
python: "3.14"
os: windows-latest
tox_env: "py314"
# Use separate jobs for different unittest flavors (twisted, asynctest) to ensure proper coverage.
- name: "ubuntu-py310-unittest-asynctest"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-asynctest"
use_coverage: true
- name: "ubuntu-py310-unittest-twisted24"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-twisted24"
use_coverage: true
- name: "ubuntu-py310-unittest-twisted25"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-twisted25"
use_coverage: true
- name: "ubuntu-py310-lsof-numpy-pexpect"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-lsof-numpy-pexpect"
use_coverage: true
- name: "ubuntu-py310-pluggy"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-pluggymain-pylib-xdist"
- name: "ubuntu-py310-freeze"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-freeze"
- name: "ubuntu-py310-xdist"
python: "3.10"
os: ubuntu-latest
tox_env: "py310-xdist"
- name: "ubuntu-py311"
python: "3.11"
os: ubuntu-latest
tox_env: "py311"
use_coverage: true
- name: "ubuntu-py312"
python: "3.12"
os: ubuntu-latest
tox_env: "py312"
use_coverage: true
- name: "ubuntu-py313-pexpect"
python: "3.13"
os: ubuntu-latest
tox_env: "py313-pexpect"
use_coverage: true
- name: "ubuntu-py314"
python: "3.14"
os: ubuntu-latest
tox_env: "py314"
use_coverage: true
- name: "ubuntu-pypy3-xdist"
python: "pypy-3.10"
os: ubuntu-latest
tox_env: "pypy3-xdist"
- name: "macos-py310"
python: "3.10"
os: macos-latest
tox_env: "py310-xdist"
- name: "macos-py312"
python: "3.12"
os: macos-latest
tox_env: "py312-xdist"
- name: "macos-py313"
python: "3.13"
os: macos-latest
tox_env: "py313-xdist"
- name: "macos-py314"
python: "3.14"
os: macos-latest
tox_env: "py314-xdist"
- name: "plugins"
python: "3.12"
os: ubuntu-latest
tox_env: "plugins"
- name: "doctesting"
python: "3.10"
os: ubuntu-latest
tox_env: "doctesting"
use_coverage: true
continue-on-error: >-
${{
contains(
fromJSON(
'[
"windows-py310-pluggy",
"windows-py313",
"ubuntu-py310-pluggy",
"ubuntu-py310-freeze",
"ubuntu-py313",
"macos-py310",
"macos-py313"
]'
),
matrix.name
)
&& true
|| false
}}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
persist-credentials: false
- name: Download Package
uses: actions/download-artifact@v5
with:
name: Packages
path: dist
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python }}
check-latest: true
allow-prereleases: true
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox coverage
- name: Test without coverage
if: "! matrix.use_coverage"
shell: bash
run: tox run -e ${{ matrix.tox_env }} --installpkg `find dist/*.tar.gz`
- name: Test with coverage
if: "matrix.use_coverage"
shell: bash
run: tox run -e ${{ matrix.tox_env }}-coverage --installpkg `find dist/*.tar.gz`
- name: Generate coverage report
if: "matrix.use_coverage"
run: python -m coverage xml
- name: Upload coverage to Codecov
if: "matrix.use_coverage"
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7
with:
fail_ci_if_error: false
files: ./coverage.xml
verbose: true
check: # This job does nothing and is only used for the branch protection
if: always()
needs:
- build
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@2765efec08f0fd63e83ad900f5fd75646be69ff6
with:
jobs: ${{ toJSON(needs) }}