diff --git a/iso/builder/build.sh b/iso/builder/build.sh index 5a2276d..3ff3688 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -69,12 +69,27 @@ mkdir -p "${CACHE_ROOT}" : "${GOMODCACHE:=${CACHE_ROOT}/go-mod}" export GOCACHE GOMODCACHE -resolve_audit_version() { +resolve_project_version() { + if [ -n "${BEE_VERSION:-}" ]; then + echo "${BEE_VERSION}" + return 0 + fi + + if [ -n "${BEE_AUDIT_VERSION:-}" ] && [ -n "${BEE_ISO_VERSION:-}" ] && [ "${BEE_AUDIT_VERSION}" != "${BEE_ISO_VERSION}" ]; then + echo "ERROR: BEE_AUDIT_VERSION (${BEE_AUDIT_VERSION}) and BEE_ISO_VERSION (${BEE_ISO_VERSION}) differ; versioning must stay synchronized" >&2 + exit 1 + fi + if [ -n "${BEE_AUDIT_VERSION:-}" ]; then echo "${BEE_AUDIT_VERSION}" return 0 fi + if [ -n "${BEE_ISO_VERSION:-}" ]; then + echo "${BEE_ISO_VERSION}" + return 0 + fi + tag="$(git -C "${REPO_ROOT}" describe --tags --match 'v[0-9]*' --abbrev=7 --dirty 2>/dev/null || true)" case "${tag}" in v*) @@ -97,35 +112,6 @@ resolve_audit_version() { date +%Y%m%d } -# ISO image versioned separately from the audit binary (iso/v* tags). -resolve_iso_version() { - if [ -n "${BEE_ISO_VERSION:-}" ]; then - echo "${BEE_ISO_VERSION}" - return 0 - fi - - # Plain v* tags (e.g. v2.7) take priority — this is the current tagging scheme - tag="$(git -C "${REPO_ROOT}" describe --tags --match 'v[0-9]*' --abbrev=7 --dirty 2>/dev/null || true)" - case "${tag}" in - v*) - echo "${tag#v}" - return 0 - ;; - esac - - # Legacy iso/v* tags fallback - tag="$(git -C "${REPO_ROOT}" describe --tags --match 'iso/v*' --abbrev=7 --dirty 2>/dev/null || true)" - case "${tag}" in - iso/v*) - echo "${tag#iso/v}" - return 0 - ;; - esac - - # Fall back to audit version so the name is still meaningful - resolve_audit_version -} - sync_builder_workdir() { src_dir="$1" dst_dir="$2" @@ -1018,11 +1004,10 @@ recover_iso_memtest() { fi } -AUDIT_VERSION_EFFECTIVE="$(resolve_audit_version)" -ISO_VERSION_EFFECTIVE="$(resolve_iso_version)" -ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${ISO_VERSION_EFFECTIVE}-amd64" +PROJECT_VERSION_EFFECTIVE="$(resolve_project_version)" +ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${PROJECT_VERSION_EFFECTIVE}-amd64" # Versioned output directory: dist/easy-bee-v4.1/ — all final artefacts live here. -OUT_DIR="${DIST_DIR}/easy-bee-v${ISO_VERSION_EFFECTIVE}" +OUT_DIR="${DIST_DIR}/easy-bee-v${PROJECT_VERSION_EFFECTIVE}" mkdir -p "${OUT_DIR}" LOG_DIR="${OUT_DIR}/${ISO_BASENAME}.logs" LOG_ARCHIVE="${OUT_DIR}/${ISO_BASENAME}.logs.tar.gz" @@ -1198,7 +1183,7 @@ fi echo "=== bee ISO build (variant: ${BUILD_VARIANT}) ===" echo "Debian: ${DEBIAN_VERSION}, Kernel ABI: ${DEBIAN_KERNEL_ABI}, Go: ${GO_VERSION}" -echo "Audit version: ${AUDIT_VERSION_EFFECTIVE}, ISO version: ${ISO_VERSION_EFFECTIVE}" +echo "Project version: ${PROJECT_VERSION_EFFECTIVE}" echo "" run_step "sync git submodules" "05-git-submodules" \ @@ -1218,7 +1203,7 @@ if [ "$NEED_BUILD" = "1" ]; then "cd '${REPO_ROOT}/audit' && \ env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \ go build \ - -ldflags '-s -w -X main.Version=${AUDIT_VERSION_EFFECTIVE}' \ + -ldflags '-s -w -X main.Version=${PROJECT_VERSION_EFFECTIVE}' \ -o '${BEE_BIN}' \ ./cmd/bee" echo "binary: $BEE_BIN" @@ -1493,8 +1478,10 @@ else fi cat > "${OVERLAY_STAGE_DIR}/etc/bee-release" <