Skip to content

Commit 7cfb635

Browse files
committed
Update test mirror entry scripts
1 parent 0d4f4d6 commit 7cfb635

2 files changed

Lines changed: 38 additions & 28 deletions

File tree

scripts/create-test-mirror-entries.sh

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
set -euo pipefail
1515

1616
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
17+
readonly SOURCE_PREFIX="ghcr.io/datadog/dd-trace-java-docker-build"
18+
readonly DEST_REPO="dd-trace-java-docker-build"
1719

1820
if ! [[ "${PR_NUMBER}" =~ ^[0-9]+$ ]]; then
1921
echo "::error::PR_NUMBER must be numeric (got: '${PR_NUMBER}')" >&2
@@ -23,7 +25,7 @@ fi
2325
readonly PREFIX="${PR_NUMBER}_merge-"
2426

2527
# Check if entries already exist in mirror.yaml (use base variant as tester)
26-
if grep -qF "ghcr.io/datadog/dd-trace-java-docker-build:${PREFIX}base" mirror.yaml; then
28+
if grep -qF "\"${PREFIX}base\"" mirror.yaml; then
2729
MODE="update"
2830
echo "Entries for '${PREFIX}' already exist — updating digests only"
2931
else
@@ -39,17 +41,21 @@ fi
3941
source "${SCRIPT_DIR}/get-image-digests.sh"
4042

4143
if [[ "$MODE" == "add" ]]; then
42-
for variant in "${CI_VARIANTS[@]}"; do
43-
tag="${PREFIX}${variant}"
44-
printf ' - source: "%s:%s"\n dest:\n repo: "dd-trace-java-docker-build"\n tag: "%s"\n replication_target: ""\n' \
45-
"ghcr.io/datadog/dd-trace-java-docker-build" "${tag}" "${tag}" >> mirror.yaml
46-
done
47-
echo "Appended ${#CI_VARIANTS[@]} entries to mirror.yaml"
44+
{
45+
printf ' - source_prefix: "%s"\n' "${SOURCE_PREFIX}"
46+
printf ' dest_repo: "%s"\n' "${DEST_REPO}"
47+
printf ' tags:\n'
48+
for variant in "${CI_VARIANTS[@]}"; do
49+
printf ' - "%s%s"\n' "${PREFIX}" "${variant}"
50+
done
51+
printf ' replication_target: ""\n'
52+
} >> mirror.yaml
53+
echo "Appended grouped entry to mirror.yaml"
4854

4955
for variant in "${CI_VARIANTS[@]}"; do
5056
tag="${PREFIX}${variant}"
5157
printf ' - source: %s:%s\n digest: %s\n' \
52-
"ghcr.io/datadog/dd-trace-java-docker-build" "${tag}" "${DIGESTS[$variant]}" >> mirror.lock.yaml
58+
"${SOURCE_PREFIX}" "${tag}" "${DIGESTS[$variant]}" >> mirror.lock.yaml
5359
done
5460
echo "Appended ${#CI_VARIANTS[@]} entries to mirror.lock.yaml"
5561
else

scripts/delete-test-mirror-entries.sh

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111
set -euo pipefail
1212

13-
readonly SOURCE_REPO="ghcr.io/datadog/dd-trace-java-docker-build"
13+
readonly SOURCE_PREFIX="ghcr.io/datadog/dd-trace-java-docker-build"
14+
readonly DEST_REPO="dd-trace-java-docker-build"
1415
readonly CI_VARIANTS=(base 7 8 11 17 21 25 tip zulu8 zulu11 oracle8 ibm8 semeru8 semeru11 semeru17 graalvm17 graalvm21 graalvm25)
1516

1617
if ! [[ "${PR_NUMBER}" =~ ^[0-9]+$ ]]; then
@@ -22,35 +23,38 @@ readonly PREFIX="${PR_NUMBER}_merge-"
2223

2324
require_entry_exists() {
2425
local tag="$1"
25-
if ! grep -qF "${SOURCE_REPO}:${tag}\"" mirror.yaml; then
26-
echo "::error::Missing mirror.yaml entry for ${SOURCE_REPO}:${tag}" >&2
26+
if ! grep -qF "\"${tag}\"" mirror.yaml; then
27+
echo "::error::Missing mirror.yaml tag for ${SOURCE_PREFIX}:${tag}" >&2
2728
exit 1
2829
fi
29-
if ! grep -qF "${SOURCE_REPO}:${tag}" mirror.lock.yaml; then
30-
echo "::error::Missing mirror.lock.yaml entry for ${SOURCE_REPO}:${tag}" >&2
30+
if ! grep -qF "${SOURCE_PREFIX}:${tag}" mirror.lock.yaml; then
31+
echo "::error::Missing mirror.lock.yaml entry for ${SOURCE_PREFIX}:${tag}" >&2
3132
exit 1
3233
fi
3334
}
3435

35-
remove_from_mirror_yaml() {
36-
local tag="$1"
37-
local src=" - source: \"${SOURCE_REPO}:${tag}\""
36+
remove_group_from_mirror_yaml() {
3837
local file="mirror.yaml"
39-
awk -v src="${src}" '
40-
$0 == src { skip=1; removed=1; next }
41-
skip && /^ - source: / { skip=0 }
42-
!skip { print }
43-
END {
44-
if (!removed) {
45-
exit 44
46-
}
47-
}
38+
local block
39+
40+
block="$(
41+
printf ' - source_prefix: "%s"\n dest_repo: "%s"\n tags:\n' "${SOURCE_PREFIX}" "${DEST_REPO}"
42+
for variant in "${CI_VARIANTS[@]}"; do
43+
printf ' - "%s%s"\n' "${PREFIX}" "${variant}"
44+
done
45+
printf ' replication_target: ""\n'
46+
)"
47+
48+
TARGET_BLOCK="${block}" perl -0pe '
49+
BEGIN { $removed = 0 }
50+
$removed = s/\Q$ENV{TARGET_BLOCK}\E//s;
51+
END { exit($removed ? 0 : 44) }
4852
' "${file}" > "${file}.tmp" && mv "${file}.tmp" "${file}"
4953
}
5054

5155
remove_from_mirror_lock() {
5256
local tag="$1"
53-
local src=" - source: ${SOURCE_REPO}:${tag}"
57+
local src=" - source: ${SOURCE_PREFIX}:${tag}"
5458
local file="mirror.lock.yaml"
5559
awk -v src="${src}" '
5660
$0 == src { skip_digest=1; removed=1; next }
@@ -70,10 +74,10 @@ for variant in "${CI_VARIANTS[@]}"; do
7074
done
7175

7276
echo "Removing test mirror entries for prefix '${PREFIX}'..."
77+
remove_group_from_mirror_yaml
7378
for variant in "${CI_VARIANTS[@]}"; do
7479
tag="${PREFIX}${variant}"
75-
remove_from_mirror_yaml "${tag}"
7680
remove_from_mirror_lock "${tag}"
7781
done
7882

79-
echo "Removed ${#CI_VARIANTS[@]} entries from mirror.yaml and mirror.lock.yaml"
83+
echo "Removed grouped mirror.yaml entry and ${#CI_VARIANTS[@]} entries from mirror.lock.yaml"

0 commit comments

Comments
 (0)