From 0f0b363a6168a53cab81bf070a2169a27a196b50 Mon Sep 17 00:00:00 2001 From: Milan Garnier Date: Wed, 24 Jun 2026 14:58:48 +0200 Subject: [PATCH 1/4] use feature branch if specified --- utils/scripts/load-binary.sh | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/utils/scripts/load-binary.sh b/utils/scripts/load-binary.sh index a23c92ccbb5..362d80ddbb5 100755 --- a/utils/scripts/load-binary.sh +++ b/utils/scripts/load-binary.sh @@ -161,7 +161,18 @@ elif [ "$TARGET" = "ruby" ]; then elif [ "$TARGET" = "php" ]; then rm -rf *.tar.gz mkdir -p temp - if [ $VERSION = 'dev' ]; then + + if [ -n "${LIBRARY_TARGET_BRANCH:-}" ]; then + NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | sed 's/\//_/g') + if [ -n "${GITHUB_TOKEN:-}" ]; then + echo "Log to GHCR with token" + echo "$GITHUB_TOKEN" | docker login ghcr.io --password-stdin -u "actor" + fi + ../utils/scripts/docker_base_image.sh \ + "ghcr.io/datadog/dd-trace-php/dd-library-php:${NORMALIZED_BRANCH}" \ + ./temp + + elif [ "${VERSION:-}" = 'dev' ]; then URL="https://s3.us-east-1.amazonaws.com/dd-trace-php-builds/latest/datadog-setup.php" echo "Downloading datadog-setup.php from: $URL" curl --fail --location --silent --show-error --output ./temp/datadog-setup.php "$URL" @@ -178,11 +189,15 @@ elif [ "$TARGET" = "php" ]; then echo "Downloading dd-library-php from: $URL" curl --fail --location --silent --show-error --output "./temp/dd-library-php-${VERSION_HASH}-$(arch)-linux-gnu.tar.gz" "$URL" echo "dd-library-php $(arch) downloaded" - elif [ $VERSION = 'prod' ]; then + + elif [ "${VERSION:-}" = 'prod' ]; then ../utils/scripts/docker_base_image.sh ghcr.io/datadog/dd-trace-php/dd-library-php:latest ./temp + else - echo "Don't know how to load version $VERSION for $TARGET" + echo "Don't know how to load version ${VERSION:-} for $TARGET" + exit 1 fi + mv ./temp/dd-library-php*.tar.gz . && mv ./temp/datadog-setup.php . && rm -rf ./temp elif [ "$TARGET" = "golang" ]; then From 185ce0c1e753adcf7b04272d018ee4b147060f5c Mon Sep 17 00:00:00 2001 From: Milan Garnier Date: Fri, 26 Jun 2026 14:10:23 +0200 Subject: [PATCH 2/4] ~same normalization as in dd-trace-php, +oneliner for ghcr_login --- utils/scripts/load-binary.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/utils/scripts/load-binary.sh b/utils/scripts/load-binary.sh index 362d80ddbb5..29db24645cb 100755 --- a/utils/scripts/load-binary.sh +++ b/utils/scripts/load-binary.sh @@ -52,6 +52,13 @@ assert_target_branch_is_not_set() { exit 1 } +ghcr_login_if_token_set() { + if [ -n "$GITHUB_TOKEN" ]; then + echo "Log to GHCR with token" + echo "$GITHUB_TOKEN" | docker login ghcr.io --password-stdin -u "actor" # username is ignored + fi +} + get_github_action_artifact() { rm -rf artifacts artifacts.zip @@ -137,10 +144,7 @@ elif [ "$TARGET" = "dotnet" ]; then NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | sed 's/\//_/g') rm -rf *.tar.gz - if [ -n "$GITHUB_TOKEN" ]; then - echo "Log to GHCR with token" - echo "$GITHUB_TOKEN" | docker login ghcr.io --password-stdin -u "actor" # username is ignored - fi + ghcr_login_if_token_set ../utils/scripts/docker_base_image.sh ghcr.io/datadog/dd-trace-dotnet/dd-trace-dotnet:${NORMALIZED_BRANCH} . @@ -163,11 +167,9 @@ elif [ "$TARGET" = "php" ]; then mkdir -p temp if [ -n "${LIBRARY_TARGET_BRANCH:-}" ]; then - NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | sed 's/\//_/g') - if [ -n "${GITHUB_TOKEN:-}" ]; then - echo "Log to GHCR with token" - echo "$GITHUB_TOKEN" | docker login ghcr.io --password-stdin -u "actor" - fi + # Match GitLab's CI_COMMIT_REF_SLUG: lowercase, non-alphanumeric → '-', collapse and trim + NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g;s/-\+/-/g;s/^-//;s/-$//') + ghcr_login_if_token_set ../utils/scripts/docker_base_image.sh \ "ghcr.io/datadog/dd-trace-php/dd-library-php:${NORMALIZED_BRANCH}" \ ./temp From 11c8b8233f5e64351a0cdb4339e8d3675b43a0e2 Mon Sep 17 00:00:00 2001 From: Milan Garnier Date: Fri, 3 Jul 2026 11:58:29 +0200 Subject: [PATCH 3/4] fix(ci): truncate PHP branch slug to 63 bytes to match GitLab's CI_COMMIT_REF_SLUG Without this, long branch names diverge from the tag dd-trace-php's GitLab CI actually publishes, since GitLab truncates the slug. --- utils/scripts/load-binary.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/scripts/load-binary.sh b/utils/scripts/load-binary.sh index cb9952bbafe..58758f9c724 100755 --- a/utils/scripts/load-binary.sh +++ b/utils/scripts/load-binary.sh @@ -167,8 +167,8 @@ elif [ "$TARGET" = "php" ]; then mkdir -p temp if [ -n "${LIBRARY_TARGET_BRANCH:-}" ]; then - # Match GitLab's CI_COMMIT_REF_SLUG: lowercase, non-alphanumeric → '-', collapse and trim - NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g;s/-\+/-/g;s/^-//;s/-$//') + # Match GitLab's CI_COMMIT_REF_SLUG: lowercase, non-alphanumeric → '-', collapse, truncate to 63 bytes and trim + NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g;s/-\+/-/g;s/^-//;s/-$//' | cut -c1-63 | sed 's/-$//') ghcr_login_if_token_set ../utils/scripts/docker_base_image.sh \ "ghcr.io/datadog/dd-trace-php/dd-library-php:${NORMALIZED_BRANCH}" \ From 4d98282705bb49be33ac24843a78b985c0723126 Mon Sep 17 00:00:00 2001 From: Milan Garnier Date: Fri, 3 Jul 2026 14:01:56 +0200 Subject: [PATCH 4/4] prod check before checking library target branch (same behavior) --- utils/scripts/load-binary.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utils/scripts/load-binary.sh b/utils/scripts/load-binary.sh index 58758f9c724..999a164f6a1 100755 --- a/utils/scripts/load-binary.sh +++ b/utils/scripts/load-binary.sh @@ -166,7 +166,10 @@ elif [ "$TARGET" = "php" ]; then rm -rf *.tar.gz mkdir -p temp - if [ -n "${LIBRARY_TARGET_BRANCH:-}" ]; then + if [ "${VERSION:-}" = 'prod' ]; then + ../utils/scripts/docker_base_image.sh ghcr.io/datadog/dd-trace-php/dd-library-php:latest ./temp + + elif [ -n "${LIBRARY_TARGET_BRANCH:-}" ]; then # Match GitLab's CI_COMMIT_REF_SLUG: lowercase, non-alphanumeric → '-', collapse, truncate to 63 bytes and trim NORMALIZED_BRANCH=$(echo "$LIBRARY_TARGET_BRANCH" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g;s/-\+/-/g;s/^-//;s/-$//' | cut -c1-63 | sed 's/-$//') ghcr_login_if_token_set @@ -192,9 +195,6 @@ elif [ "$TARGET" = "php" ]; then curl --fail --location --silent --show-error --output "./temp/dd-library-php-${VERSION_HASH}-$(arch)-linux-gnu.tar.gz" "$URL" echo "dd-library-php $(arch) downloaded" - elif [ "${VERSION:-}" = 'prod' ]; then - ../utils/scripts/docker_base_image.sh ghcr.io/datadog/dd-trace-php/dd-library-php:latest ./temp - else echo "Don't know how to load version ${VERSION:-} for $TARGET" exit 1