summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradyun Gedam <pradyunsg@users.noreply.github.com>2020-10-27 01:32:49 +0530
committerPradyun Gedam <pradyunsg@users.noreply.github.com>2020-10-27 01:32:49 +0530
commitbb38dd568ba4895795f97132d8981b2252dbab76 (patch)
tree303250b579a4d64045d6e8a49ae3eafcfee6547f
parentcffc3a618edb74b5852e628afeb2ee9c097327b1 (diff)
downloadpip-bb38dd568ba4895795f97132d8981b2252dbab76.tar.gz
Add GitHub Action based testing for MacOS
-rw-r--r--.github/workflows/linting.yml1
-rw-r--r--.github/workflows/macos.yml138
2 files changed, 138 insertions, 1 deletions
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 0ff16be64..ebe98fec7 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -19,7 +19,6 @@ jobs:
os:
- Ubuntu
- Windows
- - MacOS
steps:
- uses: actions/checkout@v2
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
new file mode 100644
index 000000000..75c2118ac
--- /dev/null
+++ b/.github/workflows/macos.yml
@@ -0,0 +1,138 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ schedule:
+ # Run every Friday at 18:02 UTC
+ - cron: 2 18 * * 5
+
+jobs:
+ dev-tools:
+ name: Quality Check / ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+
+ strategy:
+ matrix:
+ os: [MacOS]
+
+ 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
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+
+ - name: Install tox
+ run: python -m pip install tox
+
+ # Main check
+ - run: python -m tox -e "lint,docs"
+
+ packaging:
+ name: Packaging / ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+
+ strategy:
+ matrix:
+ os: [MacOS]
+
+ 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
+ uses: actions/setup-python@v1
+ 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:
+ name: Tests / ${{ matrix.python }} / ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}-latest
+
+ needs: dev-tools
+
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [MacOS]
+ 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
+ - uses: actions/setup-python@v1
+ 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
+ --duration=5