2020-10-26 21:40:36 +01:00
|
|
|
name: MacOS
|
2020-10-26 21:02:49 +01:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- master
|
|
|
|
pull_request:
|
|
|
|
schedule:
|
|
|
|
# Run every Friday at 18:02 UTC
|
|
|
|
- cron: 2 18 * * 5
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
dev-tools:
|
2020-10-26 21:40:36 +01:00
|
|
|
name: Quality Check
|
|
|
|
runs-on: macos-latest
|
2020-10-26 21:02:49 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
# Caches
|
|
|
|
- name: pip cache
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~/.cache/pip
|
|
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('tools/requirements/tests.txt') }}-${{ hashFiles('tools/requirements/docs.txt') }}-${{ hashFiles('tox.ini') }}
|
|
|
|
restore-keys: |
|
|
|
|
${{ runner.os }}-pip-
|
|
|
|
${{ runner.os }}-
|
|
|
|
- name: Set PY (for pre-commit cache)
|
|
|
|
run: echo "::set-env name=PY::$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
|
|
|
|
- name: pre-commit cache
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~/.cache/pre-commit
|
|
|
|
key: pre-commit|2020-02-14|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
|
|
|
|
|
|
|
# Setup
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Set up Python 3.8
|
2020-10-26 21:40:36 +01:00
|
|
|
uses: actions/setup-python@v2
|
2020-10-26 21:02:49 +01:00
|
|
|
with:
|
|
|
|
python-version: 3.8
|
|
|
|
|
|
|
|
- name: Install tox
|
|
|
|
run: python -m pip install tox
|
|
|
|
|
|
|
|
# Main check
|
|
|
|
- run: python -m tox -e "lint,docs"
|
|
|
|
|
|
|
|
packaging:
|
2020-10-26 21:40:36 +01:00
|
|
|
name: Packaging
|
|
|
|
runs-on: macos-latest
|
2020-10-26 21:02:49 +01:00
|
|
|
|
|
|
|
steps:
|
|
|
|
# Caches
|
|
|
|
- name: pip cache
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~/.cache/pip
|
|
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('tools/requirements/tests.txt') }}-${{ hashFiles('tools/requirements/docs.txt') }}-${{ hashFiles('tox.ini') }}
|
|
|
|
restore-keys: |
|
|
|
|
${{ runner.os }}-pip-
|
|
|
|
${{ runner.os }}-
|
|
|
|
# Setup
|
|
|
|
- name: Set up git credentials
|
|
|
|
run: |
|
|
|
|
git config --global user.email "pypa-dev@googlegroups.com"
|
|
|
|
git config --global user.name "pip"
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Set up Python 3.8
|
2020-10-26 21:40:36 +01:00
|
|
|
uses: actions/setup-python@v2
|
2020-10-26 21:02:49 +01:00
|
|
|
with:
|
|
|
|
python-version: 3.8
|
|
|
|
- name: Install tox and nox
|
|
|
|
run: python -m pip install tox nox
|
|
|
|
|
|
|
|
# Main check
|
|
|
|
- name: Check vendored packages
|
|
|
|
run: python -m tox -e "vendoring"
|
|
|
|
|
|
|
|
- name: Prepare dummy release
|
|
|
|
run: nox -s prepare-release -- 99.9
|
|
|
|
|
|
|
|
- name: Generate distributions for the dummy release
|
|
|
|
run: nox -s build-release -- 99.9
|
|
|
|
|
|
|
|
tests:
|
2020-10-26 21:40:36 +01:00
|
|
|
name: Tests / ${{ matrix.python }}
|
|
|
|
runs-on: macos-latest
|
2020-10-26 21:02:49 +01:00
|
|
|
|
|
|
|
needs: dev-tools
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
python: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
# Caches
|
|
|
|
- name: pip cache
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~/.cache/pip
|
|
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('tools/requirements/tests.txt') }}-${{ hashFiles('tools/requirements/docs.txt') }}-${{ hashFiles('tox.ini') }}
|
|
|
|
restore-keys: |
|
|
|
|
${{ runner.os }}-pip-
|
|
|
|
${{ runner.os }}-
|
|
|
|
# Setup
|
|
|
|
- uses: actions/checkout@v2
|
2020-10-26 21:40:36 +01:00
|
|
|
- uses: actions/setup-python@v2
|
2020-10-26 21:02:49 +01:00
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python }}
|
|
|
|
|
|
|
|
- name: Install tox
|
|
|
|
run: python -m pip install tox 'virtualenv<20'
|
|
|
|
|
|
|
|
# Main check
|
|
|
|
- name: Run unit tests
|
|
|
|
run: >-
|
|
|
|
python -m tox -e py --
|
|
|
|
-m unit
|
|
|
|
--verbose
|
|
|
|
--numprocesses auto
|
|
|
|
|
|
|
|
- name: Run integration tests
|
|
|
|
run: >-
|
|
|
|
python -m tox -e py --
|
|
|
|
-m integration
|
|
|
|
--verbose
|
|
|
|
--numprocesses auto
|
2020-10-26 21:19:00 +01:00
|
|
|
--durations=5
|