⬆️ Bump pip from 24.0 to 24.1.1 in /.github/workflows #3670
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: CI | |
on: # yamllint disable-line rule:truthy | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
pull_request: | |
jobs: | |
# Quality jobs ---------------------- | |
code-quality: | |
strategy: | |
matrix: | |
python-version: ["3.11"] | |
name: Code Quality | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt poetry | |
poetry --version | |
- name: Configure Poetry | |
run: | | |
poetry config cache-dir "${GITHUB_WORKSPACE}/.cache/pypoetry" | |
poetry config virtualenvs.in-project true | |
poetry config --list | |
- name: Install Tox | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt tox | |
tox --version | |
- name: Load cached tox testenv(s) (if they exist) | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
key: tox-${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-CPython${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Run static analysis | |
run: | | |
make pre-commit | |
# Security jobs ---------------------- | |
dependency-security-vulnerability-analysis: | |
strategy: | |
matrix: | |
python-version: ["3.11"] | |
name: Dependency Security Vulnerability Analysis | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt poetry | |
poetry --version | |
- name: Configure Poetry | |
run: | | |
poetry config cache-dir "${GITHUB_WORKSPACE}/.cache/pypoetry" | |
poetry config virtualenvs.in-project true | |
poetry config --list | |
- name: Install Tox | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt tox | |
tox --version | |
- name: Load cached tox testenv(s) (if they exist) | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
key: tox-${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-CPython${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Run dependency security vulnerability analysis | |
run: | | |
make scan-dependencies | |
# Code quality AND security job ---------------------- | |
semgrep: | |
runs-on: ubuntu-latest | |
name: Semgrep | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
- name: Disable Git LFS | |
run: | | |
rm .git/hooks/post-checkout || true | |
- name: Run Semgrep | |
id: semgrep | |
uses: returntocorp/semgrep-action@v1 | |
with: | |
config: r/python | |
# Tests jobs ------------------------ | |
test: | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "macos-latest"] | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
name: Python ${{ matrix.python-version }} (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
env: | |
USING_COVERAGE_OS: "ubuntu" | |
USING_COVERAGE_PY_VER: "3.11" | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt poetry | |
poetry --version | |
- name: Configure Poetry | |
run: | | |
poetry config cache-dir "${GITHUB_WORKSPACE}/.cache/pypoetry" | |
poetry config virtualenvs.in-project true | |
poetry config --list | |
- name: Install Tox & Tox GH Actions Plugin | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt tox tox-gh-actions | |
tox --version | |
- name: Load cached tox testenv(s) (if they exist) | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
key: tox-${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-CPython${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Run tox targets for ${{ matrix.python-version }} | |
uses: nick-invision/retry@v3 | |
with: | |
timeout_minutes: 10 | |
max_attempts: 3 | |
shell: bash | |
command: | | |
git fetch origin master:refs/remotes/origin/master | |
make test | |
- name: Upload coverage to Codecov | |
if: "contains(matrix.os, env.USING_COVERAGE_OS) && | |
contains(matrix.python-version, env.USING_COVERAGE_PY_VER)" | |
uses: "codecov/codecov-action@v3.1.4" | |
with: | |
file: ./.tox/coverage.xml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
# Documentation build testing jobs ------------------------ | |
test-documentation-building: | |
strategy: | |
matrix: | |
python-version: ["3.11"] | |
name: Documentation build testing | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt poetry | |
poetry --version | |
- name: Configure Poetry | |
run: | | |
poetry config cache-dir "${GITHUB_WORKSPACE}/.cache/pypoetry" | |
poetry config virtualenvs.in-project true | |
poetry config --list | |
# Temporary patch for https://github.com/microsoft/debugpy/issues/1246 | |
# FIXME(teo): Remove this once the aforementioned issue is resolved | |
- run: | | |
if [[ "$(poetry --version)" == *"1.4.1"* ]]; then | |
poetry config installer.modern-installation false | |
fi | |
shell: bash | |
- name: Load cached venv(s) (if they exist) | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.venv | |
key: venv-${{ runner.os }}-CPython${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
run: | | |
make install-dependencies | |
- name: Install project | |
run: | | |
make install-project | |
- name: Build Documentation | |
run: | | |
make docs-html \ | |
LAUNCH_DOCS_PREVIEW=false | |
# Mutation testing jobs ------------------------ | |
test-mutations: | |
strategy: | |
matrix: | |
python-version: ["3.10"] | |
name: Mutation testing | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v4 | |
with: | |
lfs: true | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt poetry | |
poetry --version | |
- name: Configure Poetry | |
run: | | |
poetry config cache-dir "${GITHUB_WORKSPACE}/.cache/pypoetry" | |
poetry config virtualenvs.in-project true | |
poetry config --list | |
- name: Install Tox | |
run: | | |
pip install --constraint=.github/workflows/constraints.txt tox | |
tox --version | |
- name: Load cached tox testenv(s) (if they exist) | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
key: tox-${{ github.workflow }}-${{ github.job }}-${{ runner.os }}-CPython${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Run mutation testing | |
run: | | |
make test-mutations | |
- name: Store the updated mutation testing cache | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mutmut-cache | |
path: ./.mutmut-cache |