From 1ce67f3d2e0ff555e3e9ecffc70b323a730adb07 Mon Sep 17 00:00:00 2001 From: Manuel Palenzuela Merino Date: Thu, 12 Mar 2026 15:08:09 +0100 Subject: [PATCH 1/5] Add Datadog code coverage upload alongside Codecov Adds DataDog/coverage-upload-github-action step after the existing Codecov upload in the dev workflow test job. Both systems run in parallel to verify coverage parity before migrating off Codecov. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/dev.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 81b907c..cfd4854 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -76,4 +76,12 @@ jobs: token: ${{ secrets.CODECOV_TOKEN }} slug: DataDog/httpd-datadog fail_ci_if_error: true + - name: Upload coverage to Datadog + if: always() + continue-on-error: true + uses: DataDog/coverage-upload-github-action@v1 + with: + api_key: ${{ secrets.DD_API_KEY_CI_APP }} + files: coverage.lcov + format: lcov From ceb628980e5133cd2971035c3da5f2378cbf7af8 Mon Sep 17 00:00:00 2001 From: Manuel Palenzuela Merino Date: Wed, 18 Mar 2026 12:06:28 +0100 Subject: [PATCH 2/5] Pin coverage-upload-github-action to SHA Pin DataDog/coverage-upload-github-action@v1 to commit SHA d2cf302a39c05e0ad22063360a2bf6ce0cc4906c for supply chain security. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index cfd4854..fd192f6 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -79,7 +79,7 @@ jobs: - name: Upload coverage to Datadog if: always() continue-on-error: true - uses: DataDog/coverage-upload-github-action@v1 + uses: DataDog/coverage-upload-github-action@d2cf302a39c05e0ad22063360a2bf6ce0cc4906c # v1 with: api_key: ${{ secrets.DD_API_KEY_CI_APP }} files: coverage.lcov From bf56329053892e457303299a834ece9d3a9b8869 Mon Sep 17 00:00:00 2001 From: Manuel Palenzuela Merino Date: Wed, 25 Mar 2026 12:11:14 +0100 Subject: [PATCH 3/5] Use datadog-ci CLI instead of GitHub Action for coverage upload The DataDog/coverage-upload-github-action uses install-datadog-ci-github-action internally, which resolves script paths using github.action_path. In Docker container jobs, this host path is not accessible inside the container, causing "No such file or directory" errors. Using the CLI directly via curl avoids this issue. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/dev.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index fd192f6..45feb3b 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -79,9 +79,10 @@ jobs: - name: Upload coverage to Datadog if: always() continue-on-error: true - uses: DataDog/coverage-upload-github-action@d2cf302a39c05e0ad22063360a2bf6ce0cc4906c # v1 - with: - api_key: ${{ secrets.DD_API_KEY_CI_APP }} - files: coverage.lcov - format: lcov + run: | + curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" + chmod +x /usr/local/bin/datadog-ci + datadog-ci coverage upload --format=lcov coverage.lcov + env: + DD_API_KEY: ${{ secrets.DD_API_KEY_CI_APP }} From 52fe74a44772e8b82001d1667c1f87a574c5f060 Mon Sep 17 00:00:00 2001 From: Manuel Palenzuela Merino Date: Wed, 25 Mar 2026 12:59:39 +0100 Subject: [PATCH 4/5] Use /tmp for datadog-ci binary to avoid PATH issues in containers --- .github/workflows/dev.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 45feb3b..1e14f11 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -80,9 +80,9 @@ jobs: if: always() continue-on-error: true run: | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci" - chmod +x /usr/local/bin/datadog-ci - datadog-ci coverage upload --format=lcov coverage.lcov + curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output /tmp/datadog-ci + chmod +x /tmp/datadog-ci + /tmp/datadog-ci coverage upload --format=lcov coverage.lcov env: DD_API_KEY: ${{ secrets.DD_API_KEY_CI_APP }} From 8351ce53848c746c05e29a653576287e90add21c Mon Sep 17 00:00:00 2001 From: Manuel Palenzuela Merino Date: Wed, 25 Mar 2026 14:34:47 +0100 Subject: [PATCH 5/5] Use apk+npx for datadog-ci in Alpine container (no glibc binary available) --- .github/workflows/dev.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 1e14f11..dfa64a7 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -80,9 +80,8 @@ jobs: if: always() continue-on-error: true run: | - curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output /tmp/datadog-ci - chmod +x /tmp/datadog-ci - /tmp/datadog-ci coverage upload --format=lcov coverage.lcov + apk add --no-cache nodejs npm + npx @datadog/datadog-ci@latest coverage upload --format=lcov coverage.lcov env: DD_API_KEY: ${{ secrets.DD_API_KEY_CI_APP }}