diff --git a/obs-packaging/gen_versions_txt.sh b/obs-packaging/gen_versions_txt.sh index 09d96cafc3..31d3550aba 100755 --- a/obs-packaging/gen_versions_txt.sh +++ b/obs-packaging/gen_versions_txt.sh @@ -26,22 +26,34 @@ get_kata_version() { gen_version_file() { local branch="$1" - [ -n "${branch}" ] || exit 1 + local use_head="$2" + local ref="refs/heads/${branch}" + local kata_version="${branch}" - local kata_version=$(get_kata_version "${branch}") - kata_runtime_hash=$(get_kata_hash_from_tag "runtime" "${kata_version}") - kata_proxy_hash=$(get_kata_hash_from_tag "proxy" "${kata_version}") - kata_shim_hash=$(get_kata_hash_from_tag "shim" "${kata_version}") - kata_agent_hash=$(get_kata_hash_from_tag "agent" "${kata_version}") - kata_ksm_throttler_hash=$(get_kata_hash_from_tag "ksm-throttler" "${kata_version}") + if [ -n "$branch" ] && [ -z "${use_head}" ]; then + kata_version=$(get_kata_version "${branch}") + ref="refs/tags/${kata_version}^{}" + fi + + kata_runtime_hash=$(get_kata_hash "runtime" "${ref}") + kata_proxy_hash=$(get_kata_hash "proxy" "${ref}") + kata_shim_hash=$(get_kata_hash "shim" "${ref}") + kata_agent_hash=$(get_kata_hash "agent" "${ref}") + kata_ksm_throttler_hash=$(get_kata_hash "ksm-throttler" "${ref}") qemu_lite_branch=$(get_from_kata_deps "assets.hypervisor.qemu-lite.branch" "${kata_version}") qemu_lite_version=$(curl -s -L "https://raw.githubusercontent.com/${project}/qemu/${qemu_lite_branch}/VERSION") qemu_lite_hash=$(git ls-remote https://github.com/${project}/qemu.git | grep "refs/heads/${qemu_lite_branch}" | awk '{print $1}') qemu_vanilla_branch=$(get_from_kata_deps "assets.hypervisor.qemu.version" "${kata_version}") + # Check if qemu.version can be used to get the version and hash, otherwise use qemu.tag + qemu_vanilla_ref="refs/heads/${qemu_vanilla_branch}" + if ! (git ls-remote --heads "https://github.com/qemu/qemu.git" | grep -q "refs/heads/${qemu_vanilla_branch}"); then + qemu_vanilla_branch=$(get_from_kata_deps "assets.hypervisor.qemu.tag" "${kata_version}") + qemu_vanilla_ref="refs/tags/${qemu_vanilla_branch}^{}" + fi qemu_vanilla_version=$(curl -s -L "https://raw.githubusercontent.com/qemu/qemu/${qemu_vanilla_branch}/VERSION") - qemu_vanilla_hash=$(git ls-remote https://github.com/qemu/qemu.git | grep "refs/heads/${qemu_vanilla_branch}" | awk '{print $1}') + qemu_vanilla_hash=$(git ls-remote https://github.com/qemu/qemu.git | grep "${qemu_vanilla_ref}" | awk '{print $1}') kernel_version=$(get_from_kata_deps "assets.kernel.version" "${kata_version}") #Remove extra 'v' @@ -52,6 +64,7 @@ gen_version_file() { # - is not a valid char for rpmbuild # see https://github.com/semver/semver/issues/145 + kata_version=$(get_kata_version "${branch}") kata_version=${kata_version/-/\~} cat > "$versions_txt" < with the one in ${versions_txt} and leave the file untouched. +--head Use 's head to generate the versions file. EOT exit "${exit_code}" } main() { local compareOnly= + local use_head= case "${1:-}" in "-h"|"--help") @@ -129,6 +144,10 @@ main() { compareOnly=1 shift ;; + --head) + use_head=1 + shift + ;; -*) die "Invalid option: ${1:-}" "1" shift @@ -147,7 +166,8 @@ main() { echo "${kata_version} in ${versions_txt} ${compare_result} the version at branch ${branch}" return fi - gen_version_file "${branch}" + + gen_version_file "${branch}" "${use_head}" } main $@ diff --git a/release/publish-kata-image.sh b/release/publish-kata-image.sh index 08405d1449..d372730616 100755 --- a/release/publish-kata-image.sh +++ b/release/publish-kata-image.sh @@ -59,7 +59,8 @@ main() { kata_version=${1:-} [ -n "${kata_version}" ] || usage "1" - agent_sha=$(get_kata_hash_from_tag "agent" "${kata_version}") + ref="refs/tags/${kata_version}^{}" + agent_sha=$(get_kata_hash "agent" "${ref}") agent_sha=${agent_sha:0:${short_commit_length}} image_tarball=$(find -name 'kata-containers-*.tar.gz' | grep "${kata_version}" | grep "${agent_sha}") || "${script_dir}/../obs-packaging/kata-containers-image/build_image.sh" -v "${kata_version}" diff --git a/scripts/lib.sh b/scripts/lib.sh index 1bd80453f4..46d928d2ba 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -96,11 +96,6 @@ build_hub() { popd >>/dev/null } -get_kata_hash_from_tag() { - repo=$1 - git ls-remote --tags "https://github.com/${project}/${repo}.git" | grep "refs/tags/${kata_version}^{}" | awk '{print $1}' -} - arch_to_golang() { local -r arch="$1" @@ -113,3 +108,9 @@ arch_to_golang() *) die "unsupported architecture: $arch";; esac } + +get_kata_hash() { + repo=$1 + ref=$2 + git ls-remote --heads --tags "https://github.com/${project}/${repo}.git" | grep "${ref}" | awk '{print $1}' +}