44# SETUP
55
66stages :
7+ - fetch-secrets
78 - ci-image
89 - security
910 - analysis
@@ -13,6 +14,10 @@ stages:
1314 - notify
1415
1516.snippets :
17+ fetch-secrets :
18+ - mkdir -p ./ci/pipelines/secrets
19+ - ./ci/scripts/fetch-secrets.sh
20+
1621 # macOS AMI will already have cmdline-tools installed
1722 install-android-api-components :
1823 - echo y | ~/android_sdk/cmdline-tools/latest/bin/sdkmanager --install "emulator"
@@ -39,15 +44,27 @@ stages:
3944 - if [[ "$exit_code" -ne 0 ]]; then exit 1; fi
4045 - exit 0
4146 set-publishing-credentials :
42- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. gradle-properties --with-decryption --query "Parameter.Value" --out text >> ./gradle.properties
43- - export GPG_PRIVATE_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing. gpg_private_key --with-decryption --query "Parameter.Value" --out text )
44- - export GPG_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing. gpg_passphrase --with-decryption --query "Parameter.Value" --out text )
45- - export CENTRAL_PUBLISHER_USERNAME=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.publishing. central_username --with-decryption --query "Parameter.Value" --out text )
46- - export CENTRAL_PUBLISHER_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.publishing. central_password --with-decryption --query "Parameter.Value" --out text )
47- - export GPG_PUBLIC_FINGERPRINT=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing. gpg_public_key --with-decryption --query "Parameter.Value" --out text | gpg --import --import-options show-only | grep -E -o -e "[A-F0-9]{40}")
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}")
4853
4954# CI IMAGE
5055
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+
5168ci-image :
5269 stage : ci-image
5370 when : manual
@@ -184,9 +201,9 @@ test:kover:
184201 - pip3 install datadog
185202 - rm -rf ~/.gradle/daemon/
186203 - export DD_AGENT_HOST="$BUILDENV_HOST_IP"
187- - export DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. api_key --with-decryption --query "Parameter.Value" --out text )
188- - export DD_APP_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. app_key --with-decryption --query "Parameter.Value" --out text )
189- - CODECOV_TOKEN=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.codecov-token --with-decryption --query "Parameter.Value" --out text )
204+ - export DD_API_KEY=$(cat ./ci/pipelines/secrets/ api_key)
205+ - export DD_APP_KEY=$(cat ./ci/pipelines/secrets/ app_key)
206+ - CODECOV_TOKEN=$(cat ./ci/pipelines/secrets/codecov_token )
190207 - 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
191208 - 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
192209 - 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
@@ -372,7 +389,7 @@ test-pyramid:detekt-api-coverage:
372389 timeout : 1h
373390 script :
374391 - mkdir -p ./config/
375- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. gradle-properties --with-decryption --query "Parameter.Value" --out text >> ./gradle.properties
392+ - cp ./ci/pipelines/secrets/ gradle.properties ./gradle.properties
376393 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesDebug --stacktrace --no-daemon
377394 - GRADLE_OPTS="-Xmx4096M" ./gradlew printSdkDebugRuntimeClasspath --stacktrace --no-daemon
378395 - GRADLE_OPTS="-Xmx4096M" ./gradlew :tools:detekt:jar --stacktrace --no-daemon
@@ -390,13 +407,13 @@ test-pyramid:publish-e2e-synthetics:
390407 - develop
391408 script :
392409 - mkdir -p ./config/
393- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. gradle-properties --with-decryption --query "Parameter.Value" --out text >> ./gradle.properties
394- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. keystore --with-decryption --query "Parameter.Value" --out text | base64 -d > ./sample-android.keystore
395- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.e2e_config_json --with-decryption --query "Parameter.Value" --out text > ./config/us1.json
396- - export E2E_STORE_PASSWD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.keystore-password --with-decryption --query "Parameter.Value" --out text )
397- - export E2E_DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. e2e_api_key --with-decryption --query "Parameter.Value" --out text )
398- - export E2E_DD_APP_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. e2e_app_key --with-decryption --query "Parameter.Value" --out text )
399- - export E2E_MOBILE_APP_ID=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. e2e_mobile_app_id --with-decryption --query "Parameter.Value" --out text )
410+ - cp ./ci/pipelines/secrets/ gradle.properties ./gradle.properties
411+ - cp ./ci/pipelines/secrets/ keystore ./sample-android.keystore
412+ - cp ./ci/pipelines/secrets/e2e_config.json ./config/us1.json
413+ - export E2E_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
414+ - export E2E_DD_API_KEY=$(cat ./ci/pipelines/secrets/ e2e_api_key)
415+ - export E2E_DD_APP_KEY=$(cat ./ci/pipelines/secrets/ e2e_app_key)
416+ - export E2E_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/ e2e_mobile_app_id)
400417 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
401418 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:kotlin:packageUs1Release --stacktrace --no-daemon
402419 - npm update -g @datadog/datadog-ci
@@ -417,13 +434,13 @@ test-pyramid:publish-webview-synthetics:
417434 - develop
418435 script :
419436 - mkdir -p ./config/
420- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. gradle-properties --with-decryption --query "Parameter.Value" --out text >> ./gradle.properties
421- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. keystore --with-decryption --query "Parameter.Value" --out text | base64 -d > ./sample-android.keystore
422- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.webview_config_json --with-decryption --query "Parameter.Value" --out text > ./config/us1.json
423- - export E2E_STORE_PASSWD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.keystore-password --with-decryption --query "Parameter.Value" --out text )
424- - export E2E_DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. webview_api_key --with-decryption --query "Parameter.Value" --out text )
425- - export E2E_DD_APP_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. webview_app_key --with-decryption --query "Parameter.Value" --out text )
426- - export E2E_MOBILE_APP_ID=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. webview_mobile_app_id --with-decryption --query "Parameter.Value" --out text )
437+ - cp ./ci/pipelines/secrets/ gradle.properties ./gradle.properties
438+ - cp ./ci/pipelines/secrets/ keystore ./sample-android.keystore
439+ - cp ./ci/pipelines/secrets/webview_config.json ./config/us1.json
440+ - export E2E_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
441+ - export E2E_DD_API_KEY=$(cat ./ci/pipelines/secrets/ webview_api_key)
442+ - export E2E_DD_APP_KEY=$(cat ./ci/pipelines/secrets/ webview_app_key)
443+ - export E2E_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/ webview_mobile_app_id)
427444 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
428445 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:kotlin:packageUs1Release --stacktrace --no-daemon
429446 - npm update -g @datadog/datadog-ci
@@ -444,13 +461,13 @@ test-pyramid:publish-staging-synthetics:
444461 - develop
445462 script :
446463 - mkdir -p ./config/
447- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. gradle-properties --with-decryption --query "Parameter.Value" --out text >> ./gradle.properties
448- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. keystore --with-decryption --query "Parameter.Value" --out text | base64 -d > ./sample-android.keystore
449- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.e2e_staging_config_json --with-decryption --query "Parameter.Value" --out text > ./config/staging.json
450- - export E2E_STORE_PASSWD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.keystore-password --with-decryption --query "Parameter.Value" --out text )
451- - export E2E_DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. e2e_staging_api_key --with-decryption --query "Parameter.Value" --out text )
452- - export E2E_DD_APP_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. e2e_staging_app_key --with-decryption --query "Parameter.Value" --out text )
453- - export E2E_MOBILE_APP_ID=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.e2e_staging_mobile_app_id --with-decryption --query "Parameter.Value" --out text )
464+ - cp ./ci/pipelines/secrets/ gradle.properties ./gradle.properties
465+ - cp ./ci/pipelines/secrets/ keystore ./sample-android.keystore
466+ - cp ./ci/pipelines/secrets/e2e_staging_config.json ./config/staging.json
467+ - export E2E_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
468+ - export E2E_DD_API_KEY=$(cat ./ci/pipelines/secrets/ e2e_staging_api_key)
469+ - export E2E_DD_APP_KEY=$(cat ./ci/pipelines/secrets/ e2e_staging_app_key)
470+ - export E2E_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/e2e_staging_app_id )
454471 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
455472 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:kotlin:packageStagingRelease --stacktrace --no-daemon
456473 - npm update -g @datadog/datadog-ci
@@ -471,13 +488,13 @@ test-pyramid:publish-benchmark-synthetics:
471488 - develop
472489 script :
473490 - mkdir -p ./config/
474- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. gradle-properties --with-decryption --query "Parameter.Value" --out text >> ./gradle.properties
475- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. keystore --with-decryption --query "Parameter.Value" --out text | base64 -d > ./sample-benchmark.keystore
476- - aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.benchmark_config_json --with-decryption --query "Parameter.Value" --out text > ./config/benchmark.json
477- - export BM_STORE_PASSWD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.keystore-password --with-decryption --query "Parameter.Value" --out text )
478- - export BM_DD_API_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. benchmark_api_key --with-decryption --query "Parameter.Value" --out text )
479- - export BM_DD_APP_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. benchmark_app_key --with-decryption --query "Parameter.Value" --out text )
480- - export BM_MOBILE_APP_ID=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android. benchmark_mobile_app_id --with-decryption --query "Parameter.Value" --out text )
491+ - cp ./ci/pipelines/secrets/ gradle.properties ./gradle.properties
492+ - cp ./ci/pipelines/secrets/ keystore ./sample-benchmark.keystore
493+ - cp ./ci/pipelines/secrets/benchmark_config.json ./config/benchmark.json
494+ - export BM_STORE_PASSWD=$(cat ./ci/pipelines/secrets/keystore_password )
495+ - export BM_DD_API_KEY=$(cat ./ci/pipelines/secrets/ benchmark_api_key)
496+ - export BM_DD_APP_KEY=$(cat ./ci/pipelines/secrets/ benchmark_app_key)
497+ - export BM_MOBILE_APP_ID=$(cat ./ci/pipelines/secrets/ benchmark_mobile_app_id)
481498 - GRADLE_OPTS="-Xmx4096M" ./gradlew assembleLibrariesRelease --stacktrace --no-daemon
482499 - GRADLE_OPTS="-Xmx4096M" ./gradlew :sample:benchmark:packageRelease --stacktrace --no-daemon
483500 - npm update -g @datadog/datadog-ci
0 commit comments