mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-01-31 12:14:27 +01:00
Merge pull request #7964 from fidencio/topic/ci-cache-using-oras-part-2
ci: cache: Use the artefacts stored in ghcr.io/kata-containers/cached-artefacts/${component}
This commit is contained in:
@@ -35,16 +35,13 @@ readonly nydus_builder="${static_build_dir}/nydus/build.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=${ARCH:-$(uname -m)}
|
||||
MEASURED_ROOTFS=${MEASURED_ROOTFS:-no}
|
||||
USE_CACHE="${USE_CACHE:-"yes"}"
|
||||
ARTEFACT_REGISTRY="${ARTEFACT_REGISTRY:-}"
|
||||
ARTEFACT_REGISTRY="${ARTEFACT_REGISTRY:-ghcr.io}"
|
||||
ARTEFACT_REGISTRY_USERNAME="${ARTEFACT_REGISTRY_USERNAME:-}"
|
||||
ARTEFACT_REGISTRY_PASSWORD="${ARTEFACT_REGISTRY_PASSWORD:-}"
|
||||
TARGET_BRANCH="${TARGET_BRANCH:=}"
|
||||
TARGET_BRANCH="${TARGET_BRANCH:-main}"
|
||||
PUSH_TO_REGISTRY="${PUSH_TO_REGISTRY:-}"
|
||||
|
||||
workdir="${WORKDIR:-$PWD}"
|
||||
@@ -114,35 +111,29 @@ EOF
|
||||
exit "${return_code}"
|
||||
}
|
||||
|
||||
|
||||
cleanup_and_fail() {
|
||||
rm -f "${component_tarball_path}"
|
||||
return 1
|
||||
}
|
||||
|
||||
install_cached_tarball_component() {
|
||||
if [ "${USE_CACHE}" != "yes" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
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 current_version="${2}"
|
||||
local current_image_version="${3}"
|
||||
local component_tarball_name="${4}"
|
||||
local component_tarball_path="${5}"
|
||||
|
||||
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"
|
||||
oras pull ${ARTEFACT_REGISTRY}/kata-containers/cached-artefacts/${build_target}:latest-${TARGET_BRANCH}-$(uname -m)
|
||||
|
||||
cached_version="$(cat ${component}-version)"
|
||||
cached_image_version="$(cat ${component}-builder-image-version)"
|
||||
|
||||
rm -f ${component}-version
|
||||
rm -f ${component}-builder-image-version
|
||||
|
||||
[ "${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}"
|
||||
}
|
||||
|
||||
@@ -155,7 +146,6 @@ install_image() {
|
||||
image_type+="-${variant}"
|
||||
fi
|
||||
|
||||
local jenkins="${jenkins_url}/job/kata-containers-main-rootfs-${image_type}-${ARCH}/${cached_artifacts_path}"
|
||||
local component="rootfs-${image_type}"
|
||||
|
||||
local osbuilder_last_commit="$(get_last_modification "${repo_root_dir}/tools/osbuilder")"
|
||||
@@ -171,7 +161,6 @@ install_image() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"${component}" \
|
||||
"${jenkins}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -206,7 +195,6 @@ install_initrd() {
|
||||
initrd_type+="-${variant}"
|
||||
fi
|
||||
|
||||
local jenkins="${jenkins_url}/job/kata-containers-main-rootfs-${initrd_type}-${ARCH}/${cached_artifacts_path}"
|
||||
local component="rootfs-${initrd_type}"
|
||||
|
||||
local osbuilder_last_commit="$(get_last_modification "${repo_root_dir}/tools/osbuilder")"
|
||||
@@ -224,7 +212,6 @@ install_initrd() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"${component}" \
|
||||
"${jenkins}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -266,7 +253,6 @@ install_cached_kernel_tarball_component() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"${kernel_name}" \
|
||||
"${jenkins_url}/job/kata-containers-main-${kernel_name}-${ARCH}/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -280,7 +266,6 @@ install_cached_kernel_tarball_component() {
|
||||
# SEV specific code path
|
||||
install_cached_tarball_component \
|
||||
"${kernel_name}" \
|
||||
"${jenkins_url}/job/kata-containers-main-${kernel_name}-$(uname -m)/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"kata-static-kernel-sev-modules.tar.xz" \
|
||||
@@ -406,7 +391,6 @@ install_qemu_helper() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"${qemu_name}" \
|
||||
"${jenkins_url}/job/kata-containers-main-${qemu_name}-${ARCH}/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -458,7 +442,6 @@ install_firecracker() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"firecracker" \
|
||||
"${jenkins_url}/job/kata-containers-main-firecracker-$(uname -m)/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -483,7 +466,6 @@ install_clh_helper() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"cloud-hypervisor${suffix}" \
|
||||
"${jenkins_url}/job/kata-containers-main-clh-$(uname -m)${suffix}/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -526,7 +508,6 @@ install_virtiofsd() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"virtiofsd" \
|
||||
"${jenkins_url}/job/kata-containers-main-virtiofsd-${ARCH}/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -549,7 +530,6 @@ install_nydus() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"nydus" \
|
||||
"${jenkins_url}/job/kata-containers-main-nydus-$(uname -m)/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -578,7 +558,6 @@ install_shimv2() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"shim-v2" \
|
||||
"${jenkins_url}/job/kata-containers-main-shim-v2-${ARCH}/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -614,7 +593,6 @@ install_ovmf() {
|
||||
|
||||
install_cached_tarball_component \
|
||||
"${component_name}" \
|
||||
"${jenkins_url}/job/kata-containers-main-ovmf-${ovmf_type}-$(uname -m)/${cached_artifacts_path}" \
|
||||
"${latest_artefact}" \
|
||||
"${latest_builder_image}" \
|
||||
"${final_tarball_name}" \
|
||||
@@ -735,8 +713,10 @@ handle_build() {
|
||||
fi
|
||||
tar tvf "${final_tarball_path}"
|
||||
|
||||
echo "${latest_artefact}" > ${workdir}/${build_target}-version
|
||||
echo "${latest_builder_image}" > ${workdir}/${build_target}-builder-image-version
|
||||
pushd ${workdir}
|
||||
echo "${latest_artefact}" > ${build_target}-version
|
||||
echo "${latest_builder_image}" > ${build_target}-builder-image-version
|
||||
sha256sum "${final_tarball_name}" > ${build_target}-sha256sum
|
||||
|
||||
if [ "${PUSH_TO_REGISTRY}" = "yes" ]; then
|
||||
if [ -z "${ARTEFACT_REGISTRY}" ] ||
|
||||
@@ -746,13 +726,13 @@ handle_build() {
|
||||
die "ARTEFACT_REGISTRY, ARTEFACT_REGISTRY_USERNAME, ARTEFACT_REGISTRY_PASSWORD and TARGET_BRANCH must be passed to the script when pushing the artefacts to the registry!"
|
||||
fi
|
||||
|
||||
pushd ${workdir}
|
||||
echo "${ARTEFACT_REGISTRY_PASSWORD}" | oras login "${ARTEFACT_REGISTRY}" -u "${ARTEFACT_REGISTRY_USERNAME}" --password-stdin
|
||||
echo "${ARTEFACT_REGISTRY_PASSWORD}" | oras login "${ARTEFACT_REGISTRY}" -u "${ARTEFACT_REGISTRY_USERNAME}" --password-stdin
|
||||
|
||||
oras push ${ARTEFACT_REGISTRY}/kata-containers/cached-artefacts/${build_target}:latest-${TARGET_BRANCH}-$(uname -m) ${final_tarball_name} ${build_target}-version ${build_target}-builder-image-version
|
||||
oras logout "${ARTEFACT_REGISTRY}"
|
||||
popd
|
||||
oras push ${ARTEFACT_REGISTRY}/kata-containers/cached-artefacts/${build_target}:latest-${TARGET_BRANCH}-$(uname -m) ${final_tarball_name} ${build_target}-version ${build_target}-builder-image-version ${build_target}-sha256sum
|
||||
oras logout "${ARTEFACT_REGISTRY}"
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
silent_mode_error_trap() {
|
||||
|
||||
@@ -1,264 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2022 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
source "${script_dir}/../scripts/lib.sh"
|
||||
|
||||
KERNEL_FLAVOUR="${KERNEL_FLAVOUR:-kernel}" # kernel | kernel-nvidia-gpu | kernel-experimental | kernel-arm-experimental | kernel-dragonball-experimental | kernel-tdx-experimental | kernel-nvidia-gpu-tdx-experimental | kernel-nvidia-gpu-snp
|
||||
OVMF_FLAVOUR="${OVMF_FLAVOUR:-x86_64}" # x86_64 | tdx
|
||||
QEMU_FLAVOUR="${QEMU_FLAVOUR:-qemu}" # qemu | qemu-tdx-experimental | qemu-snp-experimental
|
||||
ROOTFS_IMAGE_TYPE="${ROOTFS_IMAGE_TYPE:-image}" # image | initrd
|
||||
|
||||
cache_clh_artifacts() {
|
||||
local clh_tarball_name="kata-static-cloud-hypervisor.tar.xz"
|
||||
local current_clh_version="$(get_from_kata_deps "assets.hypervisor.cloud_hypervisor.version")"
|
||||
create_cache_asset "${clh_tarball_name}" "${current_clh_version}" ""
|
||||
}
|
||||
|
||||
cache_firecracker_artifacts() {
|
||||
local fc_tarball_name="kata-static-firecracker.tar.xz"
|
||||
local current_fc_version="$(get_from_kata_deps "assets.hypervisor.firecracker.version")"
|
||||
create_cache_asset "${fc_tarball_name}" "${current_fc_version}" ""
|
||||
}
|
||||
|
||||
cache_kernel_artifacts() {
|
||||
local kernel_tarball_name="kata-static-${KERNEL_FLAVOUR}.tar.xz"
|
||||
local current_kernel_image="$(get_kernel_image_name)"
|
||||
local current_kernel_kata_config_version="$(cat ${repo_root_dir}/tools/packaging/kernel/kata_config_version)"
|
||||
# Changes to tools/packaging/kernel are covered by the kata_config_version check
|
||||
local kernel_last_commit="$(get_last_modification ${repo_root_dir}/tools/packaging/static-build/kernel)"
|
||||
local kernel_modules_tarball_path="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/kata-static-kernel-sev-modules.tar.xz"
|
||||
|
||||
# The ${vendor}-gpu kernels are based on an already existing entry, and does not require
|
||||
# adding a new entry to the versions.yaml.
|
||||
#
|
||||
# With this in mind, let's just make sure we get the version from correct entry in the
|
||||
# versions.yaml file.
|
||||
case ${KERNEL_FLAVOUR} in
|
||||
*"nvidia-gpu"*)
|
||||
KERNEL_FLAVOUR=${KERNEL_FLAVOUR//"-nvidia-gpu"/}
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
case ${KERNEL_FLAVOUR} in
|
||||
"kernel-sev"|"kernel-snp")
|
||||
# In these cases, like "kernel-foo", it must be set to "kernel.foo" when looking at
|
||||
# the versions.yaml file
|
||||
current_kernel_version="$(get_from_kata_deps "assets.${KERNEL_FLAVOUR/-/.}.version")"
|
||||
;;
|
||||
*)
|
||||
current_kernel_version="$(get_from_kata_deps "assets.${KERNEL_FLAVOUR}.version")"
|
||||
;;
|
||||
esac
|
||||
|
||||
local current_component_version="${current_kernel_version}-${current_kernel_kata_config_version}-${kernel_last_commit}"
|
||||
create_cache_asset "${kernel_tarball_name}" "${current_component_version}" "${current_kernel_image}"
|
||||
if [[ "${KERNEL_FLAVOUR}" == "kernel-sev" ]]; then
|
||||
module_dir="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/kernel-sev/builddir/kata-linux-${current_kernel_version#v}-${current_kernel_kata_config_version}/lib/modules/${current_kernel_version#v}"
|
||||
if [ ! -f "${kernel_modules_tarball_path}" ]; then
|
||||
tar cvfJ "${kernel_modules_tarball_path}" "${module_dir}/kernel/drivers/virt/coco/efi_secret/"
|
||||
fi
|
||||
create_cache_asset "kata-static-kernel-sev-modules.tar.xz" "${current_component_version}" "${current_kernel_image}"
|
||||
fi
|
||||
}
|
||||
|
||||
cache_nydus_artifacts() {
|
||||
local nydus_tarball_name="kata-static-nydus.tar.xz"
|
||||
local current_nydus_version="$(get_from_kata_deps "externals.nydus.version")"
|
||||
create_cache_asset "${nydus_tarball_name}" "${current_nydus_version}" ""
|
||||
}
|
||||
|
||||
cache_ovmf_artifacts() {
|
||||
local current_ovmf_version="$(get_from_kata_deps "externals.ovmf.${OVMF_FLAVOUR}.version")"
|
||||
case ${OVMF_FLAVOUR} in
|
||||
"tdx")
|
||||
ovmf_tarball_name="kata-static-tdvf.tar.xz"
|
||||
;;
|
||||
"x86_64")
|
||||
ovmf_tarball_name="kata-static-ovmf.tar.xz"
|
||||
;;
|
||||
*)
|
||||
ovmf_tarball_name="kata-static-ovmf-${OVMF_FLAVOUR}.tar.xz"
|
||||
;;
|
||||
esac
|
||||
|
||||
local current_ovmf_image="$(get_ovmf_image_name)"
|
||||
create_cache_asset "${ovmf_tarball_name}" "${current_ovmf_version}" "${current_ovmf_image}"
|
||||
}
|
||||
|
||||
cache_qemu_artifacts() {
|
||||
local qemu_tarball_name="kata-static-${QEMU_FLAVOUR}.tar.xz"
|
||||
local current_qemu_version=$(get_from_kata_deps "assets.hypervisor.${QEMU_FLAVOUR}.version")
|
||||
[ -z "${current_qemu_version}" ] && current_qemu_version=$(get_from_kata_deps "assets.hypervisor.${QEMU_FLAVOUR}.tag")
|
||||
local qemu_sha=$(calc_qemu_files_sha256sum)
|
||||
local current_qemu_image="$(get_qemu_image_name)"
|
||||
create_cache_asset "${qemu_tarball_name}" "${current_qemu_version}-${qemu_sha}" "${current_qemu_image}"
|
||||
}
|
||||
|
||||
cache_rootfs_artifacts() {
|
||||
local osbuilder_last_commit="$(get_last_modification "${repo_root_dir}/tools/osbuilder")"
|
||||
local guest_image_last_commit="$(get_last_modification "${repo_root_dir}/tools/packaging/guest-image")"
|
||||
local agent_last_commit="$(get_last_modification "${repo_root_dir}/src/agent")"
|
||||
local libs_last_commit="$(get_last_modification "${repo_root_dir}/src/libs")"
|
||||
local gperf_version="$(get_from_kata_deps "externals.gperf.version")"
|
||||
local libseccomp_version="$(get_from_kata_deps "externals.libseccomp.version")"
|
||||
local rust_version="$(get_from_kata_deps "languages.rust.meta.newest-version")"
|
||||
local rootfs_tarball_name="kata-static-rootfs-${ROOTFS_IMAGE_TYPE}.tar.xz"
|
||||
local current_rootfs_version="${osbuilder_last_commit}-${guest_image_last_commit}-${agent_last_commit}-${libs_last_commit}-${gperf_version}-${libseccomp_version}-${rust_version}-${ROOTFS_IMAGE_TYPE}"
|
||||
create_cache_asset "${rootfs_tarball_name}" "${current_rootfs_version}" ""
|
||||
}
|
||||
|
||||
cache_shim_v2_artifacts() {
|
||||
local shim_v2_tarball_name="kata-static-shim-v2.tar.xz"
|
||||
local shim_v2_last_commit="$(get_last_modification "${repo_root_dir}/src/runtime")"
|
||||
local protocols_last_commit="$(get_last_modification "${repo_root_dir}/src/libs/protocols")"
|
||||
local runtime_rs_last_commit="$(get_last_modification "${repo_root_dir}/src/runtime-rs")"
|
||||
local golang_version="$(get_from_kata_deps "languages.golang.meta.newest-version")"
|
||||
local rust_version="$(get_from_kata_deps "languages.rust.meta.newest-version")"
|
||||
local current_shim_v2_version="${shim_v2_last_commit}-${protocols_last_commit}-${runtime_rs_last_commit}-${golang_version}-${rust_version}"
|
||||
local current_shim_v2_image="$(get_shim_v2_image_name)"
|
||||
create_cache_asset "${shim_v2_tarball_name}" "${current_shim_v2_version}" "${current_shim_v2_image}"
|
||||
}
|
||||
|
||||
cache_virtiofsd_artifacts() {
|
||||
local virtiofsd_tarball_name="kata-static-virtiofsd.tar.xz"
|
||||
local current_virtiofsd_version="$(get_from_kata_deps "externals.virtiofsd.version")-$(get_from_kata_deps "externals.virtiofsd.toolchain")"
|
||||
local current_virtiofsd_image="$(get_virtiofsd_image_name)"
|
||||
create_cache_asset "${virtiofsd_tarball_name}" "${current_virtiofsd_version}" "${current_virtiofsd_image}"
|
||||
}
|
||||
|
||||
create_cache_asset() {
|
||||
local component_name="${1}"
|
||||
local component_version="${2}"
|
||||
local component_image="${3}"
|
||||
|
||||
sudo cp "${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/${component_name}" .
|
||||
sudo chown -R "${USER}:${USER}" .
|
||||
sha256sum "${component_name}" > "sha256sum-${component_name}"
|
||||
cat "sha256sum-${component_name}"
|
||||
echo "${component_version}" > "latest"
|
||||
cat "latest"
|
||||
echo "${component_image}" > "latest_image"
|
||||
cat "latest_image"
|
||||
}
|
||||
|
||||
help() {
|
||||
echo "$(cat << EOF
|
||||
Usage: $0 "[options]"
|
||||
Description:
|
||||
Builds the cache of several kata components.
|
||||
Options:
|
||||
-c Cloud hypervisor cache
|
||||
-F Firecracker cache
|
||||
-k Kernel cache
|
||||
* Export KERNEL_FLAVOUR="kernel | kernel-nvidia-gpu | kernel-experimental | kernel-arm-experimental | kernel-dragonball-experimental | kernel-tdx-experimental | kernel-nvidia-gpu-tdx-experimental | kernel-nvidia-gpu-snp" for a specific build
|
||||
The default KERNEL_FLAVOUR value is "kernel"
|
||||
-n Nydus cache
|
||||
-q QEMU cache
|
||||
* Export QEMU_FLAVOUR="qemu | qemu-tdx-experimental | qemu-snp-experimental" for a specific build
|
||||
The default QEMU_FLAVOUR value is "qemu"
|
||||
-r RootFS cache
|
||||
* Export ROOTFS_IMAGE_TYPE="image|initrd" for one of those two types
|
||||
The default ROOTFS_IMAGE_TYPE value is "image"
|
||||
-s Shim v2 cache
|
||||
-v VirtioFS cache
|
||||
-h Shows help
|
||||
EOF
|
||||
)"
|
||||
}
|
||||
|
||||
main() {
|
||||
local cloud_hypervisor_component="${cloud_hypervisor_component:-}"
|
||||
local firecracker_component="${firecracker_component:-}"
|
||||
local kernel_component="${kernel_component:-}"
|
||||
local nydus_component="${nydus_component:-}"
|
||||
local ovmf_component="${ovmf_component:-}"
|
||||
local qemu_component="${qemu_component:-}"
|
||||
local rootfs_component="${rootfs_component:-}"
|
||||
local shim_v2_component="${shim_v2_component:-}"
|
||||
local virtiofsd_component="${virtiofsd_component:-}"
|
||||
local OPTIND
|
||||
while getopts ":cFknoqrsvh:" opt
|
||||
do
|
||||
case "$opt" in
|
||||
c)
|
||||
cloud_hypervisor_component="1"
|
||||
;;
|
||||
F)
|
||||
firecracker_component="1"
|
||||
;;
|
||||
k)
|
||||
kernel_component="1"
|
||||
;;
|
||||
n)
|
||||
nydus_component="1"
|
||||
;;
|
||||
o)
|
||||
ovmf_component="1"
|
||||
;;
|
||||
q)
|
||||
qemu_component="1"
|
||||
;;
|
||||
r)
|
||||
rootfs_component="1"
|
||||
;;
|
||||
s)
|
||||
shim_v2_component="1"
|
||||
;;
|
||||
v)
|
||||
virtiofsd_component="1"
|
||||
;;
|
||||
h)
|
||||
help
|
||||
exit 0;
|
||||
;;
|
||||
:)
|
||||
echo "Missing argument for -$OPTARG";
|
||||
help
|
||||
exit 1;
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
[[ -z "${cloud_hypervisor_component}" ]] && \
|
||||
[[ -z "${firecracker_component}" ]] && \
|
||||
[[ -z "${kernel_component}" ]] && \
|
||||
[[ -z "${nydus_component}" ]] && \
|
||||
[[ -z "${ovmf_component}" ]] && \
|
||||
[[ -z "${qemu_component}" ]] && \
|
||||
[[ -z "${rootfs_component}" ]] && \
|
||||
[[ -z "${shim_v2_component}" ]] && \
|
||||
[[ -z "${virtiofsd_component}" ]] && \
|
||||
help && die "Must choose at least one option"
|
||||
|
||||
mkdir -p "${WORKSPACE}/artifacts"
|
||||
pushd "${WORKSPACE}/artifacts"
|
||||
echo "Artifacts:"
|
||||
|
||||
[ "${cloud_hypervisor_component}" == "1" ] && cache_clh_artifacts
|
||||
[ "${firecracker_component}" == "1" ] && cache_firecracker_artifacts
|
||||
[ "${kernel_component}" == "1" ] && cache_kernel_artifacts
|
||||
[ "${nydus_component}" == "1" ] && cache_nydus_artifacts
|
||||
[ "${ovmf_component}" == "1" ] && cache_ovmf_artifacts
|
||||
[ "${qemu_component}" == "1" ] && cache_qemu_artifacts
|
||||
[ "${rootfs_component}" == "1" ] && cache_rootfs_artifacts
|
||||
[ "${shim_v2_component}" == "1" ] && cache_shim_v2_artifacts
|
||||
[ "${virtiofsd_component}" == "1" ] && cache_virtiofsd_artifacts
|
||||
|
||||
ls -la "${WORKSPACE}/artifacts/"
|
||||
popd
|
||||
sync
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user