mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-26 23:38:31 +00:00
local-build: Use cached Cloud Hypervisor when possible
As we've added the support for caching components, let's use them whenever those are available. Fixes: #6480 Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com> Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
This commit is contained in:
parent
194d5dc8a6
commit
8a40f6f234
@ -43,6 +43,7 @@ RUN apt-get update && \
|
|||||||
git \
|
git \
|
||||||
make \
|
make \
|
||||||
unzip \
|
unzip \
|
||||||
|
wget \
|
||||||
xz-utils && \
|
xz-utils && \
|
||||||
apt-get clean && rm -rf /var/lib/apt/lists
|
apt-get clean && rm -rf /var/lib/apt/lists
|
||||||
|
|
||||||
|
@ -32,6 +32,9 @@ readonly nydus_builder="${static_build_dir}/nydus/build.sh"
|
|||||||
|
|
||||||
readonly rootfs_builder="${repo_root_dir}/tools/packaging/guest-image/build_image.sh"
|
readonly rootfs_builder="${repo_root_dir}/tools/packaging/guest-image/build_image.sh"
|
||||||
|
|
||||||
|
readonly jenkins_url="http://jenkins.katacontainers.io"
|
||||||
|
readonly cached_artifacts_path="lastSuccessfulBuild/artifact/artifacts"
|
||||||
|
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
workdir="${WORKDIR:-$PWD}"
|
workdir="${WORKDIR:-$PWD}"
|
||||||
@ -87,6 +90,34 @@ EOF
|
|||||||
exit "${return_code}"
|
exit "${return_code}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cleanup_and_fail() {
|
||||||
|
rm -f "${component_tarball_path}"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
install_cached_tarball_component() {
|
||||||
|
local component="${1}"
|
||||||
|
local jenkins_build_url="${2}"
|
||||||
|
local current_version="${3}"
|
||||||
|
local current_image_version="${4}"
|
||||||
|
local component_tarball_name="${5}"
|
||||||
|
local component_tarball_path="${6}"
|
||||||
|
|
||||||
|
local cached_version=$(curl -sfL "${jenkins_build_url}/latest" | awk '{print $1}') || cached_version="none"
|
||||||
|
local cached_image_version=$(curl -sfL "${jenkins_build_url}/latest_image" | awk '{print $1}') || cached_image_version="none"
|
||||||
|
|
||||||
|
[ "${cached_image_version}" != "${current_image_version}" ] && return 1
|
||||||
|
[ "${cached_version}" != "${current_version}" ] && return 1
|
||||||
|
|
||||||
|
info "Using cached tarball of ${component}"
|
||||||
|
echo "Downloading tarball from: ${jenkins_build_url}/${component_tarball_name}"
|
||||||
|
wget "${jenkins_build_url}/${component_tarball_name}" || return cleanup_and_fail
|
||||||
|
wget "${jenkins_build_url}/sha256sum-${component_tarball_name}" || return cleanup_and_fail
|
||||||
|
sha256sum -c "sha256sum-${component_tarball_name}" || return cleanup_and_fail
|
||||||
|
mv "${component_tarball_name}" "${component_tarball_path}"
|
||||||
|
}
|
||||||
|
|
||||||
#Install guest image
|
#Install guest image
|
||||||
install_image() {
|
install_image() {
|
||||||
info "Create image"
|
info "Create image"
|
||||||
@ -142,6 +173,15 @@ install_firecracker() {
|
|||||||
|
|
||||||
# Install static cloud-hypervisor asset
|
# Install static cloud-hypervisor asset
|
||||||
install_clh() {
|
install_clh() {
|
||||||
|
install_cached_tarball_component \
|
||||||
|
"cloud-hypervisor" \
|
||||||
|
"${jenkins_url}/job/kata-containers-main-clh-$(uname -m)/${cached_artifacts_path}" \
|
||||||
|
"$(get_from_kata_deps "assets.hypervisor.cloud_hypervisor.version")" \
|
||||||
|
"" \
|
||||||
|
"${final_tarball_name}" \
|
||||||
|
"${final_tarball_path}" \
|
||||||
|
&& return 0
|
||||||
|
|
||||||
if [[ "${ARCH}" == "x86_64" ]]; then
|
if [[ "${ARCH}" == "x86_64" ]]; then
|
||||||
export features="tdx"
|
export features="tdx"
|
||||||
fi
|
fi
|
||||||
@ -192,6 +232,11 @@ handle_build() {
|
|||||||
info "DESTDIR ${destdir}"
|
info "DESTDIR ${destdir}"
|
||||||
local build_target
|
local build_target
|
||||||
build_target="$1"
|
build_target="$1"
|
||||||
|
|
||||||
|
export final_tarball_path="${workdir}/kata-static-${build_target}.tar.xz"
|
||||||
|
export final_tarball_name="$(basename ${final_tarball_path})"
|
||||||
|
rm -f ${final_tarball_name}
|
||||||
|
|
||||||
case "${build_target}" in
|
case "${build_target}" in
|
||||||
all)
|
all)
|
||||||
install_clh
|
install_clh
|
||||||
@ -232,12 +277,11 @@ handle_build() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
tarball_name="${workdir}/kata-static-${build_target}.tar.xz"
|
if [ ! -f "${final_tarball_path}" ]; then
|
||||||
(
|
|
||||||
cd "${destdir}"
|
cd "${destdir}"
|
||||||
sudo tar cvfJ "${tarball_name}" "."
|
sudo tar cvfJ "${final_tarball_path}" "."
|
||||||
)
|
fi
|
||||||
tar tvf "${tarball_name}"
|
tar tvf "${final_tarball_path}"
|
||||||
}
|
}
|
||||||
|
|
||||||
silent_mode_error_trap() {
|
silent_mode_error_trap() {
|
||||||
|
Loading…
Reference in New Issue
Block a user