@@ -6,6 +6,9 @@ CHART_OCI_REF="${CHART_OCI_REF:-oci://registry.composio.io/composio-rodent/night
66RELEASE_CHANNEL_NAME=" ${RELEASE_CHANNEL_NAME:- ${NIGHTLY_CHANNEL_NAME:- Nightly} } "
77RELEASE_CHANNEL_ID=" ${RELEASE_CHANNEL_ID:- } "
88TAG_CALCULATION_MODE=" ${TAG_CALCULATION_MODE:- standard} "
9+ SEED_CHANNEL_NAME=" ${SEED_CHANNEL_NAME:- } "
10+ SEED_CHANNEL_ID=" ${SEED_CHANNEL_ID:- } "
11+ SEED_CHART_OCI_REF=" ${SEED_CHART_OCI_REF:- } "
912
1013require_cmd () {
1114 if ! command -v " $1 " > /dev/null 2>&1 ; then
@@ -31,7 +34,8 @@ write_output() {
3134}
3235
3336chart_name_from_ref () {
34- basename " ${CHART_OCI_REF} "
37+ local chart_oci_ref=" $1 "
38+ basename " ${chart_oci_ref} "
3539}
3640
3741resolve_replicated_app_id () {
@@ -64,32 +68,29 @@ resolve_replicated_app_id() {
6468
6569resolve_release_channel () {
6670 local app_id=" $1 "
71+ local channel_name=" $2 "
72+ local expected_channel_id=" $3 "
6773 local channels_json total_count channel_id current_version release_sequence
6874
6975 channels_json=" $(
7076 curl -fsSLG " https://api.replicated.com/vendor/v3/app/${app_id} /channels" \
71- --data-urlencode " channelName=${RELEASE_CHANNEL_NAME } " \
77+ --data-urlencode " channelName=${channel_name } " \
7278 --header " Accept: application/json" \
7379 --header " Authorization: ${REPLICATED_API_TOKEN} "
7480 ) "
7581
7682 total_count=" $( echo " ${channels_json} " | jq -r ' .totalCount // (.channels | length)' ) "
7783 if [[ " ${total_count} " != " 1" ]]; then
78- echo " ${RELEASE_CHANNEL_NAME } channel was not found in Replicated channels API response" >&2
84+ echo " ${channel_name } channel was not found in Replicated channels API response" >&2
7985 exit 1
8086 fi
8187
8288 channel_id=" $( echo " ${channels_json} " | jq -r ' .channels[0].id // .channels[0].channelId // empty' ) "
8389 current_version=" $( echo " ${channels_json} " | jq -r ' .channels[0].currentVersion // empty' ) "
8490 release_sequence=" $( echo " ${channels_json} " | jq -r ' .channels[0].releaseSequence // .channels[0].currentReleaseSequence // empty' ) "
8591
86- if [[ -n " ${RELEASE_CHANNEL_ID} " && " ${channel_id} " != " ${RELEASE_CHANNEL_ID} " ]]; then
87- echo " ${RELEASE_CHANNEL_NAME} channel ID mismatch: expected ${RELEASE_CHANNEL_ID} , got ${channel_id:- <empty>} " >&2
88- exit 1
89- fi
90-
91- if [[ -z " ${current_version} " || " ${current_version} " == " null" ]]; then
92- echo " ${RELEASE_CHANNEL_NAME} channel response did not include currentVersion" >&2
92+ if [[ -n " ${expected_channel_id} " && " ${channel_id} " != " ${expected_channel_id} " ]]; then
93+ echo " ${channel_name} channel ID mismatch: expected ${expected_channel_id} , got ${channel_id:- <empty>} " >&2
9394 exit 1
9495 fi
9596
@@ -101,15 +102,16 @@ resolve_release_channel() {
101102}
102103
103104pull_release_values () {
104- local chart_version=" $1 "
105+ local chart_oci_ref=" $1 "
106+ local chart_version=" $2 "
105107 local chart_name pull_root chart_dir
106108
107109 require_cmd helm
108110
109- chart_name=" $( chart_name_from_ref) "
111+ chart_name=" $( chart_name_from_ref " ${chart_oci_ref} " ) "
110112 pull_root=" $( mktemp -d) "
111113
112- helm pull " ${CHART_OCI_REF } " --version " ${chart_version} " --untar --untardir " ${pull_root} " > /dev/null
114+ helm pull " ${chart_oci_ref } " --version " ${chart_version} " --untar --untardir " ${pull_root} " > /dev/null
113115
114116 chart_dir=" ${pull_root} /${chart_name} "
115117 if [[ ! -f " ${chart_dir} /values.yaml" ]]; then
@@ -207,6 +209,7 @@ calculate_next_glean_tag() {
207209main () {
208210 local date_ist app_id channel_json channel_id current_version release_sequence
209211 local values_file base_tag base_tags base_count suffix_tag new_tag glean_tags
212+ local seed_channel_json values_source_name values_source_version values_source_ref
210213
211214 require_cmd jq
212215
@@ -216,6 +219,9 @@ main() {
216219 current_version=" "
217220 release_sequence=" "
218221 suffix_tag=" "
222+ values_source_name=" local file"
223+ values_source_version=" "
224+ values_source_ref=" "
219225
220226 if [[ -n " ${RELEASE_VALUES_FILE:- } " ]]; then
221227 values_file=" ${RELEASE_VALUES_FILE} "
@@ -225,11 +231,41 @@ main() {
225231 require_cmd curl
226232
227233 app_id=" $( resolve_replicated_app_id) "
228- channel_json=" $( resolve_release_channel " ${app_id} " ) "
234+ channel_json=" $(
235+ resolve_release_channel " ${app_id} " " ${RELEASE_CHANNEL_NAME} " " ${RELEASE_CHANNEL_ID} "
236+ ) "
229237 channel_id=" $( echo " ${channel_json} " | jq -r ' .id // empty' ) "
230238 current_version=" $( echo " ${channel_json} " | jq -r ' .currentVersion // empty' ) "
231239 release_sequence=" $( echo " ${channel_json} " | jq -r ' .releaseSequence // empty' ) "
232- values_file=" $( pull_release_values " ${current_version} " ) "
240+
241+ values_source_name=" ${RELEASE_CHANNEL_NAME} "
242+ values_source_version=" ${current_version} "
243+ values_source_ref=" ${CHART_OCI_REF} "
244+
245+ if [[ -z " ${current_version} " || " ${current_version} " == " null" ]]; then
246+ if [[ " ${TAG_CALCULATION_MODE} " != " glean" ]]; then
247+ echo " ${RELEASE_CHANNEL_NAME} channel response did not include currentVersion" >&2
248+ exit 1
249+ fi
250+
251+ require_env SEED_CHANNEL_NAME
252+ require_env SEED_CHANNEL_ID
253+ require_env SEED_CHART_OCI_REF
254+
255+ seed_channel_json=" $(
256+ resolve_release_channel " ${app_id} " " ${SEED_CHANNEL_NAME} " " ${SEED_CHANNEL_ID} "
257+ ) "
258+ values_source_version=" $( echo " ${seed_channel_json} " | jq -r ' .currentVersion // empty' ) "
259+ if [[ -z " ${values_source_version} " || " ${values_source_version} " == " null" ]]; then
260+ echo " ${SEED_CHANNEL_NAME} seed channel response did not include currentVersion" >&2
261+ exit 1
262+ fi
263+
264+ values_source_name=" ${SEED_CHANNEL_NAME} "
265+ values_source_ref=" ${SEED_CHART_OCI_REF} "
266+ fi
267+
268+ values_file=" $( pull_release_values " ${values_source_ref} " " ${values_source_version} " ) "
233269 fi
234270
235271 case " ${TAG_CALCULATION_MODE} " in
@@ -276,6 +312,7 @@ main() {
276312 echo " ${RELEASE_CHANNEL_NAME} channel id: ${channel_id:- not resolved} "
277313 echo " ${RELEASE_CHANNEL_NAME} current chart version: ${current_version:- not resolved} "
278314 echo " ${RELEASE_CHANNEL_NAME} release sequence: ${release_sequence:- not resolved} "
315+ echo " Chart values source: ${values_source_name} ${values_source_version:- not resolved} "
279316 echo " Base image tag used for increment: ${base_tag:- none} "
280317 echo " Suffix image tag used for increment: ${suffix_tag:- none} "
281318 echo " Calculated release tag: ${new_tag} "
0 commit comments