summaryrefslogtreecommitdiffstats
path: root/.github/workflows/tests.yml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/tests.yml154
1 files changed, 154 insertions, 0 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 0000000..2e8b58e
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,154 @@
+name: Tests
+
+on: [push, pull_request]
+
+jobs:
+ Linting:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - name: Linting
+ run: |
+ pip install pre-commit
+ pre-commit run --all-files
+ Linux:
+ needs: Linting
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8, pypy3]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Get full python version
+ id: full-python-version
+ run: |
+ echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
+ - name: Install and set up Poetry
+ run: |
+ curl -fsS -o get-poetry.py https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py
+ python get-poetry.py --preview -y
+ source $HOME/.poetry/env
+ poetry config virtualenvs.in-project true
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
+ - name: Upgrade pip
+ run: |
+ source $HOME/.poetry/env
+ poetry run python -m pip install pip -U
+ - name: Install dependencies
+ run: |
+ source $HOME/.poetry/env
+ poetry install -vvv
+ - name: Test Pure Python
+ run: |
+ source $HOME/.poetry/env
+ PENDULUM_EXTENSIONS=0 poetry run pytest -q tests
+ - name: Test
+ run: |
+ source $HOME/.poetry/env
+ poetry run pytest -q tests
+ poetry install
+
+ MacOS:
+ needs: Linting
+ runs-on: macos-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8, pypy3]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Get full python version
+ id: full-python-version
+ run: |
+ echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
+ - name: Install and set up Poetry
+ run: |
+ curl -fsS -o get-poetry.py https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py
+ python get-poetry.py --preview -y
+ source $HOME/.poetry/env
+ poetry config virtualenvs.in-project true
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-fix-${{ hashFiles('**/poetry.lock') }}
+ - name: Upgrade pip
+ run: |
+ source $HOME/.poetry/env
+ poetry run python -m pip install pip -U
+ - name: Install dependencies
+ run: |
+ source $HOME/.poetry/env
+ poetry install -vvv
+ - name: Test Pure Python
+ run: |
+ source $HOME/.poetry/env
+ PENDULUM_EXTENSIONS=0 poetry run pytest -q tests
+ - name: Test
+ run: |
+ source $HOME/.poetry/env
+ poetry run pytest -q tests
+ Windows:
+ needs: Linting
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ python-version: [2.7, 3.5, 3.6, 3.7, 3.8]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Get full python version
+ id: full-python-version
+ shell: bash
+ run: |
+ echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
+ - name: Install and setup Poetry
+ run: |
+ Invoke-WebRequest https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -O get-poetry.py
+ python get-poetry.py --preview -y
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry config virtualenvs.in-project true
+ - name: Set up cache
+ uses: actions/cache@v1
+ with:
+ path: .venv
+ key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
+ - name: Upgrade pip
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry run python -m pip install pip -U
+ - name: Install dependencies
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry install -vvv
+ - name: Test Pure Python
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ $env:PENDULUM_EXTENSIONS = "0"
+ poetry run pytest -q tests
+ - name: Test
+ run: |
+ $env:Path += ";$env:Userprofile\.poetry\bin"
+ poetry run pytest -q tests