diff --git a/.ci/lib.sh b/.ci/lib.sh index 5f0db45615..f9bfcbc5ca 100644 --- a/.ci/lib.sh +++ b/.ci/lib.sh @@ -20,6 +20,5 @@ clone_tests_repo() run_static_checks() { - clone_tests_repo bash "$tests_repo_dir/.ci/static-checks.sh" "github.com/kata-containers/osbuilder" } diff --git a/.ci/setup.sh b/.ci/setup.sh index 8ddded15bf..e6ddc587af 100755 --- a/.ci/setup.sh +++ b/.ci/setup.sh @@ -22,8 +22,13 @@ elif [ "$ID" == ubuntu ];then sudo apt-get -qq update sudo apt-get install -y -qq make automake qemu-utils python-pip coreutils moreutils bc sudo pip install yamllint -else +else echo "Linux distribution not supported" fi + +clone_tests_repo bash "${cidir}/static-checks.sh" +# yq needed to correctly parse runtime/versions.yaml +make -C ${tests_repo_dir} install-yq + diff --git a/rootfs-builder/alpine/Dockerfile.in b/rootfs-builder/alpine/Dockerfile.in index 5208043d1b..94752399bf 100644 --- a/rootfs-builder/alpine/Dockerfile.in +++ b/rootfs-builder/alpine/Dockerfile.in @@ -5,4 +5,14 @@ From golang:@GO_VERSION@-alpine -RUN apk update && apk add git make bash gcc musl-dev linux-headers apk-tools-static libseccomp libseccomp-dev +RUN apk update && apk add \ + git \ + make \ + bash \ + gcc \ + musl-dev \ + linux-headers \ + apk-tools-static \ + libseccomp \ + libseccomp-dev \ + curl diff --git a/rootfs-builder/centos/Dockerfile.in b/rootfs-builder/centos/Dockerfile.in index 4e89be128a..26026374f9 100644 --- a/rootfs-builder/centos/Dockerfile.in +++ b/rootfs-builder/centos/Dockerfile.in @@ -7,7 +7,15 @@ From centos:@OS_VERSION@ @SET_PROXY@ -RUN yum -y update && yum install -y git make gcc coreutils libseccomp libseccomp-devel chrony +RUN yum -y update && yum install -y \ +git \ +make \ +gcc \ +coreutils \ +libseccomp \ +libseccomp-devel \ +chrony \ +curl # This will install the proper golang to build Kata components @INSTALL_GO@ diff --git a/rootfs-builder/clearlinux/Dockerfile.in b/rootfs-builder/clearlinux/Dockerfile.in index ff5164b795..5dbdca74a3 100644 --- a/rootfs-builder/clearlinux/Dockerfile.in +++ b/rootfs-builder/clearlinux/Dockerfile.in @@ -7,7 +7,16 @@ From fedora:27 @SET_PROXY@ -RUN dnf -y update && dnf install -y git systemd pkgconfig gcc coreutils libseccomp libseccomp-devel chrony +RUN dnf -y update && dnf install -y \ +git \ +systemd \ +pkgconfig \ +gcc \ +coreutils \ +libseccomp \ +libseccomp-devel \ +chrony \ +curl # This will install the proper golang to build Kata components @INSTALL_GO@ diff --git a/rootfs-builder/euleros/Dockerfile.in b/rootfs-builder/euleros/Dockerfile.in index 4ff79ba280..285d66293f 100644 --- a/rootfs-builder/euleros/Dockerfile.in +++ b/rootfs-builder/euleros/Dockerfile.in @@ -7,7 +7,14 @@ FROM euleros:@OS_VERSION@ @SET_PROXY@ -RUN yum -y update && yum install -y yum git make gcc coreutils chrony +RUN yum -y update && yum install -y \ +yum \ +git \ +make \ +gcc \ +coreutils \ +chrony \ +curl # This will install the proper golang to build Kata components @INSTALL_GO@ diff --git a/rootfs-builder/fedora/Dockerfile.in b/rootfs-builder/fedora/Dockerfile.in index 19e10adde6..0cd3492463 100644 --- a/rootfs-builder/fedora/Dockerfile.in +++ b/rootfs-builder/fedora/Dockerfile.in @@ -7,7 +7,17 @@ From fedora:@OS_VERSION@ @SET_PROXY@ -RUN dnf -y update && dnf install -y git redhat-release systemd pkgconfig gcc make libseccomp libseccomp-devel chrony +RUN dnf -y update && dnf install -y \ +git \ +redhat-release \ +systemd \ +pkgconfig \ +gcc \ +make \ +libseccomp \ +libseccomp-devel \ +chrony \ +curl # This will install the proper golang to build Kata components @INSTALL_GO@ diff --git a/rootfs-builder/rootfs.sh b/rootfs-builder/rootfs.sh index 7e8baa6937..55c41e8b89 100755 --- a/rootfs-builder/rootfs.sh +++ b/rootfs-builder/rootfs.sh @@ -17,6 +17,7 @@ AGENT_INIT=${AGENT_INIT:-no} KERNEL_MODULES_DIR=${KERNEL_MODULES_DIR:-""} OSBUILDER_VERSION="unknown" DOCKER_RUNTIME=${DOCKER_RUNTIME:-runc} +GO_VERSION= export GOPATH=${GOPATH:-${HOME}/go} lib_file="${script_dir}/../scripts/lib.sh" @@ -25,9 +26,6 @@ source "$lib_file" # Default architecture ARCH=$(uname -m) -# Load default versions for golang and other componets -source "${script_dir}/versions.txt" - # distro-specific config file typeset -r CONFIG_SH="config.sh" @@ -247,6 +245,18 @@ error_handler() fi } +detect_go_version() +{ + 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)" + + typeset -r runtimeVersion="${AGENT_VERSION:-master}" + typeset -r runtimeVersionsURL="https://raw.githubusercontent.com/kata-containers/runtime/${runtimeVersion}/versions.yaml" + + GO_VERSION=$(curl -sSL "${runtimeVersionsURL}" | $yq r - languages.golang.version) + info "Detected Go version: $GO_VERSION" +} + while getopts a:hlo:r:t: opt do case $opt in @@ -311,6 +321,8 @@ fi mkdir -p ${ROOTFS_DIR} +detect_go_version + if [ -n "${USE_DOCKER}" ] ; then image_name="${distro}-rootfs-osbuilder" diff --git a/rootfs-builder/versions.txt b/rootfs-builder/versions.txt deleted file mode 100644 index a686225cc8..0000000000 --- a/rootfs-builder/versions.txt +++ /dev/null @@ -1 +0,0 @@ -GO_VERSION=1.11.1