Skip to content

Commit 73b7546

Browse files
ci: add Datadog code coverage upload (#7759)
* Add Datadog code coverage upload alongside Codecov Add Datadog coverage upload to all CI jobs that produce coverage reports, running side-by-side with existing Codecov uploads for migration validation. Changes: - Add Datadog upload step to .github/actions/coverage composite action - Pass DD_API_KEY to all 62 coverage action invocations across 10 workflows - Add standalone Datadog upload for stripe job in appsec.yml Co-Authored-By: Claude Opus 4.6 <[email protected]> * Apply PR review feedback - Make dd_api_key required in .github/actions/coverage/action.yml - Replace manual codecov + DD upload steps in appsec.yml stripe job with the .github/actions/coverage composite action Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent 91b184e commit 73b7546

File tree

15 files changed

+83
-2
lines changed

15 files changed

+83
-2
lines changed

.github/actions/coverage/action.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: coverage
2-
description: Verify coverage output and upload it to Codecov.
2+
description: Verify coverage output and upload it to Codecov and Datadog.
33

44
inputs:
55
flags:
@@ -9,6 +9,9 @@ inputs:
99
description: "Coverage report directory (defaults to 'coverage')"
1010
required: false
1111
default: coverage
12+
dd_api_key:
13+
description: "Datadog API key for coverage upload"
14+
required: true
1215

1316
runs:
1417
using: composite
@@ -21,3 +24,12 @@ runs:
2124
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
2225
with:
2326
flags: ${{ inputs.flags }}
27+
28+
- name: Upload coverage to Datadog
29+
if: always()
30+
continue-on-error: true
31+
uses: DataDog/coverage-upload-github-action@d2cf302a39c05e0ad22063360a2bf6ce0cc4906c # v1
32+
with:
33+
api_key: ${{ inputs.dd_api_key }}
34+
files: .
35+
flags: ${{ inputs.flags }}

.github/actions/instrumentations/test/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ runs:
1717
- uses: ./.github/actions/coverage
1818
with:
1919
flags: instrumentations-${{ github.job }}
20+
dd_api_key: ${{ inputs.dd_api_key }}
2021
- uses: ./.github/actions/push_to_test_optimization
2122
if: "!cancelled()"
2223
with:

.github/actions/plugins/test-and-upstream/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ runs:
2222
- uses: ./.github/actions/coverage
2323
with:
2424
flags: plugins-test-and-upstream-${{ github.job }}
25+
dd_api_key: ${{ inputs.dd_api_key }}
2526
- if: always()
2627
uses: ./.github/actions/testagent/logs
2728
with:

.github/actions/plugins/test/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ runs:
1818
- uses: ./.github/actions/coverage
1919
with:
2020
flags: plugins-${{ github.job }}
21+
dd_api_key: ${{ inputs.dd_api_key }}
2122
- if: always()
2223
uses: ./.github/actions/testagent/logs
2324
with:

.github/actions/plugins/upstream/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ runs:
1818
- uses: ./.github/actions/coverage
1919
with:
2020
flags: plugins-upstream-${{ github.job }}
21+
dd_api_key: ${{ inputs.dd_api_key }}
2122
- if: always()
2223
uses: ./.github/actions/testagent/logs
2324
with:

.github/workflows/aiguard.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
- uses: ./.github/actions/coverage
2727
with:
2828
flags: aiguard-macos
29+
dd_api_key: ${{ secrets.DD_API_KEY }}
2930
- uses: ./.github/actions/push_to_test_optimization
3031
if: "!cancelled()"
3132
with:
@@ -48,6 +49,7 @@ jobs:
4849
- uses: ./.github/actions/coverage
4950
with:
5051
flags: aiguard-ubuntu
52+
dd_api_key: ${{ secrets.DD_API_KEY }}
5153
- uses: ./.github/actions/push_to_test_optimization
5254
if: "!cancelled()"
5355
with:
@@ -66,6 +68,7 @@ jobs:
6668
- uses: ./.github/actions/coverage
6769
with:
6870
flags: aiguard-windows
71+
dd_api_key: ${{ secrets.DD_API_KEY }}
6972
- uses: ./.github/actions/push_to_test_optimization
7073
if: "!cancelled()"
7174
with:

.github/workflows/apm-capabilities.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
- uses: ./.github/actions/coverage
3333
with:
3434
flags: apm-capabilities-tracing-macos
35+
dd_api_key: ${{ secrets.DD_API_KEY }}
3536
- uses: ./.github/actions/push_to_test_optimization
3637
if: "!cancelled()"
3738
with:
@@ -53,6 +54,7 @@ jobs:
5354
- uses: ./.github/actions/coverage
5455
with:
5556
flags: apm-capabilities-tracing-ubuntu
57+
dd_api_key: ${{ secrets.DD_API_KEY }}
5658
- uses: ./.github/actions/push_to_test_optimization
5759
if: "!cancelled()"
5860
with:
@@ -70,6 +72,7 @@ jobs:
7072
- uses: ./.github/actions/coverage
7173
with:
7274
flags: apm-capabilities-tracing-windows
75+
dd_api_key: ${{ secrets.DD_API_KEY }}
7376
- uses: ./.github/actions/push_to_test_optimization
7477
if: "!cancelled()"
7578
with:

.github/workflows/apm-integrations.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ jobs:
8080
- uses: ./.github/actions/coverage
8181
with:
8282
flags: apm-integrations-aerospike-${{ matrix.node-version }}-${{ matrix.range_clean }}
83+
dd_api_key: ${{ secrets.DD_API_KEY }}
8384
- uses: ./.github/actions/push_to_test_optimization
8485
if: "!cancelled()"
8586
with:
@@ -222,6 +223,7 @@ jobs:
222223
- uses: ./.github/actions/coverage
223224
with:
224225
flags: apm-integrations-child-process
226+
dd_api_key: ${{ secrets.DD_API_KEY }}
225227
- uses: ./.github/actions/push_to_test_optimization
226228
if: "!cancelled()"
227229
with:
@@ -290,6 +292,7 @@ jobs:
290292
- uses: ./.github/actions/coverage
291293
with:
292294
flags: apm-integrations-confluentinc-kafka-javascript-${{ matrix.node-version }}
295+
dd_api_key: ${{ secrets.DD_API_KEY }}
293296
- uses: ./.github/actions/push_to_test_optimization
294297
if: "!cancelled()"
295298
with:
@@ -351,6 +354,7 @@ jobs:
351354
- uses: ./.github/actions/coverage
352355
with:
353356
flags: apm-integrations-couchbase-${{ matrix.node-version }}
357+
dd_api_key: ${{ secrets.DD_API_KEY }}
354358
- uses: ./.github/actions/push_to_test_optimization
355359
if: "!cancelled()"
356360
with:
@@ -389,6 +393,7 @@ jobs:
389393
- uses: ./.github/actions/coverage
390394
with:
391395
flags: apm-integrations-dns
396+
dd_api_key: ${{ secrets.DD_API_KEY }}
392397
- uses: ./.github/actions/push_to_test_optimization
393398
if: "!cancelled()"
394399
with:
@@ -419,6 +424,7 @@ jobs:
419424
- uses: ./.github/actions/coverage
420425
with:
421426
flags: apm-integrations-elasticsearch
427+
dd_api_key: ${{ secrets.DD_API_KEY }}
422428
- uses: ./.github/actions/push_to_test_optimization
423429
if: "!cancelled()"
424430
with:
@@ -567,6 +573,7 @@ jobs:
567573
- uses: ./.github/actions/coverage
568574
with:
569575
flags: apm-integrations-http-${{ matrix.node-version }}
576+
dd_api_key: ${{ secrets.DD_API_KEY }}
570577
- uses: ./.github/actions/push_to_test_optimization
571578
if: "!cancelled()"
572579
with:
@@ -595,6 +602,7 @@ jobs:
595602
- uses: ./.github/actions/coverage
596603
with:
597604
flags: apm-integrations-http2
605+
dd_api_key: ${{ secrets.DD_API_KEY }}
598606
- uses: ./.github/actions/push_to_test_optimization
599607
if: "!cancelled()"
600608
with:
@@ -646,6 +654,7 @@ jobs:
646654
- uses: ./.github/actions/coverage
647655
with:
648656
flags: apm-integrations-kafkajs-${{ matrix.node-version }}
657+
dd_api_key: ${{ secrets.DD_API_KEY }}
649658
- uses: ./.github/actions/push_to_test_optimization
650659
if: "!cancelled()"
651660
with:
@@ -897,6 +906,7 @@ jobs:
897906
- uses: ./.github/actions/coverage
898907
with:
899908
flags: apm-integrations-net
909+
dd_api_key: ${{ secrets.DD_API_KEY }}
900910
- uses: ./.github/actions/push_to_test_optimization
901911
if: "!cancelled()"
902912
with:
@@ -954,6 +964,7 @@ jobs:
954964
- uses: ./.github/actions/coverage
955965
with:
956966
flags: apm-integrations-next-${{ matrix.range_clean }}
967+
dd_api_key: ${{ secrets.DD_API_KEY }}
957968
- uses: ./.github/actions/push_to_test_optimization
958969
if: "!cancelled()"
959970
with:
@@ -1032,6 +1043,7 @@ jobs:
10321043
- uses: ./.github/actions/coverage
10331044
with:
10341045
flags: apm-integrations-oracledb
1046+
dd_api_key: ${{ secrets.DD_API_KEY }}
10351047
- uses: ./.github/actions/push_to_test_optimization
10361048
if: "!cancelled()"
10371049
with:
@@ -1058,6 +1070,7 @@ jobs:
10581070
- uses: ./.github/actions/coverage
10591071
with:
10601072
flags: apm-integrations-pino
1073+
dd_api_key: ${{ secrets.DD_API_KEY }}
10611074
- uses: ./.github/actions/push_to_test_optimization
10621075
if: "!cancelled()"
10631076
with:
@@ -1150,6 +1163,7 @@ jobs:
11501163
- uses: ./.github/actions/coverage
11511164
with:
11521165
flags: apm-integrations-prisma-${{ matrix.node-version }}-${{ matrix.range_clean }}
1166+
dd_api_key: ${{ secrets.DD_API_KEY }}
11531167
- uses: ./.github/actions/push_to_test_optimization
11541168
if: "!cancelled()"
11551169
with:
@@ -1306,6 +1320,7 @@ jobs:
13061320
- uses: ./.github/actions/coverage
13071321
with:
13081322
flags: apm-integrations-sharedb
1323+
dd_api_key: ${{ secrets.DD_API_KEY }}
13091324
- uses: ./.github/actions/push_to_test_optimization
13101325
if: "!cancelled()"
13111326
with:
@@ -1339,6 +1354,7 @@ jobs:
13391354
- uses: ./.github/actions/coverage
13401355
with:
13411356
flags: apm-integrations-tedious
1357+
dd_api_key: ${{ secrets.DD_API_KEY }}
13421358
- uses: ./.github/actions/push_to_test_optimization
13431359
if: "!cancelled()"
13441360
with:

.github/workflows/appsec.yml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
- uses: ./.github/actions/coverage
3434
with:
3535
flags: appsec-macos
36+
dd_api_key: ${{ secrets.DD_API_KEY }}
3637
- uses: ./.github/actions/push_to_test_optimization
3738
if: "!cancelled()"
3839
with:
@@ -55,6 +56,7 @@ jobs:
5556
- uses: ./.github/actions/coverage
5657
with:
5758
flags: appsec-ubuntu
59+
dd_api_key: ${{ secrets.DD_API_KEY }}
5860
- uses: ./.github/actions/push_to_test_optimization
5961
if: "!cancelled()"
6062
with:
@@ -73,6 +75,7 @@ jobs:
7375
- uses: ./.github/actions/coverage
7476
with:
7577
flags: appsec-windows
78+
dd_api_key: ${{ secrets.DD_API_KEY }}
7679
- uses: ./.github/actions/push_to_test_optimization
7780
if: "!cancelled()"
7881
with:
@@ -104,6 +107,7 @@ jobs:
104107
- uses: ./.github/actions/coverage
105108
with:
106109
flags: appsec-ldapjs
110+
dd_api_key: ${{ secrets.DD_API_KEY }}
107111
- uses: ./.github/actions/push_to_test_optimization
108112
if: "!cancelled()"
109113
with:
@@ -133,6 +137,7 @@ jobs:
133137
- uses: ./.github/actions/coverage
134138
with:
135139
flags: appsec-postgres
140+
dd_api_key: ${{ secrets.DD_API_KEY }}
136141
- uses: ./.github/actions/push_to_test_optimization
137142
if: "!cancelled()"
138143
with:
@@ -162,6 +167,7 @@ jobs:
162167
- uses: ./.github/actions/coverage
163168
with:
164169
flags: appsec-mysql
170+
dd_api_key: ${{ secrets.DD_API_KEY }}
165171
- uses: ./.github/actions/push_to_test_optimization
166172
if: "!cancelled()"
167173
with:
@@ -182,6 +188,7 @@ jobs:
182188
- uses: ./.github/actions/coverage
183189
with:
184190
flags: appsec-express
191+
dd_api_key: ${{ secrets.DD_API_KEY }}
185192
- uses: ./.github/actions/push_to_test_optimization
186193
if: "!cancelled()"
187194
with:
@@ -202,6 +209,7 @@ jobs:
202209
- uses: ./.github/actions/coverage
203210
with:
204211
flags: appsec-fastify
212+
dd_api_key: ${{ secrets.DD_API_KEY }}
205213
- uses: ./.github/actions/push_to_test_optimization
206214
if: "!cancelled()"
207215
with:
@@ -222,6 +230,7 @@ jobs:
222230
- uses: ./.github/actions/coverage
223231
with:
224232
flags: appsec-graphql
233+
dd_api_key: ${{ secrets.DD_API_KEY }}
225234
- uses: ./.github/actions/push_to_test_optimization
226235
if: "!cancelled()"
227236
with:
@@ -248,6 +257,7 @@ jobs:
248257
- uses: ./.github/actions/coverage
249258
with:
250259
flags: appsec-mongodb-core
260+
dd_api_key: ${{ secrets.DD_API_KEY }}
251261
- uses: ./.github/actions/push_to_test_optimization
252262
if: "!cancelled()"
253263
with:
@@ -274,6 +284,7 @@ jobs:
274284
- uses: ./.github/actions/coverage
275285
with:
276286
flags: appsec-mongoose
287+
dd_api_key: ${{ secrets.DD_API_KEY }}
277288
- uses: ./.github/actions/push_to_test_optimization
278289
if: "!cancelled()"
279290
with:
@@ -297,6 +308,7 @@ jobs:
297308
- uses: ./.github/actions/coverage
298309
with:
299310
flags: appsec-sourcing
311+
dd_api_key: ${{ secrets.DD_API_KEY }}
300312
- uses: ./.github/actions/push_to_test_optimization
301313
if: "!cancelled()"
302314
with:
@@ -357,6 +369,7 @@ jobs:
357369
- uses: ./.github/actions/coverage
358370
with:
359371
flags: appsec-next-${{ matrix.version }}-${{ matrix.range_clean }}
372+
dd_api_key: ${{ secrets.DD_API_KEY }}
360373
- uses: ./.github/actions/push_to_test_optimization
361374
if: "!cancelled()"
362375
with:
@@ -377,6 +390,7 @@ jobs:
377390
- uses: ./.github/actions/coverage
378391
with:
379392
flags: appsec-lodash
393+
dd_api_key: ${{ secrets.DD_API_KEY }}
380394
- uses: ./.github/actions/push_to_test_optimization
381395
if: "!cancelled()"
382396
with:
@@ -414,6 +428,7 @@ jobs:
414428
- uses: ./.github/actions/coverage
415429
with:
416430
flags: appsec-passport
431+
dd_api_key: ${{ secrets.DD_API_KEY }}
417432
- uses: ./.github/actions/push_to_test_optimization
418433
if: "!cancelled()"
419434
with:
@@ -433,6 +448,7 @@ jobs:
433448
- uses: ./.github/actions/coverage
434449
with:
435450
flags: appsec-template
451+
dd_api_key: ${{ secrets.DD_API_KEY }}
436452
- uses: ./.github/actions/push_to_test_optimization
437453
if: "!cancelled()"
438454
with:
@@ -453,6 +469,7 @@ jobs:
453469
- uses: ./.github/actions/coverage
454470
with:
455471
flags: appsec-node-serialize
472+
dd_api_key: ${{ secrets.DD_API_KEY }}
456473
- uses: ./.github/actions/push_to_test_optimization
457474
if: "!cancelled()"
458475
with:
@@ -491,6 +508,7 @@ jobs:
491508
- uses: ./.github/actions/coverage
492509
with:
493510
flags: appsec-kafka
511+
dd_api_key: ${{ secrets.DD_API_KEY }}
494512
- uses: ./.github/actions/push_to_test_optimization
495513
if: "!cancelled()"
496514
with:
@@ -507,7 +525,10 @@ jobs:
507525
- run: yarn test:appsec:plugins:ci
508526
- uses: ./.github/actions/node/latest
509527
- run: yarn test:appsec:plugins:ci
510-
- uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
528+
- uses: ./.github/actions/coverage
529+
with:
530+
flags: appsec-stripe
531+
dd_api_key: ${{ secrets.DD_API_KEY }}
511532
- uses: ./.github/actions/push_to_test_optimization
512533
if: "!cancelled()"
513534
with:

0 commit comments

Comments
 (0)