From 62fd84dfd874fb3b55506a92d8f01b67bc15e5e8 Mon Sep 17 00:00:00 2001 From: Manuel Huber Date: Tue, 11 Jun 2024 20:51:26 +0000 Subject: [PATCH] build: allow rootfs builds w/o git or VERSION file deps We set the VERSION variable consistently across Makefiles to 'unknown' if the file is empty or not present. We also use git commands consistently for calculating the COMMIT, COMMIT_NO variables, not erroring out when building outside of a git repository. In create_summary_file we also account for a missing/empty VERSION file. This makes e.g. the UVM build process in an environment where we build outside of git with a minimal/reduced set of files smoother. Signed-off-by: Manuel Huber --- src/agent/Makefile | 2 +- src/runtime-rs/Makefile | 2 +- src/tools/kata-ctl/Makefile | 2 +- src/tools/log-parser/Makefile | 7 ++++--- tools/osbuilder/Makefile | 6 +++--- tools/osbuilder/scripts/lib.sh | 3 ++- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/agent/Makefile b/src/agent/Makefile index 5b118beb9c..169c2ab421 100644 --- a/src/agent/Makefile +++ b/src/agent/Makefile @@ -15,7 +15,7 @@ PROJECT_COMPONENT = kata-agent TARGET = $(PROJECT_COMPONENT) VERSION_FILE := ./VERSION -VERSION := $(shell grep -v ^\# $(VERSION_FILE)) +VERSION := $(shell grep -v ^\# $(VERSION_FILE) 2>/dev/null || echo "unknown") COMMIT_NO := $(shell git rev-parse HEAD 2>/dev/null || true) COMMIT := $(if $(shell git status --porcelain --untracked-files=no 2>/dev/null || true),${COMMIT_NO}-dirty,${COMMIT_NO}) COMMIT_MSG = $(if $(COMMIT),$(COMMIT),unknown) diff --git a/src/runtime-rs/Makefile b/src/runtime-rs/Makefile index 66d32c1fc0..1a753c8805 100644 --- a/src/runtime-rs/Makefile +++ b/src/runtime-rs/Makefile @@ -358,7 +358,7 @@ SOURCES := \ Cargo.toml VERSION_FILE := ./VERSION -VERSION := $(shell grep -v ^\# $(VERSION_FILE)) +VERSION := $(shell grep -v ^\# $(VERSION_FILE) 2>/dev/null || echo "unknown") COMMIT_NO := $(shell git rev-parse HEAD 2>/dev/null || true) COMMIT := $(if $(shell git status --porcelain --untracked-files=no 2>/dev/null || true),${COMMIT_NO}-dirty,${COMMIT_NO}) COMMIT_MSG = $(if $(COMMIT),$(COMMIT),unknown) diff --git a/src/tools/kata-ctl/Makefile b/src/tools/kata-ctl/Makefile index 03276b1175..7595c0c235 100644 --- a/src/tools/kata-ctl/Makefile +++ b/src/tools/kata-ctl/Makefile @@ -13,7 +13,7 @@ TARGET = $(PROJECT_COMPONENT) INSTALL_PATH = $(HOME)/.cargo VERSION_FILE := ./VERSION -export VERSION := $(shell grep -v ^\# $(VERSION_FILE)) +export VERSION := $(shell grep -v ^\# $(VERSION_FILE) 2>/dev/null || echo "unknown") COMMIT_NO := $(shell git rev-parse HEAD 2>/dev/null || true) COMMIT_NO_SHORT := $(shell git rev-parse --short HEAD 2>/dev/null || true) export COMMIT := $(if $(shell git status --porcelain --untracked-files=no 2>/dev/null || true),${COMMIT_NO}-dirty,${COMMIT_NO}) diff --git a/src/tools/log-parser/Makefile b/src/tools/log-parser/Makefile index 0a680059b3..91b75652d0 100644 --- a/src/tools/log-parser/Makefile +++ b/src/tools/log-parser/Makefile @@ -7,9 +7,10 @@ TARGET = kata-log-parser SOURCES = $(shell find . 2>&1 | grep -E '.*\.go$$') -VERSION := ${shell cat ./VERSION} -COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true) -COMMIT := $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}") +VERSION_FILE := ./VERSION +VERSION := $(shell grep -v ^\# $(VERSION_FILE) 2>/dev/null || echo "unknown") +COMMIT_NO := $(shell git rev-parse HEAD 2>/dev/null || true) +COMMIT := $(if $(shell git status --porcelain --untracked-files=no 2>/dev/null || true),"${COMMIT_NO}-dirty","${COMMIT_NO}") BINDIR := $(GOPATH)/bin DESTTARGET := $(abspath $(BINDIR)/$(TARGET)) diff --git a/tools/osbuilder/Makefile b/tools/osbuilder/Makefile index 19dc3bd0e5..91979e99c5 100644 --- a/tools/osbuilder/Makefile +++ b/tools/osbuilder/Makefile @@ -23,9 +23,9 @@ TARGET_IMAGE := $(IMAGES_BUILD_DEST)/kata-containers.img TARGET_INITRD := $(IMAGES_BUILD_DEST)/kata-containers-initrd.img VERSION_FILE := ./VERSION -VERSION := $(shell grep -v ^\# $(VERSION_FILE)) -COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true) -COMMIT := $(if $(shell git status --porcelain --untracked-files=no),${COMMIT_NO}-dirty,${COMMIT_NO}) +VERSION := $(shell grep -v ^\# $(VERSION_FILE) 2>/dev/null || echo "unknown") +COMMIT_NO := $(shell git rev-parse HEAD 2>/dev/null || true) +COMMIT := $(if $(shell git status --porcelain --untracked-files=no 2>/dev/null || true),${COMMIT_NO}-dirty,${COMMIT_NO}) VERSION_COMMIT := $(if $(COMMIT),$(VERSION)-$(COMMIT),$(VERSION)) ifeq ($(filter $(BUILD_METHOD),$(BUILD_METHOD_LIST)),) diff --git a/tools/osbuilder/scripts/lib.sh b/tools/osbuilder/scripts/lib.sh index 615ff10a95..92925d7740 100644 --- a/tools/osbuilder/scripts/lib.sh +++ b/tools/osbuilder/scripts/lib.sh @@ -181,7 +181,8 @@ create_summary_file() [ "$AGENT_INIT" = yes ] && agent="${init}" local -r agentdir="${script_dir}/../../../" - local -r agent_version=$(cat ${agentdir}/VERSION) + local agent_version=$(cat ${agentdir}/VERSION 2> /dev/null) + [ -z "$agent_version" ] && agent_version="unknown" cat >"$file"<<-EOF ---