name: Static analysis # on PR and push to main on: push: branches: - main pull_request: paths: - '**/*.py' workflow_dispatch: permissions: contents: read # Limit concurrency by workflow/branch combination. # # For pull request builds, pushing additional changes to the # branch will cancel prior in-progress and pending builds. # # For builds triggered on a branch push, additional changes # will wait for prior builds to complete before starting. # # https://docs.github.com/en/actions/using-jobs/using-concurrency concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: pre-commit-checks: name: Pre-commit checks runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: astral-sh/setup-uv@v4 with: enable-cache: true cache-dependency-glob: "**/pyproject.toml" python-version: "3.12.2" - name: Install packages run: | uv sync --group dev - name: Run pre-commit run: | uvx pre-commit run --show-diff-on-failure --color=always --all-files