concurrency: cancel-in-progress: true group: ${{ github.workflow }}-${{ github.ref }} jobs: ci: if: ${{ !cancelled() && ! failure() }} needs: dependabot runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: cache: pip python-version: ${{ matrix.python-version }} - run: make dev - name: lint test docs and build run: make lint docs-gen test-offline # test docs build strategy: matrix: python-version: - '3.10' - '3.11' dependabot: if: ${{ github.actor == 'dependabot[bot]' && startsWith(github.head_ref, 'dependabot/pip/') }} permissions: contents: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 ref: ${{ github.head_ref }} - name: Set up Git run: | git config --global user.name github-actions git config --global user.email github-actions@github.com - name: Set up Python with multiple versions. uses: actions/setup-python@v5 with: cache: pip python-version: | 3.10 3.11 - name: Install pipenv using pipx run: pipx install pipenv - name: Generate constraints for all supported Python versions run: | CI= PYTHON_VERSION=3.10 make constraints CI= PYTHON_VERSION=3.11 make constraints - name: Push changes if applicable run: | if [[ -n `git status --porcelain` ]]; then git commit -a -m "build: Update constraints for dependabot." git push fi name: CI on: pull_request: types: - opened - synchronize push: branches: - main