twisted started to use `attr.s(eq)` argument which was added recently, so it fails with oldattrs. One of the CI jobs ran twisted and oldattrs together, so it started to fail. Move the twisted code to be covered by another job, and remove it from the job with the oldattrs.
195 lines
5.1 KiB
YAML
195 lines
5.1 KiB
YAML
# evaluating GitHub actions for CI, disregard failures when evaluating PRs
|
|
#
|
|
# this is still missing:
|
|
# - deploy
|
|
# - upload github notes
|
|
#
|
|
name: main
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- "[0-9]+.[0-9]+.x"
|
|
tags:
|
|
- "*"
|
|
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- "[0-9]+.[0-9]+.x"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
name: [
|
|
"windows-py35",
|
|
"windows-py36",
|
|
"windows-py37",
|
|
"windows-py37-pluggy",
|
|
"windows-py38",
|
|
|
|
"ubuntu-py35",
|
|
"ubuntu-py36",
|
|
"ubuntu-py37",
|
|
"ubuntu-py37-pluggy",
|
|
"ubuntu-py37-freeze",
|
|
"ubuntu-py38",
|
|
"ubuntu-pypy3",
|
|
|
|
"macos-py37",
|
|
"macos-py38",
|
|
|
|
"linting",
|
|
"docs",
|
|
"doctesting",
|
|
]
|
|
|
|
include:
|
|
- name: "windows-py35"
|
|
python: "3.5"
|
|
os: windows-latest
|
|
tox_env: "py35-xdist"
|
|
use_coverage: true
|
|
- name: "windows-py36"
|
|
python: "3.6"
|
|
os: windows-latest
|
|
tox_env: "py36-xdist"
|
|
- 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-pluggymaster-xdist"
|
|
- name: "windows-py38"
|
|
python: "3.8"
|
|
os: windows-latest
|
|
tox_env: "py38-twisted"
|
|
use_coverage: true
|
|
|
|
- name: "ubuntu-py35"
|
|
python: "3.5"
|
|
os: ubuntu-latest
|
|
tox_env: "py35-xdist"
|
|
- name: "ubuntu-py36"
|
|
python: "3.6"
|
|
os: ubuntu-latest
|
|
tox_env: "py36-xdist"
|
|
- name: "ubuntu-py37"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "py37-lsof-numpy-oldattrs-pexpect"
|
|
use_coverage: true
|
|
- name: "ubuntu-py37-pluggy"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "py37-pluggymaster-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-pypy3"
|
|
python: "pypy3"
|
|
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: "linting"
|
|
python: "3.7"
|
|
os: ubuntu-latest
|
|
tox_env: "linting"
|
|
- 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@v1
|
|
- name: Set up Python ${{ matrix.python }}
|
|
uses: actions/setup-python@v1
|
|
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"
|
|
env:
|
|
_PYTEST_TOX_COVERAGE_RUN: "coverage run -m"
|
|
COVERAGE_PROCESS_START: ".coveragerc"
|
|
_PYTEST_TOX_EXTRA_DEP: "coverage-enable-subprocess"
|
|
run: "tox -e ${{ matrix.tox_env }}"
|
|
|
|
- name: Prepare coverage token
|
|
if: (matrix.use_coverage && ( github.repository == 'pytest-dev/pytest' || github.event_name == 'pull_request' ))
|
|
run: |
|
|
python scripts/append_codecov_token.py
|
|
|
|
- name: Report coverage
|
|
if: (matrix.use_coverage)
|
|
env:
|
|
CODECOV_NAME: ${{ matrix.name }}
|
|
run: bash scripts/report-coverage.sh -F GHA,${{ runner.os }}
|
|
|
|
deploy:
|
|
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') && github.repository == 'pytest-dev/pytest'
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: [build]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: "3.7"
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install --upgrade wheel setuptools tox
|
|
- name: Build package
|
|
run: |
|
|
python setup.py sdist bdist_wheel
|
|
- name: Publish package to PyPI
|
|
uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.pypi_token }}
|
|
- name: Publish GitHub release notes
|
|
env:
|
|
GH_RELEASE_NOTES_TOKEN: ${{ secrets.release_notes }}
|
|
run: |
|
|
sudo apt-get install pandoc
|
|
tox -e publish-gh-release-notes
|