15
15
CIRRUS_SHELL : bash
16
16
17
17
only_if : $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_TAG == "" && ($CIRRUS_PR != "" || $CIRRUS_BRANCH == 'master' || $CIRRUS_BRANCH =~ "branch-.*")
18
+
18
19
linux_container_definition : &LINUX_CONTAINER_DEFINITION
19
- dockerfile : .cirrus/poetry.Dockerfile
20
- cluster_name : ${CIRRUS_CLUSTER_NAME}
21
- region : eu-central-1
22
- namespace : default
23
- builder_role : cirrus-builder
24
- builder_image : docker-builder-v*
25
- builder_instance_type : t3.small
26
- use_in_memory_disk : true
27
- docker_arguments :
28
- CIRRUS_AWS_ACCOUNT : ${CIRRUS_AWS_ACCOUNT}
29
- cpu : 3
30
- memory : 8G
20
+ eks_container :
21
+ dockerfile : .cirrus/poetry.Dockerfile
22
+ cluster_name : ${CIRRUS_CLUSTER_NAME}
23
+ region : eu-central-1
24
+ namespace : default
25
+ builder_role : cirrus-builder
26
+ builder_image : docker-builder-v*
27
+ builder_instance_type : t3.small
28
+ use_in_memory_disk : true
29
+ docker_arguments :
30
+ CIRRUS_AWS_ACCOUNT : ${CIRRUS_AWS_ACCOUNT}
31
+ cpu : 3
32
+ memory : 8G
33
+
34
+ mend_base_container : &MEND_BASE_CONTAINER
35
+ eks_container :
36
+ image : ${CIRRUS_AWS_ACCOUNT}.dkr.ecr.eu-central-1.amazonaws.com/base:j21-latest
37
+ region : eu-central-1
38
+ cluster_name : ${CIRRUS_CLUSTER_NAME}
39
+ namespace : default
40
+ cpu : 4
41
+ memory : 2G
31
42
32
43
win_vm_definition : &WINDOWS_VM_DEFINITION
33
44
ec2_instance :
@@ -101,10 +112,26 @@ poetry_cache_template: &POETRY_CACHE
101
112
- echo "PROJECT_VERSION=$PROJECT_VERSION" >> $CIRRUS_ENV
102
113
<< : *JFROG_MAC_LINUX_CONFIG_TEMPLATE
103
114
115
+ # Basic Linux container with poetry (no jfrog, no build version)
116
+ .basic_poetry_linux_template : &POETRY_INSTALL_SCRIPT
117
+ << : *LINUX_CONTAINER_DEFINITION
118
+ << : *JFROG_MAC_LINUX_CONFIG_TEMPLATE
119
+ << : *POETRY_CACHE
120
+ poetry_basic_install_script :
121
+ - poetry install
122
+
123
+ # Poetry dependencies template (for tasks that override container)
124
+ .poetry_dependencies_template : &POETRY_DEPENDENCIES_TEMPLATE
125
+ << : *POETRY_CACHE
126
+ poetry_install_script :
127
+ - source set_poetry_build_version "$CI_BUILD_NUMBER"
128
+ - echo "PROJECT_VERSION=$PROJECT_VERSION" >> $CIRRUS_ENV
129
+ << : *JFROG_MAC_LINUX_CONFIG_TEMPLATE
130
+
131
+ # Full poetry linux template (for tasks needing everything)
104
132
.poetry_linux_template : &POETRY_LINUX_TEMPLATE
133
+ << : *LINUX_CONTAINER_DEFINITION
105
134
<< : *POETRY_TEMPLATE
106
- eks_container :
107
- << : *LINUX_CONTAINER_DEFINITION
108
135
109
136
.poetry_macos_template : &POETRY_MACOS_TEMPLATE
110
137
<< : *POETRY_CACHE
@@ -129,18 +156,12 @@ macos_worker_template: &MACOS_WORKER_DEFINITION
129
156
envname : prod
130
157
131
158
mend_scan_task :
132
- << : *POETRY_LINUX_TEMPLATE
159
+ << : *POETRY_DEPENDENCIES_TEMPLATE
133
160
depends_on :
134
161
- build
135
162
# run only on master and long-living branches
136
163
only_if : $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_TAG == "" && ($CIRRUS_BRANCH == "master" || $CIRRUS_BRANCH =~ "branch-.*")
137
- eks_container :
138
- image : ${CIRRUS_AWS_ACCOUNT}.dkr.ecr.eu-central-1.amazonaws.com/base:j21-latest
139
- region : eu-central-1
140
- cluster_name : ${CIRRUS_CLUSTER_NAME}
141
- namespace : default
142
- cpu : 4
143
- memory : 2G
164
+ << : *MEND_BASE_CONTAINER
144
165
env :
145
166
WS_APIKEY : VAULT[development/kv/data/mend data.apikey]
146
167
mend_script :
@@ -152,7 +173,8 @@ mend_scan_task:
152
173
path : " whitesource/**/*"
153
174
154
175
formatting_task :
155
- << : *POETRY_LINUX_TEMPLATE
176
+ << : *LINUX_CONTAINER_DEFINITION
177
+ << : *POETRY_INSTALL_SCRIPT
156
178
alias : formatting
157
179
name : " Formatting"
158
180
formatting_script :
@@ -162,17 +184,17 @@ formatting_task:
162
184
- git diff --name-only --exit-code ./src ./tests
163
185
164
186
documentation_task :
165
- << : *POETRY_LINUX_TEMPLATE
187
+ << : *LINUX_CONTAINER_DEFINITION
188
+ << : *POETRY_INSTALL_SCRIPT
166
189
alias : documentation
167
190
name : " CLI Documentation"
168
191
cli_docs_script :
169
192
- poetry run python tools/generate_cli_documentation.py
170
193
- git diff --exit-code CLI_ARGS.md
171
194
172
195
analysis_linux_task :
196
+ << : *LINUX_CONTAINER_DEFINITION
173
197
<< : *POETRY_CACHE
174
- eks_container :
175
- << : *LINUX_CONTAINER_DEFINITION
176
198
alias : analysis
177
199
name : " NEXT Analysis"
178
200
# For NEXT analysis we don't need to set the build versions, but we still need to access jfrog to recover the dependencies
@@ -218,6 +240,7 @@ qa_task:
218
240
eks_container :
219
241
docker_arguments :
220
242
PYTHON_VERSION : 3.13.2
243
+ << : *LINUX_CONTAINER_DEFINITION
221
244
<< : *POETRY_LINUX_TEMPLATE
222
245
qa_script :
223
246
- poetry run pytest tests/
@@ -251,6 +274,7 @@ qa_windows_task:
251
274
- exit $LASTEXITCODE
252
275
253
276
build_task :
277
+ << : *LINUX_CONTAINER_DEFINITION
254
278
<< : *POETRY_LINUX_TEMPLATE
255
279
alias : build
256
280
name : " Build"
@@ -263,6 +287,7 @@ its_task:
263
287
folder : sonarqube_cache/
264
288
populate_script : mkdir -p sonarqube_cache && wget -q https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-$SONARQUBE_VERSION.zip -O sonarqube_cache/sonarqube.zip
265
289
fingerprint_script : echo "sonarqube-$SONARQUBE_VERSION"
290
+ << : *LINUX_CONTAINER_DEFINITION
266
291
<< : *POETRY_LINUX_TEMPLATE
267
292
its_script :
268
293
- .cirrus/run_its.sh
0 commit comments