Skip to content

Commit f7a05cd

Browse files
committed
wip
1 parent ba0a340 commit f7a05cd

File tree

3 files changed

+52
-61
lines changed

3 files changed

+52
-61
lines changed

ci/pipelines/default-pipeline.yml

Lines changed: 48 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ include:
44
# SETUP
55

66
stages:
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-
6855
ci-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

ci/scripts/get-secret.sh

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,9 @@ source ./ci/scripts/list-secrets.sh
1818
get_secret() {
1919
local secret_name=$1
2020

21-
export VAULT_ADDR=$DD_VAULT_ADDR
22-
23-
if [ "$CI" = "true" ]; then
24-
echo "Login as CI"
25-
vault login -method=aws -no-print
26-
else
21+
if [ "$CI" = "false" ]; then
22+
# K8s runners don't need to set VAULT_ADDR, they have VAULT_ADDR injected alongside the emissary sidecar container.
23+
export VAULT_ADDR=$DD_VAULT_ADDR
2724
if vault token lookup &>/dev/null; then
2825
echo "Reading '$secret_name' secret in local env. You are already authenticated with 'vault'." >&2
2926
else

ci/scripts/vault_config.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#
88

99
DD_VAULT_ADDR=https://vault.us1.ddbuild.io
10-
DD_ANDROID_SECRETS_PATH_PREFIX='kv/aws/arn:aws:iam::486234852809:role/ci-dd-sdk-android/'
10+
DD_ANDROID_SECRETS_PATH_PREFIX='kv/k8s/gitlab-runner/dd-sdk-android/'
1111

1212
DD_ANDROID_SECRET__TEST_SECRET="test.secret"
1313
DD_ANDROID_SECRET__GRADLE_PROPERTIES="gradle.properties"

0 commit comments

Comments
 (0)