name: Linux Tests on: [push, pull_request] jobs: linuxtests: name: Linux strategy: matrix: group: [integrity, integrity2, integrity3, docs, usage, usage2, python, examples, interop, nonode, linkcheck, lint] python: [3.6, 3.8] exclude: - group: integrity python: 3.6 - group: integrity2 python: 3.6 - group: integrity3 python: 3.6 - group: docs python: 3.6 - group: usage python: 3.6 - group: usage2 python: 3.6 - group: linkcheck python: 3.6 - group: nonode python: 3.6 - group: lint python: 3.6 - group: examples python: 3.6 fail-fast: false timeout-minutes: 20 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v1 with: python-version: ${{ matrix.python }} - name: Set up Node uses: actions/setup-node@v1 with: node-version: '12.x' - name: Cache pip on Linux uses: actions/cache@v2 if: startsWith(runner.os, 'Linux') with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.python }}-${{ hashFiles('**/requirements.txt', 'setup.py') }} restore-keys: | ${{ runner.os }}-pip-${{ matrix.python }} - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache yarn uses: actions/cache@v2 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Cache checked links build uses: actions/cache@v2 if: ${{ matrix.group == 'linkcheck' }} with: path: ~/.cache/pytest-link-check key: ${{ runner.os }}-linkcheck-${{ hashFiles('**/*.rst') }}-changelog restore-keys: | ${{ runner.os }}-linkcheck- - name: Install dependencies env: GROUP: ${{ matrix.group }} run: | bash ./scripts/ci_install.sh - name: Run test ${{ matrix.group }} env: GROUP: ${{ matrix.group }} run: | bash ./scripts/ci_script.sh