pre-commit in CI-Pipelines

Pre-Commit kann auch für kontinuierliche Integration (CI) verwendet werden.

Beispiele für GitHub Actions

pre-commit ci

Service, der eurem GitHub-Repository die pre-commit ci-App in eurem Repository unter https://github.com/PROFILE/REPOSITORY/installations hinzufügt.

Neben der automatischen Änderung von Pull-Requests führt die App auch autoupdate aus, um eure Konfiguration aktuell zu halten.

Weitere Installationen könnt ihr hinzufügen unter Install pre-commit ci.

.github/workflows/pre-commit.yml

Alternative Konfiguration als GitHub-Workflow, z.B.:

name: pre-commit

on:
  pull_request:
  push:
    branches: [main]

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-python@v3
    - uses: actions/cache@v3
      with:
        path: ~/.cache/pre-commit
        key: pre-commit|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
    - uses: pre-commit/action@v3.0.1

Siehe auch

Beispiel für GitLab Actions

stages:
  - validate

pre-commit:
  stage: validate
  image:
    name: python:3.12
  variables:
    PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
  only:
    refs:
      - merge_requests
      - tags
      - main
  cache:
    paths:
      - ${PRE_COMMIT_HOME}
  before_script:
    - pip install pre-commit
  script:
    - pre-commit run --all-files

Siehe auch

Weitere Informationen zur Feinabstimmung des Caching findet ihr in Good caching practices.