Skip to content

Commit 83a1596

Browse files
committed
move prefix out of
1 parent 88c78b1 commit 83a1596

5 files changed

Lines changed: 41 additions & 15 deletions

File tree

commands/push.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ if plugin_read_list_into_result BUILDKITE_PLUGIN_DOCKER_COMPOSE_BUILD; then
2626
build_services=("${result[@]}")
2727
fi
2828

29+
metadata_key_prefix="$(plugin_read_config METADATA_KEY_PREFIX '')"
30+
2931
# Then we figure out what to push, and where
3032
for line in $(plugin_read_list PUSH) ; do
3133
IFS=':' read -r -a tokens <<< "$line"
@@ -37,7 +39,7 @@ for line in $(plugin_read_list PUSH) ; do
3739
elif in_array "${service_name}" "${build_services[@]}"; then
3840
echo "~~~ :docker: Service was built in this step, using that image"
3941
service_image="$(default_compose_image_for_service "${service_name}")"
40-
elif prebuilt_image="$(get_prebuilt_image "$service_name")"; then
42+
elif prebuilt_image="$(get_prebuilt_image "$metadata_key_prefix" "$service_name")"; then
4143
echo "~~~ :docker: Using pre-built image ${prebuilt_image}"
4244

4345
# Only pull it down once
@@ -63,15 +65,15 @@ for line in $(plugin_read_list PUSH) ; do
6365
if [[ ${#tokens[@]} -eq 1 ]] ; then
6466
echo "${group_type} :docker: Pushing images for ${service_name}" >&2;
6567
retry "$push_retries" run_docker_compose push "${service_name}"
66-
set_prebuilt_image "${service_name}" "${service_image}"
68+
set_prebuilt_image "${metadata_key_prefix}" "${service_name}" "${service_image}"
6769
target_image="${service_image}" # necessary for build-alias
6870
# push: "service-name:repo:tag"
6971
else
7072
target_image="$(IFS=:; echo "${tokens[*]:1}")"
7173
echo "${group_type} :docker: Pushing image $target_image" >&2;
7274
plugin_prompt_and_run docker tag "$service_image" "$target_image"
7375
retry "$push_retries" plugin_prompt_and_run docker push "$target_image"
74-
set_prebuilt_image "${service_name}" "${target_image}"
76+
set_prebuilt_image "${metadata_key_prefix}" "${service_name}" "${target_image}"
7577
fi
7678
done
7779

@@ -82,5 +84,5 @@ for service_alias in $(plugin_read_list BUILD_ALIAS) ; do
8284
exit 1
8385
fi
8486

85-
set_prebuilt_image "$service_alias" "${target_image}"
87+
set_prebuilt_image "${metadata_key_prefix}" "$service_alias" "${target_image}"
8688
done

commands/run.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ while read -r name ; do
3535
fi
3636
done <<< "$(plugin_read_list PULL)"
3737

38+
metadata_key_prefix="$(plugin_read_config METADATA_KEY_PREFIX '')"
39+
3840
# A list of tuples of [service image cache_from] for build_image_override_file
3941
prebuilt_service_overrides=()
4042
prebuilt_services=()
@@ -45,7 +47,7 @@ for service_name in "${prebuilt_candidates[@]}" ; do
4547
if [[ -n "$prebuilt_image_override" ]] && [[ "$service_name" == "$run_service" ]] ; then
4648
echo "~~~ :docker: Overriding run image for $service_name"
4749
prebuilt_image="$prebuilt_image_override"
48-
elif prebuilt_image=$(get_prebuilt_image "$service_name") ; then
50+
elif prebuilt_image=$(get_prebuilt_image "$metadata_key_prefix" "$service_name") ; then
4951
echo "~~~ :docker: Found a pre-built image for $service_name"
5052
fi
5153

lib/metadata.bash

100644100755
Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,15 @@ function plugin_check_metadata_exists() {
77

88
# Read agent metadata for the plugin
99
function plugin_get_metadata() {
10-
local key="docker-compose-plugin-$1"
10+
local metadata_key_prefix="$1"
11+
local key="$2"
12+
13+
if [ -n "$metadata_key_prefix" ]; then
14+
metadata_key_prefix="$metadata_key_prefix-"
15+
fi
16+
17+
key="docker-compose-plugin-$metadata_key_prefix$key"
18+
1119
if plugin_check_metadata_exists "$key"; then
1220
plugin_prompt buildkite-agent meta-data get "$key"
1321
buildkite-agent meta-data get "$key"
@@ -18,8 +26,16 @@ function plugin_get_metadata() {
1826

1927
# Write agent metadata for the plugin
2028
function plugin_set_metadata() {
21-
local key="docker-compose-plugin-$1"
22-
local value="$2"
29+
local metadata_key_prefix="$1"
30+
local key="$2"
31+
local value="$3"
32+
33+
if [ -n "$metadata_key_prefix" ]; then
34+
metadata_key_prefix="$metadata_key_prefix-"
35+
fi
36+
37+
key="docker-compose-plugin-$metadata_key_prefix$key"
38+
2339
plugin_prompt_and_must_run buildkite-agent meta-data set "$key" "$value"
2440
}
2541

@@ -44,13 +60,17 @@ function prebuilt_image_meta_data_key() {
4460

4561
# Sets a prebuilt image for a service name
4662
function set_prebuilt_image() {
47-
local service="$1"
48-
local image="$2"
49-
plugin_set_metadata "$(prebuilt_image_meta_data_key "$service")" "$image"
63+
local metadata_key_prefix="$1"
64+
local service="$2"
65+
local image="$3"
66+
67+
plugin_set_metadata "$metadata_key_prefix" "$(prebuilt_image_meta_data_key "$service")" "$image"
5068
}
5169

5270
# Gets a prebuilt image for a service name
5371
function get_prebuilt_image() {
54-
local service="$1"
55-
plugin_get_metadata "$(prebuilt_image_meta_data_key "$service")"
72+
local metadata_key_prefix="$1"
73+
local service="$2"
74+
75+
plugin_get_metadata "$metadata_key_prefix" "$(prebuilt_image_meta_data_key "$service")"
5676
}

plugin.yml

100644100755
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ configuration:
131131
type: boolean
132132
workdir:
133133
type: string
134+
metadata-key-prefix:
135+
type: string
134136
anyOf:
135137
- required:
136138
- run

tests/metadata.bats

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ load '../lib/metadata'
3636
# Only expect the 'exists' command to be called, not the 'get'
3737
stub buildkite-agent "meta-data exists docker-compose-plugin-built-image-tag-test : exit 1"
3838

39-
run get_prebuilt_image "test"
39+
run get_prebuilt_image "" "test"
4040

4141
assert_failure
4242
unstub buildkite-agent
@@ -47,7 +47,7 @@ load '../lib/metadata'
4747
"meta-data exists docker-compose-plugin-built-image-tag-test : exit 0" \
4848
"meta-data get docker-compose-plugin-built-image-tag-test : exit 0"
4949

50-
run get_prebuilt_image "test"
50+
run get_prebuilt_image "" "test"
5151

5252
assert_success
5353
assert_output --partial "buildkite-agent meta-data get docker-compose-plugin-built-image-tag-test"

0 commit comments

Comments
 (0)