-
Notifications
You must be signed in to change notification settings - Fork 0
70 lines (59 loc) · 2.17 KB
/
pre-commit.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
name: pre-commit
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true
env:
# renovate: datasource=pypi depName=pre-commit versioning=pep440
PRE_COMMIT_VERSION: ==3.8.0
jobs:
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Check if pre-commit should run on all files
id: run-all-files
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf # v5.3.1
continue-on-error: true
with:
do_not_skip: '["schedule", "workflow_dispatch"]'
paths: |-
[
".github/workflows/pre-commit.yml",
".pre-commit-config.yaml"
]
skip_after_successful_duplicate: false
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Set up pre-commit
run: pipx install "pre-commit${PRE_COMMIT_VERSION}"
- name: Set pre-commit cache key parts
run: |
echo "PY_HASH=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- name: Set up pre-commit cache
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ env.PY_HASH }}-${{ hashFiles('.pre-commit-config.yaml') }}
- name: Run pre-commit
run: |
declare -a EXTRA_ARGS=()
if [[ '${{ steps.run-all-files.outputs.should_skip }}' != 'true' ]]; then
EXTRA_ARGS=(--all-files)
elif [[ "${GITHUB_EVENT_NAME}" == 'pull_request' ]]; then
EXTRA_ARGS=(--from-ref "origin/${GITHUB_BASE_REF}" --to-ref "${GITHUB_SHA}")
else
EXTRA_ARGS=(--from-ref "${GITHUB_SHA}^" --to-ref "${GITHUB_SHA}")
fi
pre-commit run --show-diff-on-failure --color=always "${EXTRA_ARGS[@]}"
- name: 'pre-commit-ci-lite: Apply automatic fixes'
uses: pre-commit-ci/lite-action@5d6cc0eb514c891a40562a58a8e71576c5c7fb43 # v1.1.0
if: always()