mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Merge pull request #32740 from rmmh/build-metadata
Automatic merge from submit-queue Make upload-to-gcs.sh include BUILD_METADATA_* env vars in started.json. This is initially intended for storing GCI image versions. Example output: $ TEST_STARTED_JSON=1 BUILD_METADATA_GCE_IMAGE=m53 \ BUILD_METADATA_VARIANT=reliableforreal BUILD_NUMBER=123 \ WORKSPACE="blaga" JOB_NAME="test-e2e" hack/jenkins/upload-to-gcs.sh { "version": "v1.5.0-alpha.0.806+fa943089125df4-dirty", "timestamp": 1473894301, "metadata": { "gce_image": "m53", "variant": "reliableforreal" }, "jenkins-node": "" }
This commit is contained in:
commit
0b340b7123
@ -31,6 +31,8 @@
|
|||||||
# Note: for magicfile support to work correctly, the "file" utility must be
|
# Note: for magicfile support to work correctly, the "file" utility must be
|
||||||
# installed.
|
# installed.
|
||||||
|
|
||||||
|
# TODO(rmmh): rewrite this script in Python so we can actually test it!
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
@ -102,6 +104,35 @@ function find_version() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Output started.json. Use test function below!
|
||||||
|
function print_started() {
|
||||||
|
local metadata_keys=$(compgen -e | grep ^BUILD_METADATA_)
|
||||||
|
echo "{"
|
||||||
|
echo " \"version\": \"${version}\","
|
||||||
|
echo " \"timestamp\": ${timestamp},"
|
||||||
|
if [[ -n "${metadata_keys}" ]]; then
|
||||||
|
# Any exported variables of the form BUILD_METADATA_KEY=VALUE
|
||||||
|
# will be available as started["metadata"][KEY.lower()].
|
||||||
|
echo " \"metadata\": {"
|
||||||
|
local sep="" # leading commas are easy to track
|
||||||
|
for env_var in $metadata_keys; do
|
||||||
|
local var_upper="${env_var#BUILD_METADATA_}"
|
||||||
|
echo " $sep\"${var_upper,,}\": \"${!env_var}\""
|
||||||
|
sep=","
|
||||||
|
done
|
||||||
|
echo " },"
|
||||||
|
fi
|
||||||
|
echo " \"jenkins-node\": \"${NODE_NAME:-}\""
|
||||||
|
echo "}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use this to test changes to print_started.
|
||||||
|
if [[ -n "${TEST_STARTED_JSON:-}" ]]; then
|
||||||
|
version=$(find_version)
|
||||||
|
cat <(print_started) | jq .
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
function upload_version() {
|
function upload_version() {
|
||||||
local -r version=$(find_version)
|
local -r version=$(find_version)
|
||||||
local upload_attempt
|
local upload_attempt
|
||||||
@ -117,13 +148,7 @@ function upload_version() {
|
|||||||
local -r json_file="${gcs_build_path}/started.json"
|
local -r json_file="${gcs_build_path}/started.json"
|
||||||
for upload_attempt in {1..3}; do
|
for upload_attempt in {1..3}; do
|
||||||
echo "Uploading version to: ${json_file} (attempt ${upload_attempt})"
|
echo "Uploading version to: ${json_file} (attempt ${upload_attempt})"
|
||||||
gsutil -q -h "Content-Type:application/json" cp -a "${gcs_acl}" <(
|
gsutil -q -h "Content-Type:application/json" cp -a "${gcs_acl}" <(print_started) "${json_file}" || continue
|
||||||
echo "{"
|
|
||||||
echo " \"version\": \"${version}\","
|
|
||||||
echo " \"timestamp\": ${timestamp},"
|
|
||||||
echo " \"jenkins-node\": \"${NODE_NAME:-}\""
|
|
||||||
echo "}"
|
|
||||||
) "${json_file}" || continue
|
|
||||||
break
|
break
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user