9
9
10
10
# Global --------------------------
11
11
12
- image : python:3.11
12
+ image : ${CI_REGISTRY_IMAGE}/ python:3.11
13
13
14
14
variables :
15
15
PIP_CACHE_DIR : " ${CI_PROJECT_DIR}/.cache/pip"
@@ -27,6 +27,12 @@ cache:
27
27
- .cache/pip
28
28
- .venv
29
29
30
+ workflow :
31
+ rules :
32
+ - if : $CI_PIPELINE_SOURCE == "merge_request_event"
33
+ - if : $CI_COMMIT_TAG
34
+ - if : ' $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
35
+
30
36
stages :
31
37
- check
32
38
- build
@@ -47,20 +53,53 @@ before_script:
47
53
48
54
# stage: check ----------------------
49
55
50
- black :
56
+ .black_base :
51
57
stage : check
52
58
script : poetry run black --check .
53
59
54
- flake8 :
60
+ black_scheduled :
61
+ extends : .black_base
62
+ rules :
63
+ - if : $CI_PIPELINE_SOURCE == "schedule"
64
+ retry : 2
65
+
66
+ black_manual :
67
+ extends : .black_base
68
+ rules :
69
+ - if : $CI_PIPELINE_SOURCE != "schedule"
70
+
71
+ .flake8_base :
55
72
stage : check
56
73
script : poetry run flake8 deepl tests
57
74
58
- licenseCheck :
75
+ flake8_scheduled :
76
+ extends : .flake8_base
77
+ rules :
78
+ - if : $CI_PIPELINE_SOURCE == "schedule"
79
+ retry : 2
80
+
81
+ flake8_manual :
82
+ extends : .flake8_base
83
+ rules :
84
+ - if : $CI_PIPELINE_SOURCE != "schedule"
85
+
86
+ .license_check_base :
59
87
stage : check
60
88
script :
61
89
- ./license_checker.sh '*.py' | tee license_check_output.txt
62
90
- ' [ ! -s license_check_output.txt ]'
63
91
92
+ license_check_scheduled :
93
+ extends : .license_check_base
94
+ rules :
95
+ - if : $CI_PIPELINE_SOURCE == "schedule"
96
+ retry : 2
97
+
98
+ license_check_manual :
99
+ extends : .license_check_base
100
+ rules :
101
+ - if : $CI_PIPELINE_SOURCE != "schedule"
102
+
64
103
# stage: build ----------------------
65
104
66
105
package :
@@ -73,10 +112,9 @@ package:
73
112
74
113
# stage: test -------------------------
75
114
76
- test :
115
+ .test_base :
77
116
stage : test
78
117
extends : .test
79
- retry : 1
80
118
parallel :
81
119
matrix :
82
120
- DOCKER_IMAGE : " python:3.11"
@@ -102,7 +140,7 @@ test:
102
140
# Set minimum possible requests and urllib3 versions to work with Python 3.11
103
141
104
142
USE_MOCK_SERVER : " use mock server"
105
- image : ${DOCKER_IMAGE}
143
+ image : ${CI_REGISTRY_IMAGE}/${ DOCKER_IMAGE}
106
144
script :
107
145
- >
108
146
if [[ ! -z "${EXTRA_POETRY_ADD_ARGUMENT}" ]]; then
@@ -129,10 +167,21 @@ test:
129
167
- test_report.xml
130
168
when : always
131
169
132
- mustache example :
170
+ test_scheduled :
171
+ extends : .test_base
172
+ rules :
173
+ - if : $CI_PIPELINE_SOURCE == "schedule"
174
+ retry : 2
175
+
176
+ test_manual :
177
+ stage : test
178
+ extends : .test_base
179
+ rules :
180
+ - if : $CI_PIPELINE_SOURCE != "schedule"
181
+
182
+ .mustache_example_base :
133
183
stage : test
134
184
extends : .test
135
- retry : 1
136
185
script :
137
186
- cd examples/mustache
138
187
- pip install deepl
@@ -142,6 +191,18 @@ mustache example:
142
191
- grep -q "{{user}}" mustache_result.txt
143
192
- grep -q "{{{balance}}}" mustache_result.txt
144
193
194
+ mustache_example_scheduled :
195
+ extends : .mustache_example_base
196
+ rules :
197
+ - if : $CI_PIPELINE_SOURCE == "schedule"
198
+ retry : 2
199
+
200
+ mustache_example_manual :
201
+ stage : test
202
+ extends : .mustache_example_base
203
+ rules :
204
+ - if : $CI_PIPELINE_SOURCE != "schedule"
205
+
145
206
# stage: publish -------------------------
146
207
147
208
pypi upload :
0 commit comments