Skip to content

Commit a827c0a

Browse files
committed
[ci] Add retries for scheduled jobs
1 parent 24ab267 commit a827c0a

File tree

1 file changed

+70
-9
lines changed

1 file changed

+70
-9
lines changed

.gitlab-ci.yml

Lines changed: 70 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ include:
99

1010
# Global --------------------------
1111

12-
image: python:3.11
12+
image: ${CI_REGISTRY_IMAGE}/python:3.11
1313

1414
variables:
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+
3036
stages:
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

66105
package:
@@ -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: "[email protected] [email protected]"
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

147208
pypi upload:

0 commit comments

Comments
 (0)