This will trigger a deploy directly when a tag is pushed, avoiding having to wait for another lenghty build. This is safe since we only push release tags after the release PR has passed all its tests. See comments in #9793.
190 lines
4.6 KiB
YAML
190 lines
4.6 KiB
YAML
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"
|
|
|
|
env:
|
|
PYTEST_ADDOPTS: "--color=yes"
|
|
|
|
# Set permissions at the job level.
|
|
permissions: {}
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 45
|
|
permissions:
|
|
contents: read
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
name: [
|
|
"windows-py37",
|
|
"windows-py37-pluggy",
|
|
"windows-py38",
|
|
"windows-py39",
|
|
"windows-py310",
|
|
"windows-py311",
|
|
|
|
"ubuntu-py37",
|
|
"ubuntu-py37-pluggy",
|
|
"ubuntu-py37-freeze",
|
|
"ubuntu-py38",
|
|
"ubuntu-py39",
|
|
"ubuntu-py310",
|
|
"ubuntu-py311",
|
|
"ubuntu-pypy3",
|
|
|
|
"macos-py37",
|
|
"macos-py38",
|
|
"macos-py39",
|
|
"macos-py310",
|
|
|
|
"docs",
|
|
"doctesting",
|
|
"plugins",
|
|
]
|
|
|
|
include:
|
|
- name: "windows-py37"
|
|
python: "3.7"
|
|
os: windows-latest
|
|
tox_env: "py37-numpy"
|
|
- name: "windows-py37-pluggy"
|
|
python: "3.7"
|
|
os: windows-latest
|
|
tox_env: "py37-pluggymain-xdist"
|
|
- name: "windows-py38"
|
|
python: "3.8"
|
|
os: windows-latest
|
|
tox_env: "py38-unittestextras"
|
|
use_coverage: true
|
|
- name: "windows-py39"
|
|
python: "3.9"
|
|
os: windows-latest
|
|
tox_env: "py39-xdist"
|
|
- name: "windows-py310"
|
|
python: "3.10"
|
|
os: windows-latest
|
|
tox_env: "py310-xdist"
|
|
- name: "windows-py311"
|
|
python: "3.11-dev"
|
|
os: windows-latest
|
|
tox_env: "py311"
|
|
|
|
- name: "ubuntu-py37"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "py37-lsof-numpy-pexpect"
|
|
use_coverage: true
|
|
- name: "ubuntu-py37-pluggy"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "py37-pluggymain-xdist"
|
|
- name: "ubuntu-py37-freeze"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "py37-freeze"
|
|
- name: "ubuntu-py38"
|
|
python: "3.8"
|
|
os: ubuntu-latest
|
|
tox_env: "py38-xdist"
|
|
- name: "ubuntu-py39"
|
|
python: "3.9"
|
|
os: ubuntu-latest
|
|
tox_env: "py39-xdist"
|
|
- name: "ubuntu-py310"
|
|
python: "3.10"
|
|
os: ubuntu-latest
|
|
tox_env: "py310-xdist"
|
|
- name: "ubuntu-py311"
|
|
python: "3.11-dev"
|
|
os: ubuntu-latest
|
|
tox_env: "py311"
|
|
- name: "ubuntu-pypy3"
|
|
python: "pypy-3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "pypy3-xdist"
|
|
|
|
- name: "macos-py37"
|
|
python: "3.7"
|
|
os: macos-latest
|
|
tox_env: "py37-xdist"
|
|
- name: "macos-py38"
|
|
python: "3.8"
|
|
os: macos-latest
|
|
tox_env: "py38-xdist"
|
|
use_coverage: true
|
|
- name: "macos-py39"
|
|
python: "3.9"
|
|
os: macos-latest
|
|
tox_env: "py39-xdist"
|
|
- name: "macos-py310"
|
|
python: "3.10"
|
|
os: macos-latest
|
|
tox_env: "py310-xdist"
|
|
|
|
- name: "plugins"
|
|
python: "3.9"
|
|
os: ubuntu-latest
|
|
tox_env: "plugins"
|
|
|
|
- name: "docs"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "docs"
|
|
- name: "doctesting"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "doctesting"
|
|
use_coverage: true
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Set up Python ${{ matrix.python }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install tox coverage
|
|
|
|
- name: Test without coverage
|
|
if: "! matrix.use_coverage"
|
|
run: "tox -e ${{ matrix.tox_env }}"
|
|
|
|
- name: Test with coverage
|
|
if: "matrix.use_coverage"
|
|
run: "tox -e ${{ matrix.tox_env }}-coverage"
|
|
|
|
- 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@v2
|
|
with:
|
|
fail_ci_if_error: true
|
|
files: ./coverage.xml
|
|
verbose: true
|