44# SETUP
55
66stages :
7- - fetch-secrets
87 - ci-image
98 - security
109 - analysis
@@ -14,9 +13,9 @@ stages:
1413 - notify
1514
1615.snippets :
17- fetch -secrets :
18- - mkdir -p ./ci/pipelines/secrets
19- - ./ci/scripts/fetch-secrets .sh
16+ source -secrets :
17+ - source ./ci/scripts/vault_config.sh
18+ - source ./ci/scripts/get-secret .sh
2019
2120 # macOS AMI will already have cmdline-tools installed
2221 install-android-api-components :
@@ -44,27 +43,15 @@ stages:
4443 - if [[ "$exit_code" -ne 0 ]]; then exit 1; fi
4544 - exit 0
4645 set-publishing-credentials :
47- - cp ./ci/pipelines/secrets/gradle.properties ./gradle.properties
48- - export GPG_PRIVATE_KEY=$(cat ./ci/pipelines/secrets/gpg_private_key )
49- - export GPG_PASSWORD=$(cat ./ci/pipelines/secrets/gpg_passphrase )
50- - export CENTRAL_PUBLISHER_USERNAME=$(cat ./ci/pipelines/secrets/central_username )
51- - export CENTRAL_PUBLISHER_PASSWORD=$(cat ./ci/pipelines/secrets/central_password )
52- - export GPG_PUBLIC_FINGERPRINT=$(cat ./ci/pipelines/secrets/gpg_public_key | gpg --import --import-options show-only | grep -E -o -e "[A-F0-9]{40}")
46+ - get_secret $DD_ANDROID_SECRET__GRADLE_PROPERTIES > ./gradle.properties
47+ - export GPG_PRIVATE_KEY=$(get_secret $DD_ANDROID_SECRET__SIGNING_GPG_PRIVATE_KEY )
48+ - export GPG_PASSWORD=$(get_secret $DD_ANDROID_SECRET__SIGNING_GPG_PASSPHRASE )
49+ - export CENTRAL_PUBLISHER_USERNAME=$(get_secret $DD_ANDROID_SECRET__PUBLISHING_CENTRAL_USERNAME )
50+ - export CENTRAL_PUBLISHER_PASSWORD=$(get_secret $DD_ANDROID_SECRET__PUBLISHING_CENTRAL_PWD )
51+ - export GPG_PUBLIC_FINGERPRINT=$(get_secret $DD_ANDROID_SECRET__SIGNING_GPG_PUBLIC_KEY | gpg --import --import-options show-only | grep -E -o -e "[A-F0-9]{40}")
5352
5453# CI IMAGE
5554
56- fetch-secrets :
57- stage : fetch-secrets
58- tags : ["macos:sonoma","specific:true"]
59- image : $CI_IMAGE_DOCKER
60- script :
61- - !reference [.snippets, fetch-secrets]
62- artifacts :
63- paths :
64- - ./ci/pipelines/secrets/
65- expire_in : 1 hour
66- when : always
67-
6855ci-image :
6956 stage : ci-image
7057 when : manual
@@ -199,12 +186,14 @@ test:kover:
199186 - cache/caches/
200187 - cache/notifications/
201188 script :
189+ - !reference [.snippets, source-secrets]
202190 - pip3 install datadog
203191 - rm -rf ~/.gradle/daemon/
204192 - export DD_AGENT_HOST="$BUILDENV_HOST_IP"
205- - export DD_API_KEY=$(cat ./ci/pipelines/secrets/api_key)
206- - export DD_APP_KEY=$(cat ./ci/pipelines/secrets/app_key)
207- - CODECOV_TOKEN=$(cat ./ci/pipelines/secrets/codecov_token)
193+ - export DD_API_KEY=$(get_secret $DD_ANDROID_SECRET__API_KEY)
194+ - vault token lookup
195+ - export DD_APP_KEY=$(get_secret $DD_ANDROID_SECRET__APP_KEY)
196+ - CODECOV_TOKEN=$(get_secret $DD_ANDROID_SECRET__CODECOV_TOKEN)
208197 - GRADLE_OPTS="-Xmx3072m" DD_TAGS="test.configuration.variant:release" ./gradlew :dd-sdk-android-core:koverXmlReportRelease --no-daemon --build-cache --gradle-user-home cache/ -Dorg.gradle.jvmargs=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar=$DD_COMMON_AGENT_CONFIG
209198 - GRADLE_OPTS="-Xmx3072m" DD_TAGS="test.configuration.variant:release" ./gradlew :dd-sdk-android-internal:koverXmlReportRelease --no-daemon --build-cache --gradle-user-home cache/ -Dorg.gradle.jvmargs=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar=$DD_COMMON_AGENT_CONFIG
210199 - GRADLE_OPTS="-Xmx3072m" DD_TAGS="test.configuration.variant:release" ./gradlew :koverReportFeatures --no-daemon --build-cache --gradle-user-home cache/ -Dorg.gradle.jvmargs=-javaagent:$DD_TRACER_FOLDER/dd-java-agent.jar=$DD_COMMON_AGENT_CONFIG
@@ -389,8 +378,9 @@ test-pyramid:detekt-api-coverage:
389378 stage : test-pyramid
390379 timeout : 1h
391380 script :
381+ - !reference [ .snippets, source-secrets ]
392382 - mkdir -p ./config/
393- - cp ./ci/pipelines/secrets/gradle.properties ./gradle.properties
383+ - get_secret $DD_ANDROID_SECRET__GRADLE_PROPERTIES > ./gradle.properties
394384 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesDebug --stacktrace --no-daemon
395385 - GRADLE_OPTS="-Xmx4096M" ./gradlew printSdkDebugRuntimeClasspath --stacktrace --no-daemon
396386 - GRADLE_OPTS="-Xmx4096M" ./gradlew :tools:detekt:jar --stacktrace --no-daemon
@@ -407,14 +397,15 @@ test-pyramid:publish-e2e-synthetics:
407397 only :
408398 - develop
409399 script :
400+ - !reference [ .snippets, source-secrets ]
410401 - mkdir -p ./config/
411- - cp ./ci/pipelines/secrets/gradle.properties ./gradle.properties
412- - cp ./ci/pipelines/secrets/keystore ./sample-android.keystore
413- - cp ./ci/pipelines/secrets/e2e_config.json ./config/us1.json
414- - export E2E_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
415- - export E2E_DD_API_KEY=$(cat ./ci/pipelines/secrets/e2e_api_key )
416- - export E2E_DD_APP_KEY=$(cat ./ci/pipelines/secrets/e2e_app_key )
417- - export E2E_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/e2e_mobile_app_id )
402+ - get_secret $DD_ANDROID_SECRET__GRADLE_PROPERTIES > ./gradle.properties
403+ - get_secret $DD_ANDROID_SECRET__KEYSTORE > ./sample-android.keystore
404+ - get_secret $DD_ANDROID_SECRET__E2E_CONFIG_JSON > ./config/us1.json
405+ - export E2E_STORE_PASSWD=$(get_secret $DD_ANDROID_SECRET__KEYSTORE_PWD )
406+ - export E2E_DD_API_KEY=$(get_secret $DD_ANDROID_SECRET__E2E_API_KEY )
407+ - export E2E_DD_APP_KEY=$(get_secret $DD_ANDROID_SECRET__E2E_APP_KEY )
408+ - export E2E_MOBILE_APP_ID=$(get_secret $DD_ANDROID_SECRET__E2E_MOBILE_APP_ID )
418409 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
419410 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:kotlin:packageUs1Release --stacktrace --no-daemon
420411 - npm update -g @datadog/datadog-ci
@@ -434,14 +425,15 @@ test-pyramid:publish-webview-synthetics:
434425 only :
435426 - develop
436427 script :
428+ - !reference [ .snippets, source-secrets ]
437429 - mkdir -p ./config/
438- - cp ./ci/pipelines/secrets/gradle.properties ./gradle.properties
439- - cp ./ci/pipelines/secrets/keystore ./sample-android.keystore
440- - cp ./ci/pipelines/secrets/webview_config.json ./config/us1.json
441- - export E2E_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
442- - export E2E_DD_API_KEY=$(cat ./ci/pipelines/secrets/webview_api_key )
443- - export E2E_DD_APP_KEY=$(cat ./ci/pipelines/secrets/webview_app_key )
444- - export E2E_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/webview_mobile_app_id )
430+ - get_secret $DD_ANDROID_SECRET__GRADLE_PROPERTIES > ./gradle.properties
431+ - get_secret $DD_ANDROID_SECRET__KEYSTORE > ./sample-android.keystore
432+ - get_secret $DD_ANDROID_SECRET__WEBVIEW_CONFIG_JSON > ./config/us1.json
433+ - export E2E_STORE_PASSWD=$(get_secret $DD_ANDROID_SECRET__KEYSTORE_PWD )
434+ - export E2E_DD_API_KEY=$(get_secret $DD_ANDROID_SECRET__WEBVIEW_API_KEY )
435+ - export E2E_DD_APP_KEY=$(get_secret $DD_ANDROID_SECRET__WEBVIEW_APP_KEY )
436+ - export E2E_MOBILE_APP_ID=$(get_secret $DD_ANDROID_SECRET__WEBVIEW_MOBILE_APP_ID )
445437 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
446438 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:kotlin:packageUs1Release --stacktrace --no-daemon
447439 - npm update -g @datadog/datadog-ci
@@ -461,14 +453,15 @@ test-pyramid:publish-staging-synthetics:
461453 only :
462454 - develop
463455 script :
456+ - !reference [ .snippets, source-secrets ]
464457 - mkdir -p ./config/
465- - cp ./ci/pipelines/secrets/gradle.properties ./gradle.properties
466- - cp ./ci/pipelines/secrets/keystore ./sample-android.keystore
467- - cp ./ci/pipelines/secrets/e2e_staging_config.json ./config/staging.json
468- - export E2E_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
469- - export E2E_DD_API_KEY=$(cat ./ci/pipelines/secrets/e2e_staging_api_key )
470- - export E2E_DD_APP_KEY=$(cat ./ci/pipelines/secrets/e2e_staging_app_key )
471- - export E2E_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/e2e_staging_app_id )
458+ - get_secret $DD_ANDROID_SECRET__GRADLE_PROPERTIES > ./gradle.properties
459+ - get_secret $DD_ANDROID_SECRET__KEYSTORE > ./sample-android.keystore
460+ - get_secret $DD_ANDROID_SECRET__E2E_STAGING_CONFIG_JSON > ./config/staging.json
461+ - export E2E_STORE_PASSWD=$(get_secret $DD_ANDROID_SECRET__KEYSTORE_PWD )
462+ - export E2E_DD_API_KEY=$(get_secret $DD_ANDROID_SECRET__E2E_STAGING_API_KEY )
463+ - export E2E_DD_APP_KEY=$(get_secret $DD_ANDROID_SECRET__E2E_STAGING_APP_KEY )
464+ - export E2E_MOBILE_APP_ID=$(get_secret $DD_ANDROID_SECRET__E2E_STAGING_APP_ID )
472465 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
473466 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:kotlin:packageStagingRelease --stacktrace --no-daemon
474467 - npm update -g @datadog/datadog-ci
@@ -488,14 +481,15 @@ test-pyramid:publish-benchmark-synthetics:
488481 only :
489482 - develop
490483 script :
484+ - !reference [ .snippets, source-secrets ]
491485 - mkdir -p ./config/
492- - cp ./ci/pipelines/secrets/gradle.properties ./gradle.properties
493- - cp ./ci/pipelines/secrets/keystore ./sample-benchmark.keystore
494- - cp ./ci/pipelines/secrets/benchmark_config.json ./config/benchmark.json
495- - export BM_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
496- - export BM_DD_API_KEY=$(cat ./ci/pipelines/secrets/benchmark_api_key )
497- - export BM_DD_APP_KEY=$(cat ./ci/pipelines/secrets/benchmark_app_key )
498- - export BM_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/benchmark_mobile_app_id )
486+ - get_secret $DD_ANDROID_SECRET__GRADLE_PROPERTIES > ./gradle.properties
487+ - get_secret $DD_ANDROID_SECRET__KEYSTORE > ./sample-benchmark.keystore
488+ - get_secret $DD_ANDROID_SECRET__BENCHMARK_CONFIG_JSON > ./config/benchmark.json
489+ - export BM_STORE_PASSWD=$(get_secret $DD_ANDROID_SECRET__KEYSTORE_PWD )
490+ - export BM_DD_API_KEY=$(get_secret $DD_ANDROID_SECRET__BENCHMARK_API_KEY )
491+ - export BM_DD_APP_KEY=$(get_secret $DD_ANDROID_SECRET__BENCHMARK_APP_KEY )
492+ - export BM_MOBILE_APP_ID=$(get_secret $DD_ANDROID_SECRET__BENCHMARK_MOBILE_APP_ID )
499493 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
500494 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:benchmark:packageRelease --stacktrace --no-daemon
501495 - npm update -g @datadog/datadog-ci
0 commit comments