|
247 | 247 | <?php dockerhub_login() ?> |
248 | 248 | script: |
249 | 249 | - apt update && apt install -y openjdk-17-jre |
250 | | - - | |
251 | | - echo "Installing codecov CLI" |
252 | | - curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&options=mr&search=0x27034E7FDB850E0BBC2C62FF806BB28AED779869" | gpg --no-default-keyring --keyring trustedkeys.gpg --import |
253 | | - CODECOV_VERSION=0.6.1 |
254 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/linux/codecov |
255 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/linux/codecov.SHA256SUM |
256 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/linux/codecov.SHA256SUM.sig |
257 | | - gpgv codecov.SHA256SUM.sig codecov.SHA256SUM |
258 | | - shasum -a 256 -c codecov.SHA256SUM |
259 | | - rm codecov.SHA256SUM.sig codecov.SHA256SUM |
260 | | - chmod +x codecov |
261 | | - mv codecov /usr/local/bin/codecov |
262 | | - - | |
263 | | - echo "Installing vault for codecov token" |
264 | | - curl -o vault.zip https://releases.hashicorp.com/vault/1.20.0/vault_1.20.0_linux_amd64.zip |
265 | | - unzip vault.zip |
266 | | - mv vault /usr/local/bin/vault |
267 | | - rm vault.zip |
268 | 250 | - | |
269 | 251 | cd appsec/tests/integration |
270 | 252 | CACHE_PATH=build/php-appsec-volume-caches-${ARCH}.tar.gz |
|
280 | 262 | mkdir -p "$CI_PROJECT_DIR"/appsec/helper-rust |
281 | 263 | docker run --rm -v php-helper-rust-coverage:/vol alpine cat /vol/coverage-unit.lcov > "$CI_PROJECT_DIR"/appsec/helper-rust/coverage-unit.lcov |
282 | 264 | - | |
283 | | - echo "Uploading helper-rust unit test coverage to codecov" |
284 | 265 | cd "$CI_PROJECT_DIR" |
285 | | - if ! VAULT_OUTPUT=$(vault kv get --format=json kv/k8s/gitlab-runner/dd-trace-php/codecov); then |
286 | | - echo "ERROR: vault unreachable while fetching CODECOV_TOKEN; exiting 75 so GitLab auto-retries (see default retry.exit_codes in generate-common.php)" |
287 | | - exit 75 |
288 | | - fi |
289 | | - CODECOV_TOKEN=$(echo "$VAULT_OUTPUT" | jq -r .data.data.token) |
290 | | - if [ -z "$CODECOV_TOKEN" ] || [ "$CODECOV_TOKEN" = "null" ]; then |
291 | | - echo "ERROR: CODECOV_TOKEN empty/null after vault fetch; exiting 75 so GitLab auto-retries" |
292 | | - exit 75 |
293 | | - fi |
294 | | - codecov -t "$CODECOV_TOKEN" -n helper-rust-unit -F helper-rust-unit -v -f appsec/helper-rust/coverage-unit.lcov |
| 266 | + DD_COVERAGE_FLAGS=helper-rust-unit \ |
| 267 | + .gitlab/upload-code-coverage-to-datadog.sh appsec/helper-rust/coverage-unit.lcov |
295 | 268 | artifacts: |
296 | 269 | paths: |
297 | 270 | - appsec/helper-rust/coverage-unit.lcov |
|
322 | 295 | <?php dockerhub_login() ?> |
323 | 296 | script: |
324 | 297 | - apt update && apt install -y openjdk-17-jre |
325 | | - - | |
326 | | - echo "Installing codecov CLI" |
327 | | - curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&options=mr&search=0x27034E7FDB850E0BBC2C62FF806BB28AED779869" | gpg --no-default-keyring --keyring trustedkeys.gpg --import |
328 | | - CODECOV_VERSION=0.6.1 |
329 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/linux/codecov |
330 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/linux/codecov.SHA256SUM |
331 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/linux/codecov.SHA256SUM.sig |
332 | | - gpgv codecov.SHA256SUM.sig codecov.SHA256SUM |
333 | | - shasum -a 256 -c codecov.SHA256SUM |
334 | | - rm codecov.SHA256SUM.sig codecov.SHA256SUM |
335 | | - chmod +x codecov |
336 | | - mv codecov /usr/local/bin/codecov |
337 | | - - | |
338 | | - echo "Installing vault for codecov token" |
339 | | - curl -o vault.zip https://releases.hashicorp.com/vault/1.20.0/vault_1.20.0_linux_amd64.zip |
340 | | - unzip vault.zip |
341 | | - mv vault /usr/local/bin/vault |
342 | | - rm vault.zip |
343 | 298 | - | |
344 | 299 | cd appsec/tests/integration |
345 | 300 | CACHE_PATH=build/php-appsec-volume-caches-${ARCH}.tar.gz |
|
359 | 314 | mkdir -p "$CI_PROJECT_DIR"/appsec/helper-rust |
360 | 315 | docker run --rm -v php-helper-rust-coverage:/vol alpine cat /vol/coverage-integration.lcov > "$CI_PROJECT_DIR"/appsec/helper-rust/coverage-integration.lcov |
361 | 316 | - | |
362 | | - echo "Uploading helper-rust integration test coverage to codecov" |
363 | 317 | cd "$CI_PROJECT_DIR" |
364 | | - if ! VAULT_OUTPUT=$(vault kv get --format=json kv/k8s/gitlab-runner/dd-trace-php/codecov); then |
365 | | - echo "ERROR: vault unreachable while fetching CODECOV_TOKEN; exiting 75 so GitLab auto-retries (see default retry.exit_codes in generate-common.php)" |
366 | | - exit 75 |
367 | | - fi |
368 | | - CODECOV_TOKEN=$(echo "$VAULT_OUTPUT" | jq -r .data.data.token) |
369 | | - if [ -z "$CODECOV_TOKEN" ] || [ "$CODECOV_TOKEN" = "null" ]; then |
370 | | - echo "ERROR: CODECOV_TOKEN empty/null after vault fetch; exiting 75 so GitLab auto-retries" |
371 | | - exit 75 |
372 | | - fi |
373 | | - codecov -t "$CODECOV_TOKEN" -n helper-rust-integration -F helper-rust-integration -v -f appsec/helper-rust/coverage-integration.lcov |
| 318 | + DD_COVERAGE_FLAGS=helper-rust-integration \ |
| 319 | + .gitlab/upload-code-coverage-to-datadog.sh appsec/helper-rust/coverage-integration.lcov |
374 | 320 | after_script: |
375 | 321 | - mkdir -p "${CI_PROJECT_DIR}/artifacts" |
376 | 322 | - find appsec/tests/integration/build/test-results -name "*.xml" -exec cp --parents '{}' "${CI_PROJECT_DIR}/artifacts/" \; || true |
|
401 | 347 | script: |
402 | 348 | - | |
403 | 349 | echo "Installing dependencies" |
404 | | - cd /tmp |
405 | | - curl -o vault.zip https://releases.hashicorp.com/vault/1.20.0/vault_1.20.0_linux_amd64.zip |
406 | | - unzip vault.zip |
407 | | - sudo cp -v vault /usr/local/bin |
408 | | - cd - |
409 | | - sudo sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g; s|http://security.debian.org/debian-security|http://archive.debian.org/debian-security|g' /etc/apt/sources.list |
410 | 350 | sudo apt-get update && sudo apt-get install -y jq gcovr llvm-20 clang-20 |
411 | | - |
412 | | - echo "Installing codecov" |
413 | | - |
414 | | - CODECOV_TOKEN=$(vault kv get --format=json kv/k8s/gitlab-runner/dd-trace-php/codecov | jq -r .data.data.token) |
415 | | - CODECOV_VERSION=0.6.1 |
416 | | - CODECOV_ARCH=linux |
417 | | - curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&options=mr&search=0x27034E7FDB850E0BBC2C62FF806BB28AED779869" | gpg --no-default-keyring --keyring trustedkeys.gpg --import |
418 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/${CODECOV_ARCH}/codecov |
419 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/${CODECOV_ARCH}/codecov.SHA256SUM |
420 | | - curl -Os https://uploader.codecov.io/v${CODECOV_VERSION}/${CODECOV_ARCH}/codecov.SHA256SUM.sig |
421 | | - gpgv codecov.SHA256SUM.sig codecov.SHA256SUM |
422 | | - shasum -a 256 -c codecov.SHA256SUM |
423 | | - rm codecov.SHA256SUM.sig codecov.SHA256SUM |
424 | | - sudo mv codecov /usr/local/bin/codecov |
425 | | - sudo chmod +x /usr/local/bin/codecov |
426 | 351 | - cd appsec/build |
427 | 352 | - | |
428 | 353 | cmake .. -DCMAKE_BUILD_TYPE=Debug -DDD_APPSEC_ENABLE_COVERAGE=ON \ |
|
445 | 370 | llvm-cov-20 export "$CI_PROJECT_DIR"/appsec/build/ddappsec.so \ |
446 | 371 | -format=lcov -instr-profile=default.profdata \ |
447 | 372 | > "$CI_PROJECT_DIR"/appsec/build/coverage-ext.lcov |
448 | | - echo "Uploading extension coverage to codecov" |
449 | | - cd "$CI_PROJECT_DIR" |
450 | | - codecov -t "$CODECOV_TOKEN" -n appsec-extension -v -f appsec/build/coverage-ext.lcov |
451 | 373 | - | |
452 | 374 | cd /tmp/cov-helper |
453 | 375 | llvm-profdata-20 merge -sparse *.profraw -o default.profdata |
454 | 376 | llvm-cov-20 export "$CI_PROJECT_DIR"/appsec/build/tests/helper/ddappsec_helper_test \ |
455 | 377 | -format=lcov -instr-profile=default.profdata \ |
456 | 378 | > "$CI_PROJECT_DIR/appsec/build/coverage-helper.lcov" |
457 | | - echo "Uploading helper coverage to codecov" |
458 | | - cd "$CI_PROJECT_DIR" |
459 | | - codecov -t "$CODECOV_TOKEN" -n appsec-helper -v -f appsec/build/coverage-helper.lcov |
460 | 379 | - | |
461 | | - echo "Uploading coverage to Datadog" |
462 | 380 | cd "$CI_PROJECT_DIR" |
463 | | - |
464 | | - DATADOG_API_KEY=$(vault kv get --format=json kv/k8s/gitlab-runner/dd-trace-php/datadoghq-api-key | jq -r .data.data.key) |
465 | | - export DATADOG_API_KEY |
466 | | - export DD_SITE="datadoghq.com" |
467 | | - |
468 | | - # Install datadog-ci |
469 | | - DATADOG_CI_VERSION="v5.9.1" |
470 | | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/download/${DATADOG_CI_VERSION}/datadog-ci_linux-x64" --output "/tmp/datadog-ci" |
471 | | - chmod +x /tmp/datadog-ci |
472 | | - |
473 | | - echo "Uploading extension coverage to Datadog" |
474 | | - /tmp/datadog-ci coverage upload --format=lcov appsec/build/coverage-ext.lcov || true |
475 | | - |
476 | | - echo "Uploading helper coverage to Datadog" |
477 | | - /tmp/datadog-ci coverage upload --format=lcov appsec/build/coverage-helper.lcov || true |
| 381 | + .gitlab/upload-code-coverage-to-datadog.sh \ |
| 382 | + appsec/build/coverage-ext.lcov \ |
| 383 | + appsec/build/coverage-helper.lcov |
478 | 384 |
|
479 | 385 |
|
480 | 386 | "push appsec images": |
|
0 commit comments