This commit is contained in:
firestar5683
2026-03-29 17:44:04 -05:00
parent 0f52ad6a28
commit 1bbee6c390
37 changed files with 57 additions and 3 deletions
+36
View File
@@ -105,6 +105,7 @@ ensure_image_exists() {
"${engine}" build --pull --platform linux/arm64 -f tools/laptop_device_build/Dockerfile -t "${IMAGE_NAME}" .
fi
assert_image_arch "${engine}"
ensure_image_capnp_version "${engine}"
}
assert_image_arch() {
@@ -116,6 +117,41 @@ assert_image_arch() {
fi
}
expected_capnp_version() {
local raw_version=""
raw_version="$(sed -n 's/^#elif CAPNP_VERSION != \([0-9][0-9]*\)$/\1/p' "${ROOT_DIR}/cereal/gen/cpp/custom.capnp.h" | head -n 1)"
[[ -n "${raw_version}" ]] || err "Unable to determine expected Cap'n Proto version from cereal/gen/cpp/custom.capnp.h."
local major=$(( raw_version / 1000000 ))
local minor=$(( (raw_version / 1000) % 1000 ))
local micro=$(( raw_version % 1000 ))
echo "${major}.${minor}.${micro}"
}
image_capnp_version() {
local engine="$1"
"${engine}" run --rm --platform linux/arm64 "${IMAGE_NAME}" bash -lc "capnp --version | awk '{print \$4}'" 2>/dev/null || true
}
ensure_image_capnp_version() {
local engine="$1"
local expected actual
expected="$(expected_capnp_version)"
actual="$(image_capnp_version "${engine}")"
if [[ "${actual}" == "${expected}" ]]; then
return
fi
echo "Container image ${IMAGE_NAME} has Cap'n Proto ${actual:-unknown}, expected ${expected}. Rebuilding it now..."
"${engine}" build --pull --platform linux/arm64 -f tools/laptop_device_build/Dockerfile -t "${IMAGE_NAME}" .
actual="$(image_capnp_version "${engine}")"
if [[ "${actual}" != "${expected}" ]]; then
err "Container image ${IMAGE_NAME} still has Cap'n Proto ${actual:-unknown} after rebuild; expected ${expected}."
fi
}
assert_runtime_machine() {
local engine="$1"
local machine