Merge pull request #27743 from wonderfly/gci-preview-test

Automatic merge from submit-queue

e2e-runner: Improve the logic of detecting Docker releases

Apparently it didn't handle GitHub prereleases well. Also switch from
`JENKINS_GCI_IMAGE_TYPE` to `JENKINS_GCI_IMAGE_FAMILY` following up #27083.

@dchen1107 @fejta Can you review?

cc/ @kubernetes/goog-image
This commit is contained in:
k8s-merge-robot 2016-06-22 21:17:05 -07:00 committed by GitHub
commit a826ed0b04

View File

@ -89,13 +89,19 @@ function get_latest_gci_image() {
function get_latest_docker_release() {
# Typical Docker release versions are like v1.11.2-rc1, v1.11.2, and etc.
local -r version_re='.*\"tag_name\":[[:space:]]+\"v([0-9\.r|c-]+)\",.*'
local -r latest_release="$(curl -fsSL --retry 3 https://api.github.com/repos/docker/docker/releases/latest)"
if [[ "${latest_release}" =~ ${version_re} ]]; then
echo "${BASH_REMATCH[1]}"
else
echo "Malformed Docker API response for latest release: ${latest_release}"
exit 1
fi
local -r releases="$(curl -fsSL --retry 3 https://api.github.com/repos/docker/docker/releases)"
# The GitHub API returns releases in descending order of creation time so the
# first one is always the latest.
# TODO: if we can install `jq` on the Jenkins nodes, we won't have to craft
# regular expressions here.
while read -r line; do
if [[ "${line}" =~ ${version_re} ]]; then
echo "${BASH_REMATCH[1]}"
return
fi
done <<< "${releases}"
echo "Failed to determine the latest Docker release."
exit 1
}
function install_google_cloud_sdk_tarball() {