-
-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #114 from pquentin/github-actions
- Loading branch information
Showing
6 changed files
with
173 additions
and
129 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches-ignore: | ||
- "dependabot/**" | ||
pull_request: | ||
|
||
jobs: | ||
Windows: | ||
name: 'Windows (${{ matrix.python }})' | ||
runs-on: 'windows-latest' | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: ['3.6', '3.7', '3.8', '3.9'] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Setup python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: '${{ matrix.python }}' | ||
- name: Run tests | ||
run: ./ci.sh | ||
shell: bash | ||
env: | ||
# Should match 'name:' up above | ||
JOB_NAME: 'Windows (${{ matrix.python }})' | ||
|
||
Ubuntu: | ||
name: 'Ubuntu (${{ matrix.python }}${{ matrix.extra_name }})' | ||
timeout-minutes: 10 | ||
runs-on: 'ubuntu-latest' | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: ['pypy-3.6', '3.6', '3.7', '3.8', '3.9', '3.6-dev', '3.7-dev', '3.8-dev', '3.9-dev'] | ||
check_formatting: ['0'] | ||
check_docs: ['0'] | ||
extra_name: [''] | ||
include: | ||
- python: '3.9' | ||
check_formatting: '1' | ||
extra_name: ', check formatting' | ||
- python: '3.9' | ||
check_docs: '1' | ||
extra_name: ', check docs' | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Setup python | ||
uses: actions/setup-python@v2 | ||
if: "!endsWith(matrix.python, '-dev')" | ||
with: | ||
python-version: '${{ matrix.python }}' | ||
- name: Setup python (dev) | ||
uses: deadsnakes/[email protected] | ||
if: endsWith(matrix.python, '-dev') | ||
with: | ||
python-version: '${{ matrix.python }}' | ||
- name: Run tests | ||
run: ./ci.sh | ||
env: | ||
CHECK_FORMATTING: '${{ matrix.check_formatting }}' | ||
CHECK_DOCS: '${{ matrix.check_docs }}' | ||
# Should match 'name:' up above | ||
JOB_NAME: 'Ubuntu (${{ matrix.python }}${{ matrix.extra_name }})' | ||
|
||
macOS: | ||
name: 'macOS (${{ matrix.python }})' | ||
timeout-minutes: 10 | ||
runs-on: 'macos-latest' | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python: ['3.6', '3.7', '3.8', '3.9'] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Setup python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: '${{ matrix.python }}' | ||
- name: Run tests | ||
run: ./ci.sh | ||
env: | ||
# Should match 'name:' up above | ||
JOB_NAME: 'macOS (${{ matrix.python }})' |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
#!/bin/bash | ||
|
||
set -ex -o pipefail | ||
|
||
# Log some general info about the environment | ||
uname -a | ||
env | sort | ||
|
||
# See https://github.com/python-trio/trio/issues/334 | ||
YAPF_VERSION=0.22.0 | ||
|
||
# Curl's built-in retry system is not very robust; it gives up on lots of | ||
# network errors that we want to retry on. Wget might work better, but it's | ||
# not installed on azure pipelines's windows boxes. So... let's try some good | ||
# old-fashioned brute force. (This is also a convenient place to put options | ||
# we always want, like -f to tell curl to give an error if the server sends an | ||
# error response, and -L to follow redirects.) | ||
function curl-harder() { | ||
for BACKOFF in 0 1 2 4 8 15 15 15 15; do | ||
sleep $BACKOFF | ||
if curl -fL --connect-timeout 5 "$@"; then | ||
return 0 | ||
fi | ||
done | ||
return 1 | ||
} | ||
|
||
|
||
python -m pip install -U pip setuptools wheel | ||
python -m pip --version | ||
|
||
python setup.py sdist --formats=zip | ||
python -m pip install dist/*.zip | ||
|
||
if [ "$CHECK_FORMATTING" = "1" ]; then | ||
pip install yapf==${YAPF_VERSION} | ||
if ! yapf -rpd setup.py pytest_trio; then | ||
cat <<EOF | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
Formatting problems were found (listed above). To fix them, run | ||
pip install yapf==${YAPF_VERSION} | ||
yapf -rpi setup.py pytest_trio | ||
in your local checkout. | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
EOF | ||
exit 1 | ||
fi | ||
elif [ "$CHECK_DOCS" = "1" ]; then | ||
pip install -Ur docs-requirements.txt | ||
cd docs | ||
# -n (nit-picky): warn on missing references | ||
# -W: turn warnings into errors | ||
sphinx-build -nW -b html source build | ||
else | ||
# Actual tests | ||
python -m pip install -r test-requirements.txt | ||
|
||
# We run the tests from inside an empty directory, to make sure Python | ||
# doesn't pick up any .py files from our working dir. Might have been | ||
# pre-created by some of the code above. | ||
mkdir empty || true | ||
cd empty | ||
|
||
# These environment variables ensure that the import of the pytest-trio plugin is covered | ||
# even if pytest-trio is loaded before pytest-cov. See https://pytest-cov.readthedocs.io/en/latest/plugins.html | ||
env COV_CORE_SOURCE=pytest_trio COV_CORE_CONFIG=.coveragerc COV_CORE_DATAFILE=.coverage pytest | ||
|
||
# The codecov docs recommend something like 'bash <(curl ...)' to pipe the | ||
# script directly into bash as its being downloaded. But, the codecov | ||
# server is flaky, so we instead save to a temp file with retries, and | ||
# wait until we've successfully fetched the whole script before trying to | ||
# run it. | ||
curl-harder -o codecov.sh https://codecov.io/bash | ||
bash codecov.sh -n "${JOB_NAME}" | ||
fi |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
pytest >= 6.0.0 # https://github.com/python-trio/pytest-trio/pull/98#issuecomment-678699693 | ||
pytest-cov | ||
hypothesis>=3.64 | ||
pytest==6.1.2 | ||
pytest-cov==2.10.1 | ||
hypothesis==5.47.0 |