Synchronize project versioning across build artifacts
This commit is contained in:
@@ -69,12 +69,27 @@ mkdir -p "${CACHE_ROOT}"
|
|||||||
: "${GOMODCACHE:=${CACHE_ROOT}/go-mod}"
|
: "${GOMODCACHE:=${CACHE_ROOT}/go-mod}"
|
||||||
export GOCACHE GOMODCACHE
|
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
|
if [ -n "${BEE_AUDIT_VERSION:-}" ]; then
|
||||||
echo "${BEE_AUDIT_VERSION}"
|
echo "${BEE_AUDIT_VERSION}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
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)"
|
tag="$(git -C "${REPO_ROOT}" describe --tags --match 'v[0-9]*' --abbrev=7 --dirty 2>/dev/null || true)"
|
||||||
case "${tag}" in
|
case "${tag}" in
|
||||||
v*)
|
v*)
|
||||||
@@ -97,35 +112,6 @@ resolve_audit_version() {
|
|||||||
date +%Y%m%d
|
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() {
|
sync_builder_workdir() {
|
||||||
src_dir="$1"
|
src_dir="$1"
|
||||||
dst_dir="$2"
|
dst_dir="$2"
|
||||||
@@ -1018,11 +1004,10 @@ recover_iso_memtest() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
AUDIT_VERSION_EFFECTIVE="$(resolve_audit_version)"
|
PROJECT_VERSION_EFFECTIVE="$(resolve_project_version)"
|
||||||
ISO_VERSION_EFFECTIVE="$(resolve_iso_version)"
|
ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${PROJECT_VERSION_EFFECTIVE}-amd64"
|
||||||
ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${ISO_VERSION_EFFECTIVE}-amd64"
|
|
||||||
# Versioned output directory: dist/easy-bee-v4.1/ — all final artefacts live here.
|
# 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}"
|
mkdir -p "${OUT_DIR}"
|
||||||
LOG_DIR="${OUT_DIR}/${ISO_BASENAME}.logs"
|
LOG_DIR="${OUT_DIR}/${ISO_BASENAME}.logs"
|
||||||
LOG_ARCHIVE="${OUT_DIR}/${ISO_BASENAME}.logs.tar.gz"
|
LOG_ARCHIVE="${OUT_DIR}/${ISO_BASENAME}.logs.tar.gz"
|
||||||
@@ -1198,7 +1183,7 @@ fi
|
|||||||
|
|
||||||
echo "=== bee ISO build (variant: ${BUILD_VARIANT}) ==="
|
echo "=== bee ISO build (variant: ${BUILD_VARIANT}) ==="
|
||||||
echo "Debian: ${DEBIAN_VERSION}, Kernel ABI: ${DEBIAN_KERNEL_ABI}, Go: ${GO_VERSION}"
|
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 ""
|
echo ""
|
||||||
|
|
||||||
run_step "sync git submodules" "05-git-submodules" \
|
run_step "sync git submodules" "05-git-submodules" \
|
||||||
@@ -1218,7 +1203,7 @@ if [ "$NEED_BUILD" = "1" ]; then
|
|||||||
"cd '${REPO_ROOT}/audit' && \
|
"cd '${REPO_ROOT}/audit' && \
|
||||||
env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
|
env GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
|
||||||
go build \
|
go build \
|
||||||
-ldflags '-s -w -X main.Version=${AUDIT_VERSION_EFFECTIVE}' \
|
-ldflags '-s -w -X main.Version=${PROJECT_VERSION_EFFECTIVE}' \
|
||||||
-o '${BEE_BIN}' \
|
-o '${BEE_BIN}' \
|
||||||
./cmd/bee"
|
./cmd/bee"
|
||||||
echo "binary: $BEE_BIN"
|
echo "binary: $BEE_BIN"
|
||||||
@@ -1493,8 +1478,10 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cat > "${OVERLAY_STAGE_DIR}/etc/bee-release" <<EOF
|
cat > "${OVERLAY_STAGE_DIR}/etc/bee-release" <<EOF
|
||||||
BEE_ISO_VERSION=${ISO_VERSION_EFFECTIVE}
|
BEE_VERSION=${PROJECT_VERSION_EFFECTIVE}
|
||||||
BEE_AUDIT_VERSION=${AUDIT_VERSION_EFFECTIVE}
|
export BEE_VERSION
|
||||||
|
BEE_ISO_VERSION=${PROJECT_VERSION_EFFECTIVE}
|
||||||
|
BEE_AUDIT_VERSION=${PROJECT_VERSION_EFFECTIVE}
|
||||||
BEE_BUILD_VARIANT=${BUILD_VARIANT}
|
BEE_BUILD_VARIANT=${BUILD_VARIANT}
|
||||||
BEE_GPU_VENDOR=${BEE_GPU_VENDOR}
|
BEE_GPU_VENDOR=${BEE_GPU_VENDOR}
|
||||||
BUILD_DATE=${BUILD_DATE}
|
BUILD_DATE=${BUILD_DATE}
|
||||||
|
|||||||
Reference in New Issue
Block a user