name: CI on: push: branches: master pull_request: branches: master schedule: # * is a special character in YAML so you have to quote this string - cron: '0 3 * * 6' workflow_dispatch: inputs: reason: description: 'Reason' required: false default: 'Manual trigger' jobs: Tests: runs-on: ubuntu-20.04 strategy: matrix: python-version: [3.6, 3.7, 3.8] requirements-level: [min, pypi] steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Generate dependencies run: | python -m pip install --upgrade pip setuptools py wheel requirements-builder requirements-builder -e all --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt - name: Cache pip uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('.${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt') }} - name: Install dependencies run: | pip install -r .${{matrix.requirements-level}}-${{ matrix.python-version }}-requirements.txt pip install .[all] pip freeze - name: Run tests run: | ./run-tests.sh