|
62 | 62 | image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/docker:24.0.4-gbi-focal |
63 | 63 | before_script: |
64 | 64 | <?php echo $ecrLoginSnippet, "\n"; ?> |
65 | | - - | |
66 | | - echo "Logging in to Docker Hub" |
67 | | - if [ "$CI_REGISTRY_USER" = "" ]; then |
68 | | - echo "Fetching Docker Hub credentials from vault" |
69 | | - vaultoutput=$(vault kv get --format=json kv/k8s/gitlab-runner/dd-trace-php/dockerhub) |
70 | | - user=$(echo "$vaultoutput" | jq -r .data.data.user) |
71 | | - token=$(echo "$vaultoutput" | jq -r .data.data.token) |
72 | | - else |
73 | | - user="$CI_REGISTRY_USER" |
74 | | - token="$CI_REGISTRY_TOKEN" |
75 | | - fi |
76 | | - |
77 | | - echo "Docker Hub user: $user" |
78 | | - docker login -u "$user" -p "$token" docker.io |
79 | | - - apt update && apt install -y default-jre |
| 65 | +<?php dockerhub_login() ?> |
| 66 | + - apt update && apt install -y openjdk-17-jre |
80 | 67 |
|
81 | 68 | "test appsec extension": |
82 | 69 | stage: test |
83 | 70 | extends: .appsec_test |
84 | | - image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-${PHP_MAJOR_MINOR}_bookworm-5 |
| 71 | + image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-${PHP_MAJOR_MINOR}_bookworm-6 |
85 | 72 | variables: |
86 | 73 | KUBERNETES_CPU_REQUEST: 3 |
87 | 74 | KUBERNETES_MEMORY_REQUEST: 3Gi |
|
141 | 128 | - test8.5-release-zts |
142 | 129 | before_script: |
143 | 130 | <?php echo $ecrLoginSnippet, "\n"; ?> |
| 131 | +<?php dockerhub_login() ?> |
144 | 132 | script: |
145 | | - - apt update && apt install -y default-jre |
| 133 | + - apt update && apt install -y openjdk-17-jre |
146 | 134 | - find "$CI_PROJECT_DIR"/appsec/tests/integration/build || true |
147 | 135 | - | |
148 | 136 | cd appsec/tests/integration |
|
154 | 142 |
|
155 | 143 | TERM=dumb ./gradlew $targets --info -Pbuildscan --scan |
156 | 144 | TERM=dumb ./gradlew saveCaches --info |
| 145 | + after_script: |
| 146 | + - mkdir -p "${CI_PROJECT_DIR}/artifacts" |
| 147 | + - find appsec/tests/integration/build/test-results -name "*.xml" -exec cp --parents '{}' "${CI_PROJECT_DIR}/artifacts/" \; |
| 148 | + - .gitlab/upload-junit-to-datadog.sh "test.source.file:appsec" |
| 149 | + artifacts: |
| 150 | + reports: |
| 151 | + junit: "artifacts/**/test-results/**/TEST-*.xml" |
| 152 | + paths: |
| 153 | + - "artifacts/" |
| 154 | + when: "always" |
157 | 155 | cache: |
158 | 156 | - key: "appsec int test cache" |
159 | 157 | paths: |
|
162 | 160 | "appsec code coverage": |
163 | 161 | stage: test |
164 | 162 | extends: .appsec_test |
165 | | - image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-8.3_bookworm-5 |
| 163 | + image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-8.3_bookworm-6 |
166 | 164 | variables: |
167 | 165 | KUBERNETES_CPU_REQUEST: 3 |
168 | 166 | KUBERNETES_MEMORY_REQUEST: 3Gi |
|
265 | 263 | "appsec lint": |
266 | 264 | stage: test |
267 | 265 | extends: .appsec_test |
268 | | - image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-8.3_bookworm-5 |
| 266 | + image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-8.3_bookworm-6 |
269 | 267 | variables: |
270 | 268 | KUBERNETES_CPU_REQUEST: 3 |
271 | 269 | KUBERNETES_MEMORY_REQUEST: 9Gi |
|
287 | 285 | "test appsec helper asan": |
288 | 286 | stage: test |
289 | 287 | extends: .appsec_test |
290 | | - image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:bookworm-5 |
| 288 | + image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:bookworm-6 |
291 | 289 | variables: |
292 | 290 | KUBERNETES_CPU_REQUEST: 3 |
293 | 291 | KUBERNETES_MEMORY_REQUEST: 3Gi |
|
313 | 311 | #"fuzz appsec helper": |
314 | 312 | # stage: test |
315 | 313 | # extends: .appsec_test |
316 | | -# image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:bookworm-5 |
| 314 | +# image: registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:bookworm-6 |
317 | 315 | # variables: |
318 | 316 | # KUBERNETES_CPU_REQUEST: 3 |
319 | 317 | # KUBERNETES_MEMORY_REQUEST: 5Gi |
|
358 | 356 | # artifacts: |
359 | 357 | # paths: |
360 | 358 | # - appsec/fuzzer-coverage.html |
| 359 | + |
| 360 | +"check libxml2 version": |
| 361 | + stage: test |
| 362 | + image: registry.ddbuild.io/images/mirror/python:3.12-slim |
| 363 | + tags: [ "arch:amd64" ] |
| 364 | + needs: [] |
| 365 | + allow_failure: true |
| 366 | + variables: |
| 367 | + GIT_SUBMODULE_STRATEGY: none |
| 368 | + script: |
| 369 | + - | |
| 370 | + python3 - <<'EOF' |
| 371 | + import urllib.request |
| 372 | + import json |
| 373 | + import re |
| 374 | + import sys |
| 375 | + |
| 376 | + # Read local version |
| 377 | + with open("appsec/third_party/libxml2/VERSION") as f: |
| 378 | + local_version = f.read().strip() |
| 379 | + print(f"Local libxml2 version: {local_version}") |
| 380 | + |
| 381 | + # Fetch latest version from GNOME GitLab |
| 382 | + url = "https://gitlab.gnome.org/api/v4/projects/GNOME%2Flibxml2/repository/tags?per_page=100&order_by=updated&sort=desc" |
| 383 | + with urllib.request.urlopen(url) as response: |
| 384 | + tags = json.load(response) |
| 385 | + |
| 386 | + # Extract version numbers and find the latest |
| 387 | + versions = [] |
| 388 | + for tag in tags: |
| 389 | + match = re.match(r"v(\d+\.\d+\.\d+)$", tag["name"]) |
| 390 | + if match: |
| 391 | + versions.append(match.group(1)) |
| 392 | + |
| 393 | + # Sort by version number |
| 394 | + versions.sort(key=lambda v: tuple(map(int, v.split(".")))) |
| 395 | + latest_version = versions[-1] if versions else None |
| 396 | + |
| 397 | + print(f"Latest libxml2 version: {latest_version}") |
| 398 | + |
| 399 | + if local_version != latest_version: |
| 400 | + print("ERROR: libxml2 version mismatch!") |
| 401 | + print(f"Local version: {local_version}") |
| 402 | + print(f"Latest version: {latest_version}") |
| 403 | + print("Please update appsec/third_party/libxml2 to the latest version.") |
| 404 | + sys.exit(1) |
| 405 | + |
| 406 | + print("libxml2 version is up to date.") |
| 407 | + EOF |
0 commit comments