--- name: CI on: pull_request: types: ["opened", "synchronize"] push: branches: ["devel"] jobs: Test: runs-on: ubuntu-latest strategy: matrix: python: - version: 3.6 toxenv: py36 - version: 3.7 toxenv: py37 - version: 3.8 toxenv: py38 - version: 3.9 toxenv: py39 - version: 3.10 toxenv: py310 steps: - name: Checkout uses: actions/checkout@v2 - name: Setup:python${{ matrix.python.version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python.version }} - name: Setup:cache uses: actions/cache@v2 with: path: | ~/.cache/pip ~/.cache/pypoetry/cache ~/.poetry # Including the hashed poetry.lock in the cache slug ensures that the cache # will be invalidated, and thus all packages will be redownloaded, if the # lockfile is updated key: ${{ runner.os }}-${{ matrix.python.toxenv }}-${{ hashFiles('**/poetry.lock') }} - name: Setup:env run: .github/scripts/setup-env.sh - name: Run:${{ matrix.python.toxenv }} run: $HOME/ci/bin/tox -e ${{ matrix.python.toxenv }} Check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Setup:python3.8 uses: actions/setup-python@v1 with: python-version: 3.8 - name: Setup:cache uses: actions/cache@v2 with: path: | ~/.cache/pip ~/.cache/pypoetry/cache ~/.poetry # Hardcoded 'py38' slug here lets this cache piggyback on the 'py38' cache # that is generated for the tests above key: ${{ runner.os }}-py38-${{ hashFiles('**/poetry.lock') }} - name: Setup:env run: .github/scripts/setup-env.sh - name: Run:static run: $HOME/ci/bin/tox -e static - name: Run:static-tests run: $HOME/ci/bin/tox -e static-tests - name: Run:security run: $HOME/ci/bin/tox -e security