diff --git a/.ci/test.sh b/.ci/test.sh index 6bf8f9bc3..9925642b1 100755 --- a/.ci/test.sh +++ b/.ci/test.sh @@ -19,7 +19,7 @@ make_target() { pushd "${script_dir}/.." >>/dev/null - if [ -n "${CI}" ] && ! git whatchanged origin/master..HEAD "${dir}" | grep "${dir}" >>/dev/null; then + if ! git diff --name-only origin/master..HEAD ${dir} | grep ${dir}; then echo "Not changes in ${dir}" return fi diff --git a/kernel/build-kernel.sh b/kernel/build-kernel.sh index c0105f420..4284e4f63 100755 --- a/kernel/build-kernel.sh +++ b/kernel/build-kernel.sh @@ -145,7 +145,16 @@ get_default_kernel_config() { echo "${config}" } +get_config_and_patches() { + if [ -z "${patches_path}" ]; then + info "Clone config and patches" + patches_path="${default_patches_dir}" + [ -d "${patches_path}" ] || git clone "https://${patches_repo}.git" "${patches_repo_dir}" + fi +} + get_config_version() { + get_config_and_patches config_version_file="${default_patches_dir}/../kata_config_version" if [ -f "${config_version_file}" ]; then cat "${config_version_file}" @@ -172,10 +181,7 @@ setup_kernel() { [ -n "$kernel_path" ] || die "failed to find kernel source path" - if [ -z "${patches_path}" ]; then - patches_path="${default_patches_dir}" - [ -d "${patches_path}" ] || git clone "https://${patches_repo}.git" "${patches_repo_dir}" - fi + get_config_and_patches [ -d "${patches_path}" ] || die " patches path '${patches_path}' does not exist" @@ -290,8 +296,11 @@ main() { if [ -z "${kernel_path}" ]; then config_version=$(get_config_version) kernel_path="${PWD}/kata-linux-${kernel_version}-${config_version}" + info "Config version: ${config_version}" fi + info "Kernel version: ${kernel_version}" + case "${subcmd}" in build) build_kernel "${kernel_path}" diff --git a/kernel/build-kernel_test.sh b/kernel/build-kernel_test.sh index 1ff0bae65..8a4fb5a4d 100755 --- a/kernel/build-kernel_test.sh +++ b/kernel/build-kernel_test.sh @@ -7,6 +7,7 @@ set -o errexit set -o nounset set -o pipefail +set -o errtrace readonly script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly build_kernel_sh="${script_dir}/build-kernel.sh" @@ -17,6 +18,16 @@ exit_handler() { } trap exit_handler EXIT +err_report() { + echo "Error:" + echo "line: $1" + echo "Last saved output:" + echo "${out:-}" +} + +trap 'err_report $LINENO' ERR + + OK() { echo "OK" } diff --git a/kernel/kata_config_version b/kernel/kata_config_version index aabe6ec39..2bd5a0a98 100644 --- a/kernel/kata_config_version +++ b/kernel/kata_config_version @@ -1 +1 @@ -21 +22 diff --git a/scripts/lib.sh b/scripts/lib.sh index 732bb1f58..d86a2246f 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -35,12 +35,16 @@ get_from_kata_deps() { local branch="${2:-master}" local runtime_repo="github.com/kata-containers/runtime" GOPATH=${GOPATH:-${HOME}/go} - # This is needed in order to retrieve the version for qemu-lite - install_yq >&2 - yaml_url="https://raw.githubusercontent.com/kata-containers/runtime/${branch}/versions.yaml" - versions_file="versions_${branch}.yaml" - [ ! -e "${versions_file}" ] || download_on_new_flag="-z ${versions_file}" - curl --silent -o "${versions_file}" ${download_on_new_flag:-} "$yaml_url" + versions_file="${GOPATH}/src/github.com/kata-containers/runtime/versions.yaml" + if [ ! -e "${versions_file}" ]; then + yaml_url="https://raw.githubusercontent.com/kata-containers/runtime/${branch}/versions.yaml" + echo "versions file (${versions_file}) does not exist" >&2 + echo "Download from ${yaml_url}" >&2 + #make sure yq is installed + install_yq >&2 + versions_file="versions_${branch}.yaml" + curl --silent -o "${versions_file}" "$yaml_url" + fi result=$("${GOPATH}/bin/yq" read "$versions_file" "$dependency") [ "$result" = "null" ] && result="" echo "$result"