mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-11 04:42:16 +00:00
commit
9a9a8978f5
72
scripts/install-yq.sh
Normal file
72
scripts/install-yq.sh
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 IBM
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
# If we fail for any reason a message will be displayed
|
||||||
|
die() {
|
||||||
|
msg="$*"
|
||||||
|
echo "ERROR: $msg" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install the yq yaml query package from the mikefarah github repo
|
||||||
|
# Install via binary download, as we may not have golang installed at this point
|
||||||
|
function install_yq() {
|
||||||
|
GOPATH=${GOPATH:-${HOME}/go}
|
||||||
|
local yq_path="${GOPATH}/bin/yq"
|
||||||
|
local yq_pkg="github.com/mikefarah/yq"
|
||||||
|
[ -x "${GOPATH}/bin/yq" ] && return
|
||||||
|
|
||||||
|
read -r -a sysInfo <<< "$(uname -sm)"
|
||||||
|
|
||||||
|
case "${sysInfo[0]}" in
|
||||||
|
"Linux" | "Darwin")
|
||||||
|
goos="${sysInfo[0],}"
|
||||||
|
;;
|
||||||
|
"*")
|
||||||
|
die "OS ${sysInfo[0]} not supported"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "${sysInfo[1]}" in
|
||||||
|
"aarch64")
|
||||||
|
goarch=arm64
|
||||||
|
;;
|
||||||
|
"ppc64le")
|
||||||
|
goarch=ppc64le
|
||||||
|
;;
|
||||||
|
"x86_64")
|
||||||
|
goarch=amd64
|
||||||
|
;;
|
||||||
|
"s390x")
|
||||||
|
goarch=s390x
|
||||||
|
;;
|
||||||
|
"*")
|
||||||
|
die "Arch ${sysInfo[1]} not supported"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
mkdir -p "${GOPATH}/bin"
|
||||||
|
|
||||||
|
# Check curl
|
||||||
|
if ! command -v "curl" >/dev/null; then
|
||||||
|
die "Please install curl"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local yq_version=2.3.0
|
||||||
|
|
||||||
|
local yq_url="https://${yq_pkg}/releases/download/${yq_version}/yq_${goos}_${goarch}"
|
||||||
|
curl -o "${yq_path}" -LSsf ${yq_url}
|
||||||
|
[ $? -ne 0 ] && die "Download ${yq_url} failed"
|
||||||
|
chmod +x ${yq_path}
|
||||||
|
|
||||||
|
if ! command -v "${yq_path}" >/dev/null; then
|
||||||
|
die "Cannot not get ${yq_path} executable"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_yq
|
||||||
|
|
@ -12,6 +12,7 @@ GO_RUNTIME_PKG=${GO_RUNTIME_PKG:-github.com/kata-containers/runtime}
|
|||||||
# Give preference to variable set by CI
|
# Give preference to variable set by CI
|
||||||
KATA_BRANCH=${branch:-}
|
KATA_BRANCH=${branch:-}
|
||||||
KATA_BRANCH=${KATA_BRANCH:-master}
|
KATA_BRANCH=${KATA_BRANCH:-master}
|
||||||
|
yq_file="${script_dir}/../scripts/install-yq.sh"
|
||||||
|
|
||||||
error()
|
error()
|
||||||
{
|
{
|
||||||
@ -273,7 +274,9 @@ detect_go_version()
|
|||||||
{
|
{
|
||||||
info "Detecting agent go version"
|
info "Detecting agent go version"
|
||||||
typeset -r yq=$(command -v yq || command -v ${GOPATH}/bin/yq)
|
typeset -r yq=$(command -v yq || command -v ${GOPATH}/bin/yq)
|
||||||
[ -z "$yq" ] && die "'yq' application not found (needed to parsing minimum Go version required)"
|
if [ -z "$yq" ]; then
|
||||||
|
source "$yq_file"
|
||||||
|
fi
|
||||||
|
|
||||||
local runtimeRevision=""
|
local runtimeRevision=""
|
||||||
|
|
||||||
@ -286,7 +289,7 @@ detect_go_version()
|
|||||||
typeset -r runtimeVersionsURL="https://raw.githubusercontent.com/kata-containers/runtime/${runtimeRevision}/versions.yaml"
|
typeset -r runtimeVersionsURL="https://raw.githubusercontent.com/kata-containers/runtime/${runtimeRevision}/versions.yaml"
|
||||||
info "Getting golang version from ${runtimeVersionsURL}"
|
info "Getting golang version from ${runtimeVersionsURL}"
|
||||||
# This may fail if we are a kata bump.
|
# This may fail if we are a kata bump.
|
||||||
if GO_VERSION="$(curl -fsSL "$runtimeVersionsURL" | $yq r - "languages.golang.version")"; then
|
if GO_VERSION="$(curl -fsSL "$runtimeVersionsURL" | tac | tac | $yq r - "languages.golang.version")"; then
|
||||||
[ "$GO_VERSION" != "null" ]
|
[ "$GO_VERSION" != "null" ]
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@ -298,7 +301,7 @@ detect_go_version()
|
|||||||
info "There is not runtime repository in filesystem (${kata_runtime_pkg_dir})"
|
info "There is not runtime repository in filesystem (${kata_runtime_pkg_dir})"
|
||||||
local runtime_versions_url="https://raw.githubusercontent.com/kata-containers/runtime/${KATA_BRANCH}/versions.yaml"
|
local runtime_versions_url="https://raw.githubusercontent.com/kata-containers/runtime/${KATA_BRANCH}/versions.yaml"
|
||||||
info "Get versions file from ${runtime_versions_url}"
|
info "Get versions file from ${runtime_versions_url}"
|
||||||
GO_VERSION="$(curl -fsSL "${runtime_versions_url}" | $yq r - "languages.golang.version")"
|
GO_VERSION="$(curl -fsSL "${runtime_versions_url}" | tac | tac | $yq r - "languages.golang.version")"
|
||||||
if [ "$?" == "0" ] && [ "$GO_VERSION" != "null" ]; then
|
if [ "$?" == "0" ] && [ "$GO_VERSION" != "null" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user