99
1010# Global --------------------------
1111
12- image : python:3.11
12+ image : ${CI_REGISTRY_IMAGE}/ python:3.11
1313
1414variables :
1515 PIP_CACHE_DIR : " ${CI_PROJECT_DIR}/.cache/pip"
@@ -27,6 +27,12 @@ cache:
2727 - .cache/pip
2828 - .venv
2929
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+
3036stages :
3137 - check
3238 - build
@@ -47,20 +53,53 @@ before_script:
4753
4854# stage: check ----------------------
4955
50- black :
56+ .black_base :
5157 stage : check
5258 script : poetry run black --check .
5359
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 :
5572 stage : check
5673 script : poetry run flake8 deepl tests
5774
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 :
5987 stage : check
6088 script :
6189 - ./license_checker.sh '*.py' | tee license_check_output.txt
6290 - ' [ ! -s license_check_output.txt ]'
6391
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+
64103# stage: build ----------------------
65104
66105package :
@@ -73,10 +112,9 @@ package:
73112
74113# stage: test -------------------------
75114
76- test :
115+ .test_base :
77116 stage : test
78117 extends : .test
79- retry : 1
80118 parallel :
81119 matrix :
82120 - DOCKER_IMAGE : " python:3.11"
@@ -102,7 +140,7 @@ test:
102140 # Set minimum possible requests and urllib3 versions to work with Python 3.11
103141 EXTRA_POETRY_ADD_ARGUMENT : " requests@2.20 urllib3@1.23"
104142 USE_MOCK_SERVER : " use mock server"
105- image : ${DOCKER_IMAGE}
143+ image : ${CI_REGISTRY_IMAGE}/${ DOCKER_IMAGE}
106144 script :
107145 - >
108146 if [[ ! -z "${EXTRA_POETRY_ADD_ARGUMENT}" ]]; then
@@ -129,10 +167,21 @@ test:
129167 - test_report.xml
130168 when : always
131169
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 :
133183 stage : test
134184 extends : .test
135- retry : 1
136185 script :
137186 - cd examples/mustache
138187 - pip install deepl
@@ -142,6 +191,18 @@ mustache example:
142191 - grep -q "{{user}}" mustache_result.txt
143192 - grep -q "{{{balance}}}" mustache_result.txt
144193
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+
145206# stage: publish -------------------------
146207
147208pypi upload :
0 commit comments