-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path.gitlab-ci.yml
83 lines (75 loc) · 2.5 KB
/
.gitlab-ci.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
71
72
73
74
75
76
77
78
79
80
81
82
83
stages:
- test
default:
tags:
- cel-runner
pre-commit:
stage: .pre
rules:
- if: '$PRE_COMMIT_SKIP_BRANCH_PIPELINE && $CI_COMMIT_BRANCH'
when: never
- if: '$PRE_COMMIT_SKIP_MR_PIPELINE && $CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if: '$PRE_COMMIT_AUTO_FIX_BRANCH_ONLY && $CI_PIPELINE_SOURCE == "merge_request_event"'
variables:
PRE_COMMIT_AUTO_FIX: ""
when: on_success
exists:
- .pre-commit-config.yaml
- if: '$PRE_COMMIT_DEDUPLICATE_MR_AND_BRANCH == "true" && $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
when: never
- if: '$PRE_COMMIT_AUTO_FIX_MR_ONLY && $CI_PIPELINE_SOURCE != "merge_request_event"'
variables:
PRE_COMMIT_AUTO_FIX: ""
exists:
- .pre-commit-config.yaml
when: on_success
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_EVENT_TYPE != "detached"'
variables: # we don't support autofix for merged_result or merge_train pipelines, configure branch fixing instead
PRE_COMMIT_AUTO_FIX: ""
exists:
- .pre-commit-config.yaml
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
exists:
- .pre-commit-config.yaml
when: on_success
- if: '$CI_COMMIT_BRANCH'
exists:
- .pre-commit-config.yaml
when: on_success
- when: never
variables:
PRE_COMMIT_AUTO_FIX: "1"
PRE_COMMIT_DEDUPLICATE_MR_AND_BRANCH: "true"
image: python:3.12
before_script: |
apt update && apt install -y --no-install-recommends git && rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true
pip install --no-cache-dir pre-commit
script: |
if [[ -n "$PRE_COMMIT_AUTO_FIX_BRANCH_ONLY" && -n "$PRE_COMMIT_AUTO_FIX_MR_ONLY" ]]; then
echo "invalid configuration. PRE_COMMIT_AUTO_FIX_BRANCH_ONLY and PRE_COMMIT_AUTO_FIX_MR_ONLY are mutually exclusive"
exit 1
fi
if [[ $PRE_COMMIT_DEBUG ]]; then
set -x
echo "DEBUGGING ENABLED" > /dev/stderr
fi
status=0
pre-commit run --all-files || status=$?
if [[ -n "$PRE_COMMIT_DEBUG" ]]; then
git status
fi
if [[ $status -ne 0 ]]; then
exit 1 # fail the job
else
exit 0 # we're all good, pipeline can proceed
fi
pytest:
stage: test
image: python:3.12
before_script: |
pip install --no-cache-dir poetry
poetry install --all-extras --with=dev
source `poetry env info --path`/bin/activate
script: |
pytest tests/