/
niceSOFT
/
python3-pytest
Обзор
Документация
Войти
/
niceSOFT
/
python3-pytest
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
9.1.0
.github/workflows/test.yml
338 строк
9 KB
Ran Benita
Merge pull request #14494 from pytest-dev/dependabot/github_actions/hynek/build-and-inspect-python-package-2.18.0
02 июн 2026, 16:05
Не верифицирован
02 июн 2026, 16:05
4e80019
Код
Авторство
О чём код?
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 persist-credentials: false - name: Build and Check Package uses: hynek/build-and-inspect-python-package@d44ca7d91762de7a7d5436ddae667c6da6d1c3df 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", "windows-py315", "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-py315", "ubuntu-pypy3-xdist", "macos-py310", "macos-py312", "macos-py313", "macos-py314", "macos-py315", "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" xfail: true - 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" xfail: true - name: "windows-py314" python: "3.14" os: windows-latest tox_env: "py314" use_coverage: true - name: "windows-py315" python: "3.15" os: windows-latest tox_env: "py315" # 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" xfail: true - name: "ubuntu-py310-freeze" python: "3.10" os: ubuntu-latest tox_env: "py310-freeze" xfail: true - 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 xfail: true - name: "ubuntu-py314" python: "3.14" os: ubuntu-latest tox_env: "py314" use_coverage: true - name: "ubuntu-py315" python: "3.15" os: ubuntu-latest tox_env: "py315" 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" xfail: true - 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" xfail: true - name: "macos-py314" python: "3.14" os: macos-latest tox_env: "py314-xdist" - name: "macos-py315" python: "3.15" os: macos-latest tox_env: "py315-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: ${{ matrix.xfail && true || false }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 persist-credentials: false - name: Download Package uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: Packages path: dist - name: Set up Python ${{ matrix.python }} uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: ${{ matrix.python }} check-latest: true allow-prereleases: true - name: Install tox run: | python -m pip install --upgrade pip pip install tox - name: Test without coverage if: "! matrix.use_coverage" shell: bash env: _PYTEST_TOX_POSARGS_JUNIT: --junitxml=junit.xml run: tox run -e ${{ matrix.tox_env }} --installpkg `find dist/*.tar.gz` - name: Test with coverage if: "matrix.use_coverage" shell: bash env: _PYTEST_TOX_POSARGS_JUNIT: --junitxml=junit.xml run: tox run -e ${{ matrix.tox_env }}-coverage --installpkg `find dist/*.tar.gz` - name: Upload coverage to Codecov if: "matrix.use_coverage" uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 with: fail_ci_if_error: false files: ./coverage.xml verbose: true - name: Upload JUnit report to Codecov uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 with: fail_ci_if_error: false files: junit.xml report_type: test_results 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@a638d6464689bbb24c325bb3fe9404d63a913030 with: jobs: ${{ toJSON(needs) }}