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