1010
1111set -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"
1415readonly CI_VARIANTS=(base 7 8 11 17 21 25 tip zulu8 zulu11 oracle8 ibm8 semeru8 semeru11 semeru17 graalvm17 graalvm21 graalvm25)
1516
1617if ! [[ " ${PR_NUMBER} " =~ ^[0-9]+$ ]]; then
@@ -22,35 +23,38 @@ readonly PREFIX="${PR_NUMBER}_merge-"
2223
2324require_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
5155remove_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
7074done
7175
7276echo " Removing test mirror entries for prefix '${PREFIX} '..."
77+ remove_group_from_mirror_yaml
7378for variant in " ${CI_VARIANTS[@]} " ; do
7479 tag=" ${PREFIX}${variant} "
75- remove_from_mirror_yaml " ${tag} "
7680 remove_from_mirror_lock " ${tag} "
7781done
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