Skip to content

Commit bdd2305

Browse files
committed
SCANPY-176 Avoid using POETRY_LINUX_TEMPLATE for Mend, formatting and documentation tasks
1 parent 5f4069a commit bdd2305

File tree

1 file changed

+54
-52
lines changed

1 file changed

+54
-52
lines changed

.cirrus.yml

Lines changed: 54 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,36 @@ env:
1313
SONARQUBE_VERSION: 25.3.0.104237
1414
# Use bash (instead of sh on linux or cmd.exe on windows)
1515
CIRRUS_SHELL: bash
16+
JF_ALIAS: "jfrog"
1617

1718
only_if: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_TAG == "" && ($CIRRUS_PR != "" || $CIRRUS_BRANCH == 'master' || $CIRRUS_BRANCH =~ "branch-.*")
1819
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_container_definition: &MEND_CONTAINER_DEFINITION
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
3142

3243
win_vm_definition: &WINDOWS_VM_DEFINITION
44+
env:
45+
JF_ALIAS: "jf"
3346
ec2_instance:
3447
experimental: true # see https://github.com/cirruslabs/cirrus-ci-docs/issues/1051
3548
image: base-windows-jdk17-v*
@@ -58,22 +71,12 @@ win_ssd_and_clone:
5871
git reset --hard $CIRRUS_CHANGE_IN_REPO
5972
fi
6073
61-
.jfrog__config_template: &JFROG_CONFIG_TEMPLATE
74+
.jfrog_config_template: &JFROG_CONFIG_TEMPLATE
6275
jfrog_config_script:
6376
- $JF_ALIAS config add repox --artifactory-url "$ARTIFACTORY_URL" --access-token "$ARTIFACTORY_PRIVATE_ACCESS_TOKEN"
6477
- $JF_ALIAS poetry-config --server-id-resolve repox --repo-resolve sonarsource-pypi
6578
- $JF_ALIAS poetry install --build-name="$CIRRUS_REPO_NAME" --build-number="$CI_BUILD_NUMBER"
6679

67-
.jfrog_windows_config_template: &JFROG_WIN_CONFIG_TEMPLATE
68-
env:
69-
JF_ALIAS: "jf"
70-
<<: *JFROG_CONFIG_TEMPLATE
71-
72-
.jfrog_MAC_LINUX_config_template: &JFROG_MAC_LINUX_CONFIG_TEMPLATE
73-
env:
74-
JF_ALIAS: "jfrog"
75-
<<: *JFROG_CONFIG_TEMPLATE
76-
7780
poetry_win_install: &POETRY_WIN_INSTALL
7881
<<: *WINDOWS_VM_DEFINITION
7982
<<: *WIN_SSD_AND_CLONE
@@ -86,25 +89,23 @@ poetry_win_install: &POETRY_WIN_INSTALL
8689
poetry_win_install_script:
8790
- source cirrus-env QA
8891
- pip install poetry=="$POETRY_VERSION"
89-
- source set_poetry_build_version "$CI_BUILD_NUMBER"
90-
<<: *JFROG_WIN_CONFIG_TEMPLATE
92+
<<: *JFROG_CONFIG_TEMPLATE
9193

9294
poetry_cache_template: &POETRY_CACHE
9395
poetry_cache:
9496
folder: ~/.cache/poetry/
9597
fingerprint_script: cat poetry.lock
9698

97-
.poetry_template: &POETRY_TEMPLATE
99+
.poetry_install_template: &POETRY_INSTALL
98100
<<: *POETRY_CACHE
101+
<<: *JFROG_CONFIG_TEMPLATE
99102
poetry_install_script:
103+
- poetry install
104+
105+
.poetry_set_version_template: &POETRY_SET_VERSION
106+
poetry_set_version_script:
100107
- source set_poetry_build_version "$CI_BUILD_NUMBER"
101108
- echo "PROJECT_VERSION=$PROJECT_VERSION" >> $CIRRUS_ENV
102-
<<: *JFROG_MAC_LINUX_CONFIG_TEMPLATE
103-
104-
.poetry_linux_template: &POETRY_LINUX_TEMPLATE
105-
<<: *POETRY_TEMPLATE
106-
eks_container:
107-
<<: *LINUX_CONTAINER_DEFINITION
108109

109110
.poetry_macos_template: &POETRY_MACOS_TEMPLATE
110111
<<: *POETRY_CACHE
@@ -114,7 +115,7 @@ poetry_cache_template: &POETRY_CACHE
114115
poetry_install_script:
115116
- brew install poetry
116117
- poetry config keyring.enabled false # Keyring is locked in macOS VM and not needed for downloading dependencies
117-
<<: *JFROG_MAC_LINUX_CONFIG_TEMPLATE
118+
<<: *JFROG_CONFIG_TEMPLATE
118119

119120
macos_worker_template: &MACOS_WORKER_DEFINITION
120121
persistent_worker:
@@ -129,20 +130,15 @@ macos_worker_template: &MACOS_WORKER_DEFINITION
129130
envname: prod
130131

131132
mend_scan_task:
132-
<<: *POETRY_LINUX_TEMPLATE
133133
depends_on:
134134
- build
135135
# run only on master and long-living branches
136136
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
137+
<<: *MEND_CONTAINER_DEFINITION
144138
env:
145139
WS_APIKEY: VAULT[development/kv/data/mend data.apikey]
140+
<<: *POETRY_INSTALL
141+
<<: *POETRY_SET_VERSION
146142
mend_script:
147143
- source cirrus-env QA
148144
- source ws_scan.sh
@@ -152,33 +148,32 @@ mend_scan_task:
152148
path: "whitesource/**/*"
153149

154150
formatting_task:
155-
<<: *POETRY_LINUX_TEMPLATE
156151
alias: formatting
157152
name: "Formatting"
153+
<<: *LINUX_CONTAINER_DEFINITION
154+
<<: *POETRY_INSTALL
158155
formatting_script:
159156
- poetry run black src/ tests/ --check
160157
- poetry run licenseheaders -t license_header.tmpl -o "SonarSource SA" -y 2011-2024 -n "Sonar Scanner Python" -E .py -d src/
161158
- poetry run licenseheaders -t license_header.tmpl -o "SonarSource SA" -y 2011-2024 -n "Sonar Scanner Python" -E .py -d tests/
162159
- git diff --name-only --exit-code ./src ./tests
163160

164161
documentation_task:
165-
<<: *POETRY_LINUX_TEMPLATE
166162
alias: documentation
167163
name: "CLI Documentation"
164+
<<: *LINUX_CONTAINER_DEFINITION
165+
<<: *POETRY_INSTALL
168166
cli_docs_script:
169167
- poetry run python tools/generate_cli_documentation.py
170168
- git diff --exit-code CLI_ARGS.md
171169

172170
analysis_linux_task:
173-
<<: *POETRY_CACHE
174-
eks_container:
175-
<<: *LINUX_CONTAINER_DEFINITION
171+
<<: *LINUX_CONTAINER_DEFINITION
176172
alias: analysis
177173
name: "NEXT Analysis"
174+
<<: *POETRY_INSTALL
178175
# For NEXT analysis we don't need to set the build versions, but we still need to access jfrog to recover the dependencies
179-
<<: *JFROG_MAC_LINUX_CONFIG_TEMPLATE
180176
analysis_script:
181-
- poetry install
182177
- poetry run pytest --cov-report=xml:coverage.xml --cov-config=pyproject.toml --cov=src --cov-branch tests
183178
- poetry run mypy src/ > mypy-report.txt || true # mypy exits with 1 if there are errors
184179
- uv venv
@@ -218,7 +213,9 @@ qa_task:
218213
eks_container:
219214
docker_arguments:
220215
PYTHON_VERSION: 3.13.2
221-
<<: *POETRY_LINUX_TEMPLATE
216+
<<: *LINUX_CONTAINER_DEFINITION
217+
<<: *POETRY_INSTALL
218+
<<: *POETRY_SET_VERSION
222219
qa_script:
223220
- poetry run pytest tests/
224221

@@ -245,13 +242,16 @@ qa_macos_task:
245242
qa_windows_task:
246243
name: "Test Windows"
247244
<<: *POETRY_WIN_INSTALL
245+
<<: *POETRY_SET_VERSION
248246
alias: qa_windows
249247
qa_script:
250248
- poetry run pytest tests/
251249
- exit $LASTEXITCODE
252250

253251
build_task:
254-
<<: *POETRY_LINUX_TEMPLATE
252+
<<: *LINUX_CONTAINER_DEFINITION
253+
<<: *POETRY_INSTALL
254+
<<: *POETRY_SET_VERSION
255255
alias: build
256256
name: "Build"
257257
build_script: regular_poetry_build_publish
@@ -263,7 +263,8 @@ its_task:
263263
folder: sonarqube_cache/
264264
populate_script: mkdir -p sonarqube_cache && wget -q https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-$SONARQUBE_VERSION.zip -O sonarqube_cache/sonarqube.zip
265265
fingerprint_script: echo "sonarqube-$SONARQUBE_VERSION"
266-
<<: *POETRY_LINUX_TEMPLATE
266+
<<: *LINUX_CONTAINER_DEFINITION
267+
<<: *POETRY_INSTALL
267268
its_script:
268269
- .cirrus/run_its.sh
269270

@@ -291,5 +292,6 @@ promote_task:
291292
env:
292293
ARTIFACTORY_PROMOTE_ACCESS_TOKEN: VAULT[development/artifactory/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-promoter access_token]
293294
GITHUB_TOKEN: VAULT[development/github/token/${CIRRUS_REPO_OWNER}-${CIRRUS_REPO_NAME}-promotion token]
294-
<<: *POETRY_LINUX_TEMPLATE
295+
<<: *POETRY_INSTALL
296+
<<: *POETRY_SET_VERSION
295297
promote_script: cirrus_promote

0 commit comments

Comments
 (0)