Skip to content

Commit e9b2b58

Browse files
[test optimization] Update test optimization spec (#5897)
1 parent a8b7185 commit e9b2b58

18 files changed

+569
-32
lines changed

packages/dd-trace/src/plugins/util/ci.js

Lines changed: 81 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ const {
2424
GIT_COMMIT_COMMITTER_NAME,
2525
GIT_COMMIT_COMMITTER_EMAIL,
2626
CI_NODE_LABELS,
27-
CI_NODE_NAME
27+
CI_NODE_NAME,
28+
PR_NUMBER
2829
} = require('./tags')
2930
const { filterSensitiveInfoFromRepository } = require('./url')
3031
const { getEnvironmentVariable } = require('../../config-helper')
@@ -109,7 +110,9 @@ module.exports = {
109110
GIT_URL_1: JENKINS_GIT_REPOSITORY_URL_1,
110111
DD_CUSTOM_TRACE_ID,
111112
NODE_NAME,
112-
NODE_LABELS
113+
NODE_LABELS,
114+
CHANGE_ID,
115+
CHANGE_TARGET
113116
} = env
114117

115118
tags = {
@@ -121,7 +124,9 @@ module.exports = {
121124
[GIT_REPOSITORY_URL]: JENKINS_GIT_REPOSITORY_URL || JENKINS_GIT_REPOSITORY_URL_1,
122125
[CI_WORKSPACE_PATH]: WORKSPACE,
123126
[CI_ENV_VARS]: JSON.stringify({ DD_CUSTOM_TRACE_ID }),
124-
[CI_NODE_NAME]: NODE_NAME
127+
[CI_NODE_NAME]: NODE_NAME,
128+
[PR_NUMBER]: CHANGE_ID,
129+
[GIT_PULL_REQUEST_BASE_BRANCH]: CHANGE_TARGET
125130
}
126131

127132
if (NODE_LABELS) {
@@ -172,7 +177,7 @@ module.exports = {
172177
CI_RUNNER_ID,
173178
CI_RUNNER_TAGS,
174179
CI_MERGE_REQUEST_TARGET_BRANCH_NAME,
175-
CI_MERGE_REQUEST_TARGET_BRANCH_SHA
180+
CI_MERGE_REQUEST_IID
176181
} = env
177182

178183
const { name, email } = parseEmailAndName(CI_COMMIT_AUTHOR)
@@ -203,7 +208,7 @@ module.exports = {
203208
[CI_NODE_LABELS]: CI_RUNNER_TAGS,
204209
[CI_NODE_NAME]: CI_RUNNER_ID,
205210
[GIT_PULL_REQUEST_BASE_BRANCH]: CI_MERGE_REQUEST_TARGET_BRANCH_NAME,
206-
[GIT_PULL_REQUEST_BASE_BRANCH_SHA]: CI_MERGE_REQUEST_TARGET_BRANCH_SHA
211+
[PR_NUMBER]: CI_MERGE_REQUEST_IID
207212
}
208213
}
209214

@@ -218,7 +223,8 @@ module.exports = {
218223
CIRCLE_SHA1,
219224
CIRCLE_REPOSITORY_URL,
220225
CIRCLE_JOB,
221-
CIRCLE_BUILD_NUM
226+
CIRCLE_BUILD_NUM,
227+
CIRCLE_PR_NUMBER
222228
} = env
223229

224230
const pipelineUrl = `https://app.circleci.com/pipelines/workflows/${CIRCLE_WORKFLOW_ID}`
@@ -237,8 +243,9 @@ module.exports = {
237243
[GIT_BRANCH]: CIRCLE_BRANCH,
238244
[CI_ENV_VARS]: JSON.stringify({
239245
CIRCLE_WORKFLOW_ID,
240-
CIRCLE_BUILD_NUM
241-
})
246+
CIRCLE_BUILD_NUM,
247+
}),
248+
[PR_NUMBER]: CIRCLE_PR_NUMBER
242249
}
243250
}
244251

@@ -317,7 +324,9 @@ module.exports = {
317324
APPVEYOR_REPO_COMMIT_AUTHOR,
318325
APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL,
319326
APPVEYOR_REPO_COMMIT_MESSAGE,
320-
APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED
327+
APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED,
328+
APPVEYOR_PULL_REQUEST_HEAD_COMMIT,
329+
APPVEYOR_PULL_REQUEST_NUMBER
321330
} = env
322331

323332
const pipelineUrl = `https://ci.appveyor.com/project/${APPVEYOR_REPO_NAME}/builds/${APPVEYOR_BUILD_ID}`
@@ -333,7 +342,12 @@ module.exports = {
333342
[GIT_COMMIT_AUTHOR_NAME]: APPVEYOR_REPO_COMMIT_AUTHOR,
334343
[GIT_COMMIT_AUTHOR_EMAIL]: APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL,
335344
[GIT_COMMIT_MESSAGE]: APPVEYOR_REPO_COMMIT_MESSAGE + '\n' + APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED,
336-
[GIT_PULL_REQUEST_BASE_BRANCH]: APPVEYOR_REPO_BRANCH
345+
[GIT_COMMIT_HEAD_SHA]: APPVEYOR_PULL_REQUEST_HEAD_COMMIT,
346+
[PR_NUMBER]: APPVEYOR_PULL_REQUEST_NUMBER
347+
}
348+
349+
if (APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH) {
350+
tags[GIT_PULL_REQUEST_BASE_BRANCH] = APPVEYOR_REPO_BRANCH
337351
}
338352

339353
if (APPVEYOR_REPO_PROVIDER === 'github') {
@@ -367,7 +381,9 @@ module.exports = {
367381
BUILD_REQUESTEDFOREMAIL,
368382
BUILD_SOURCEVERSIONMESSAGE,
369383
SYSTEM_STAGEDISPLAYNAME,
370-
SYSTEM_JOBDISPLAYNAME
384+
SYSTEM_JOBDISPLAYNAME,
385+
SYSTEM_PULLREQUEST_PULLREQUESTNUMBER,
386+
SYSTEM_PULLREQUEST_TARGETBRANCH
371387
} = env
372388

373389
const ref = SYSTEM_PULLREQUEST_SOURCEBRANCH || BUILD_SOURCEBRANCH || BUILD_SOURCEBRANCHNAME
@@ -387,7 +403,9 @@ module.exports = {
387403
[GIT_COMMIT_MESSAGE]: BUILD_SOURCEVERSIONMESSAGE,
388404
[CI_STAGE_NAME]: SYSTEM_STAGEDISPLAYNAME,
389405
[CI_JOB_NAME]: SYSTEM_JOBDISPLAYNAME,
390-
[CI_ENV_VARS]: JSON.stringify({ SYSTEM_TEAMPROJECTID, BUILD_BUILDID, SYSTEM_JOBID })
406+
[CI_ENV_VARS]: JSON.stringify({ SYSTEM_TEAMPROJECTID, BUILD_BUILDID, SYSTEM_JOBID }),
407+
[PR_NUMBER]: SYSTEM_PULLREQUEST_PULLREQUESTNUMBER,
408+
[GIT_PULL_REQUEST_BASE_BRANCH]: SYSTEM_PULLREQUEST_TARGETBRANCH
391409
}
392410

393411
if (SYSTEM_TEAMFOUNDATIONSERVERURI && SYSTEM_TEAMPROJECTID && BUILD_BUILDID) {
@@ -415,7 +433,8 @@ module.exports = {
415433
BITBUCKET_TAG,
416434
BITBUCKET_PIPELINE_UUID,
417435
BITBUCKET_CLONE_DIR,
418-
BITBUCKET_PR_DESTINATION_BRANCH
436+
BITBUCKET_PR_DESTINATION_BRANCH,
437+
BITBUCKET_PR_ID
419438
} = env
420439

421440
const url =
@@ -433,7 +452,8 @@ module.exports = {
433452
[GIT_REPOSITORY_URL]: BITBUCKET_GIT_SSH_ORIGIN || BITBUCKET_GIT_HTTP_ORIGIN,
434453
[CI_WORKSPACE_PATH]: BITBUCKET_CLONE_DIR,
435454
[CI_PIPELINE_ID]: BITBUCKET_PIPELINE_UUID && BITBUCKET_PIPELINE_UUID.replaceAll(/{|}/gm, ''),
436-
[GIT_PULL_REQUEST_BASE_BRANCH]: BITBUCKET_PR_DESTINATION_BRANCH
455+
[GIT_PULL_REQUEST_BASE_BRANCH]: BITBUCKET_PR_DESTINATION_BRANCH,
456+
[PR_NUMBER]: BITBUCKET_PR_ID
437457
}
438458
}
439459

@@ -450,7 +470,8 @@ module.exports = {
450470
BITRISE_SOURCE_DIR,
451471
GIT_REPOSITORY_URL: BITRISE_GIT_REPOSITORY_URL,
452472
BITRISE_GIT_TAG,
453-
BITRISE_GIT_MESSAGE
473+
BITRISE_GIT_MESSAGE,
474+
BITRISE_PULL_REQUEST
454475
} = env
455476

456477
tags = {
@@ -465,7 +486,8 @@ module.exports = {
465486
[GIT_TAG]: BITRISE_GIT_TAG,
466487
[GIT_BRANCH]: BITRISEIO_GIT_BRANCH_DEST || BITRISE_GIT_BRANCH,
467488
[GIT_COMMIT_MESSAGE]: BITRISE_GIT_MESSAGE,
468-
[GIT_PULL_REQUEST_BASE_BRANCH]: BITRISEIO_GIT_BRANCH_DEST
489+
[GIT_PULL_REQUEST_BASE_BRANCH]: BITRISEIO_GIT_BRANCH_DEST,
490+
[PR_NUMBER]: BITRISE_PULL_REQUEST
469491
}
470492
}
471493

@@ -484,7 +506,9 @@ module.exports = {
484506
BUILDKITE_BUILD_AUTHOR,
485507
BUILDKITE_BUILD_AUTHOR_EMAIL,
486508
BUILDKITE_MESSAGE,
487-
BUILDKITE_AGENT_ID
509+
BUILDKITE_AGENT_ID,
510+
BUILDKITE_PULL_REQUEST,
511+
BUILDKITE_PULL_REQUEST_BASE_BRANCH
488512
} = env
489513

490514
const extraTags = Object.keys(env).filter(envVar =>
@@ -514,7 +538,12 @@ module.exports = {
514538
BUILDKITE_JOB_ID
515539
}),
516540
[CI_NODE_NAME]: BUILDKITE_AGENT_ID,
517-
[CI_NODE_LABELS]: JSON.stringify(extraTags)
541+
[CI_NODE_LABELS]: JSON.stringify(extraTags),
542+
[PR_NUMBER]: BUILDKITE_PULL_REQUEST,
543+
}
544+
545+
if (BUILDKITE_PULL_REQUEST) {
546+
tags[GIT_PULL_REQUEST_BASE_BRANCH] = BUILDKITE_PULL_REQUEST_BASE_BRANCH
518547
}
519548
}
520549

@@ -530,7 +559,9 @@ module.exports = {
530559
TRAVIS_BUILD_NUMBER,
531560
TRAVIS_BUILD_WEB_URL,
532561
TRAVIS_BUILD_DIR,
533-
TRAVIS_COMMIT_MESSAGE
562+
TRAVIS_COMMIT_MESSAGE,
563+
TRAVIS_PULL_REQUEST,
564+
TRAVIS_PULL_REQUEST_SHA
534565
} = env
535566

536567
tags = {
@@ -545,7 +576,10 @@ module.exports = {
545576
[CI_WORKSPACE_PATH]: TRAVIS_BUILD_DIR,
546577
[GIT_TAG]: TRAVIS_TAG,
547578
[GIT_BRANCH]: TRAVIS_PULL_REQUEST_BRANCH || TRAVIS_BRANCH,
548-
[GIT_COMMIT_MESSAGE]: TRAVIS_COMMIT_MESSAGE
579+
[GIT_COMMIT_MESSAGE]: TRAVIS_COMMIT_MESSAGE,
580+
[GIT_COMMIT_HEAD_SHA]: TRAVIS_PULL_REQUEST_SHA,
581+
[GIT_PULL_REQUEST_BASE_BRANCH]: TRAVIS_BRANCH,
582+
[PR_NUMBER]: TRAVIS_PULL_REQUEST
549583
}
550584
}
551585

@@ -562,7 +596,8 @@ module.exports = {
562596
BUDDY_PIPELINE_ID,
563597
BUDDY_PIPELINE_NAME,
564598
BUDDY_SCM_URL,
565-
BUDDY_RUN_PR_BASE_BRANCH
599+
BUDDY_RUN_PR_BASE_BRANCH,
600+
BUDDY_RUN_PR_NO
566601
} = env
567602
tags = {
568603
[CI_PROVIDER_NAME]: 'buddy',
@@ -577,19 +612,28 @@ module.exports = {
577612
[GIT_COMMIT_MESSAGE]: BUDDY_EXECUTION_REVISION_MESSAGE,
578613
[GIT_COMMIT_COMMITTER_NAME]: BUDDY_EXECUTION_REVISION_COMMITTER_NAME,
579614
[GIT_COMMIT_COMMITTER_EMAIL]: BUDDY_EXECUTION_REVISION_COMMITTER_EMAIL,
580-
[GIT_PULL_REQUEST_BASE_BRANCH]: BUDDY_RUN_PR_BASE_BRANCH
615+
[GIT_PULL_REQUEST_BASE_BRANCH]: BUDDY_RUN_PR_BASE_BRANCH,
616+
[PR_NUMBER]: BUDDY_RUN_PR_NO
581617
}
582618
}
583619

584620
if (env.TEAMCITY_VERSION) {
585-
const { BUILD_URL, TEAMCITY_BUILDCONF_NAME, DATADOG_BUILD_ID } = env
621+
const {
622+
BUILD_URL,
623+
TEAMCITY_BUILDCONF_NAME,
624+
DATADOG_BUILD_ID,
625+
TEAMCITY_PULLREQUEST_NUMBER,
626+
TEAMCITY_PULLREQUEST_TARGET_BRANCH
627+
} = env
586628
tags = {
587629
[CI_PROVIDER_NAME]: 'teamcity',
588630
[CI_JOB_URL]: BUILD_URL,
589631
[CI_JOB_NAME]: TEAMCITY_BUILDCONF_NAME,
590632
[CI_ENV_VARS]: JSON.stringify({
591633
DATADOG_BUILD_ID
592-
})
634+
}),
635+
[PR_NUMBER]: TEAMCITY_PULLREQUEST_NUMBER,
636+
[GIT_PULL_REQUEST_BASE_BRANCH]: TEAMCITY_PULLREQUEST_TARGET_BRANCH
593637
}
594638
}
595639

@@ -599,7 +643,9 @@ module.exports = {
599643
CF_PIPELINE_NAME,
600644
CF_BUILD_URL,
601645
CF_STEP_NAME,
602-
CF_BRANCH
646+
CF_BRANCH,
647+
CF_PULL_REQUEST_NUMBER,
648+
CF_PULL_REQUEST_TARGET
603649
} = env
604650
tags = {
605651
[CI_PROVIDER_NAME]: 'codefresh',
@@ -609,7 +655,9 @@ module.exports = {
609655
[CI_JOB_NAME]: CF_STEP_NAME,
610656
[CI_ENV_VARS]: JSON.stringify({
611657
CF_BUILD_ID
612-
})
658+
}),
659+
[PR_NUMBER]: CF_PULL_REQUEST_NUMBER,
660+
[GIT_PULL_REQUEST_BASE_BRANCH]: CF_PULL_REQUEST_TARGET
613661
}
614662

615663
const isTag = CF_BRANCH && CF_BRANCH.includes('tags/')
@@ -649,7 +697,9 @@ module.exports = {
649697
DRONE_TAG,
650698
DRONE_COMMIT_AUTHOR_NAME,
651699
DRONE_COMMIT_AUTHOR_EMAIL,
652-
DRONE_COMMIT_MESSAGE
700+
DRONE_COMMIT_MESSAGE,
701+
DRONE_PULL_REQUEST,
702+
DRONE_TARGET_BRANCH
653703
} = env
654704
tags = {
655705
[CI_PROVIDER_NAME]: 'drone',
@@ -664,14 +714,17 @@ module.exports = {
664714
[GIT_TAG]: DRONE_TAG,
665715
[GIT_COMMIT_AUTHOR_NAME]: DRONE_COMMIT_AUTHOR_NAME,
666716
[GIT_COMMIT_AUTHOR_EMAIL]: DRONE_COMMIT_AUTHOR_EMAIL,
667-
[GIT_COMMIT_MESSAGE]: DRONE_COMMIT_MESSAGE
717+
[GIT_COMMIT_MESSAGE]: DRONE_COMMIT_MESSAGE,
718+
[PR_NUMBER]: DRONE_PULL_REQUEST,
719+
[GIT_PULL_REQUEST_BASE_BRANCH]: DRONE_TARGET_BRANCH
668720
}
669721
}
670722

671723
normalizeTag(tags, CI_WORKSPACE_PATH, resolveTilde)
672724
normalizeTag(tags, GIT_REPOSITORY_URL, filterSensitiveInfoFromRepository)
673725
normalizeTag(tags, GIT_BRANCH, normalizeRef)
674726
normalizeTag(tags, GIT_TAG, normalizeRef)
727+
normalizeTag(tags, GIT_PULL_REQUEST_BASE_BRANCH, normalizeRef)
675728

676729
return removeEmptyValues(tags)
677730
}

packages/dd-trace/src/plugins/util/tags.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ const CI_NODE_LABELS = 'ci.node.labels'
2828

2929
const CI_ENV_VARS = '_dd.ci.env_vars'
3030

31+
const PR_NUMBER = 'pr.number'
32+
3133
module.exports = {
3234
GIT_COMMIT_SHA,
3335
GIT_BRANCH,
@@ -54,5 +56,6 @@ module.exports = {
5456
CI_STAGE_NAME,
5557
CI_ENV_VARS,
5658
CI_NODE_NAME,
57-
CI_NODE_LABELS
59+
CI_NODE_LABELS,
60+
PR_NUMBER
5861
}

packages/dd-trace/src/supported-configurations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@
7272
"DD_GIT_PROPERTIES_FILE": ["A"],
7373
"DD_GIT_REPOSITORY_URL": ["A"],
7474
"DD_GIT_TAG": ["A"],
75+
"DD_GIT_PULL_REQUEST_BASE_BRANCH": ["A"],
76+
"DD_GIT_PULL_REQUEST_BASE_BRANCH_SHA": ["A"],
7577
"DD_GRPC_CLIENT_ERROR_STATUSES": ["A"],
7678
"DD_GRPC_SERVER_ERROR_STATUSES": ["A"],
7779
"DD_IAST_DB_ROWS_TO_TAINT": ["A"],

packages/dd-trace/test/plugins/util/ci-env/appveyor.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,9 @@
346346
"APPVEYOR_BUILD_FOLDER": "/foo/bar",
347347
"APPVEYOR_BUILD_ID": "appveyor-build-id",
348348
"APPVEYOR_BUILD_NUMBER": "appveyor-pipeline-number",
349+
"APPVEYOR_PULL_REQUEST_HEAD_COMMIT": "724faca55efebf66fc15bfccc34577c64c5480bd",
349350
"APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH": "origin/pr",
351+
"APPVEYOR_PULL_REQUEST_NUMBER": 42,
350352
"APPVEYOR_REPO_BRANCH": "origin/master",
351353
"APPVEYOR_REPO_COMMIT": "b9f0fb3fdbb94c9d24b2c75b49663122a529e123",
352354
"APPVEYOR_REPO_COMMIT_AUTHOR": "appveyor-commit-author-name",
@@ -367,9 +369,12 @@
367369
"git.branch": "pr",
368370
"git.commit.author.email": "appveyor-commit-author-email@datadoghq.com",
369371
"git.commit.author.name": "appveyor-commit-author-name",
372+
"git.commit.head_sha": "724faca55efebf66fc15bfccc34577c64c5480bd",
370373
"git.commit.message": "appveyor-commit-message\nappveyor-commit-message-extended",
371374
"git.commit.sha": "b9f0fb3fdbb94c9d24b2c75b49663122a529e123",
372-
"git.repository_url": "https://github.com/appveyor-repo-name.git"
375+
"git.pull_request.base_branch": "master",
376+
"git.repository_url": "https://github.com/appveyor-repo-name.git",
377+
"pr.number": 42
373378
}
374379
],
375380
[
@@ -378,6 +383,7 @@
378383
"APPVEYOR_BUILD_FOLDER": "/foo/bar",
379384
"APPVEYOR_BUILD_ID": "appveyor-build-id",
380385
"APPVEYOR_BUILD_NUMBER": "appveyor-pipeline-number",
386+
"APPVEYOR_PULL_REQUEST_HEAD_COMMIT": "724faca55efebf66fc15bfccc34577c64c5480bd",
381387
"APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH": "refs/heads/pr",
382388
"APPVEYOR_REPO_BRANCH": "refs/heads/master",
383389
"APPVEYOR_REPO_COMMIT": "b9f0fb3fdbb94c9d24b2c75b49663122a529e123",
@@ -399,8 +405,10 @@
399405
"git.branch": "pr",
400406
"git.commit.author.email": "appveyor-commit-author-email@datadoghq.com",
401407
"git.commit.author.name": "appveyor-commit-author-name",
408+
"git.commit.head_sha": "724faca55efebf66fc15bfccc34577c64c5480bd",
402409
"git.commit.message": "appveyor-commit-message\nappveyor-commit-message-extended",
403410
"git.commit.sha": "b9f0fb3fdbb94c9d24b2c75b49663122a529e123",
411+
"git.pull_request.base_branch": "master",
404412
"git.repository_url": "https://github.com/appveyor-repo-name.git"
405413
}
406414
],

0 commit comments

Comments
 (0)