Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

ci: Enable check VERSION among the components without the runtime #614

Merged
merged 1 commit into from
Jul 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 57 additions & 35 deletions release/tag_repos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ EOT

Args:
status : Get Current ${PROJECT} tags status
pre-release : Takes a version to check all the components match with it (but not the runtime)
tag : Create tags for ${PROJECT}

Options:
Expand Down Expand Up @@ -90,12 +91,26 @@ not_stable_branch=(
"ksm-throttler"
)

# The pre-release option at the check_versions function receives
# the runtime VERSION in order to check all the components match with it,
# this has the purpose that all the components have the same version before
# merging the runtime version
check_versions() {
version_to_check=${1:-}
if [ -z "${version_to_check}" ];then
info "Query the version from latest runtime in branch ${branch}"
else
kata_version="${version_to_check}"
fi

info "Tagging ${PROJECT} with version ${kata_version}"
info "Check all repos has version ${kata_version} in VERSION file"

for repo in "${repos[@]}"; do
if [ ! -z "${version_to_check}" ] && [ "${repo}" == "runtime" ]; then
info "Not checking runtime because we want the rest of repos are in ${version_to_check}"
continue
fi
repo_version=$(curl -Ls "${URL_RAW_FILE}/${repo}/${branch}/VERSION" | grep -v -P "^#")
info "${repo} is in $repo_version"
[ "${repo_version}" == "${kata_version}" ] || die "${repo} is not in version ${kata_version}"
Expand Down Expand Up @@ -174,40 +189,47 @@ create_github_release() {
fi
}

while getopts "b:hp" opt; do
case $opt in
b) branch="${OPTARG}" ;;
h) usage && exit 0 ;;
p) PUSH="true" ;;
esac
done
shift $((OPTIND - 1))

subcmd=${1:-""}
kata_version=$(curl -Ls "${URL_RAW_FILE}/runtime/${branch}/VERSION" | grep -v -P "^#")

[ -z "${subcmd}" ] && usage && exit 0

pushd "${tmp_dir}" >>/dev/null

case "${subcmd}" in
status)
check_versions
;;
tag)
check_versions
repos+=("${repos_not_versions[@]}")
tag_repos
if [ "${PUSH}" == "true" ]; then
push_tags
else
info "tags not pushed, use -p option to push the tags"
fi
;;
*)
usage && die "Invalid argument ${subcmd}"
;;
main () {
while getopts "b:hp" opt; do
case $opt in
b) branch="${OPTARG}" ;;
h) usage && exit 0 ;;
p) PUSH="true" ;;
esac
done
shift $((OPTIND - 1))

subcmd=${1:-""}
shift || true
kata_version=$(curl -Ls "${URL_RAW_FILE}/runtime/${branch}/VERSION" | grep -v -P "^#")

[ -z "${subcmd}" ] && usage && exit 0

pushd "${tmp_dir}" >>/dev/null

case "${subcmd}" in
status)
check_versions
;;
pre-release)
check_versions ${1}
;;
tag)
check_versions
repos+=("${repos_not_versions[@]}")
tag_repos
if [ "${PUSH}" == "true" ]; then
push_tags
else
info "tags not pushed, use -p option to push the tags"
fi
;;
*)
usage && die "Invalid argument ${subcmd}"
;;

esac
esac

popd >>/dev/null
popd >>/dev/null
}
main "$@"
7 changes: 7 additions & 0 deletions release/tag_repos_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,10 @@ echo "Check tag_repos.sh status"

echo "Check tag_repos.sh create tags but not push"
./release/tag_repos.sh tag | grep "tags not pushed"

echo "Check tag_repos.sh pre-release"
./release/tag_repos.sh pre-release $(curl -sL https://raw.githubusercontent.com/kata-containers/runtime/master/VERSION) | grep "Not checking runtime"

echo "Check tag_repos.sh pre-release with invalid information"
./release/tag_repos.sh pre-release 1000000 | grep "ERROR" || true