From 26782dcba529cd22eb259287ab55b536b1a64756 Mon Sep 17 00:00:00 2001 From: vmarcella Date: Mon, 4 Nov 2024 10:08:28 -0800 Subject: [PATCH 1/2] [add] ie version to get build information for IE. --- .../workflows/build-test-release-tagged.yaml | 2 +- .github/workflows/build-test-release.yaml | 2 +- Makefile | 13 ++++++++-- cmd/ie/commands/version.go | 25 +++++++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 cmd/ie/commands/version.go diff --git a/.github/workflows/build-test-release-tagged.yaml b/.github/workflows/build-test-release-tagged.yaml index 3762dff..5eecf9d 100644 --- a/.github/workflows/build-test-release-tagged.yaml +++ b/.github/workflows/build-test-release-tagged.yaml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - name: Build all targets. run: | - make build-all + make build-all RELEASE_BUILD=true - name: Run unit tests across all targets. run: | make test-all diff --git a/.github/workflows/build-test-release.yaml b/.github/workflows/build-test-release.yaml index 52c9031..e0a0148 100644 --- a/.github/workflows/build-test-release.yaml +++ b/.github/workflows/build-test-release.yaml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - name: Build all targets. run: | - make build-all + make build-all RELEASE_BUILD=true - name: Run unit tests across all targets. run: | make test-all diff --git a/Makefile b/Makefile index b12f40e..92410a2 100644 --- a/Makefile +++ b/Makefile @@ -6,9 +6,18 @@ API_BINARY := $(BINARY_DIR)/api # -------------------------- Native build targets ------------------------------ +RELEASE_BUILD := false +LATEST_TAG := $(shell git describe --tags --abbrev=0) +LATEST_COMMIT := $(shell git rev-parse --short HEAD) +BUILD_DATE := $(shell date -u '+%Y-%m-%dT%H:%M:%SZ') +MODULE_ROOT := $(shell go list -m) build-ie: @echo "Building the Innovation Engine CLI..." - @CGO_ENABLED=0 go build -o "$(IE_BINARY)" cmd/ie/ie.go +ifeq ($(RELEASE_BUILD), true) + @CGO_ENABLED=0 go build -ldflags "-X $(MODULE_ROOT)/cmd/ie/commands.VERSION=$(LATEST_TAG) -X $(MODULE_ROOT)/cmd/commands.COMMIT=$(LATEST_COMMIT) -X $(MODULE_ROOT)/cmd/ie/commands.DATE=$(BUILD_DATE)" -o "$(IE_BINARY)" cmd/ie/ie.go +else + @CGO_ENABLED=0 go build -ldflags "-X $(MODULE_ROOT)/cmd/ie/commands.VERSION=dev -X $(MODULE_ROOT)/cmd/ie/commands.COMMIT=$(LATEST_COMMIT) -X $(MODULE_ROOT)/cmd/ie/commands.DATE=$(BUILD_DATE)" -o "$(IE_BINARY)" cmd/ie/ie.go +endif build-all: build-ie @@ -17,7 +26,7 @@ build-all: build-ie install-ie: @echo "Installing the Innovation Engine CLI..." - @CGO_ENABLED=0 go install cmd/ie/ie.go + @CGO_ENABLED=0 go install -ldflags "-X $(MODULE_ROOT)/cmd/ie/commands.VERSION=dev -X $(MODULE_ROOT)/cmd/ie/commands.COMMIT=$(LATEST_COMMIT) -X $(MODULE_ROOT)/cmd/ie/commands.DATE=$(BUILD_DATE)" cmd/ie/ie.go # ------------------------------ Test targets ---------------------------------- diff --git a/cmd/ie/commands/version.go b/cmd/ie/commands/version.go new file mode 100644 index 0000000..ecf233c --- /dev/null +++ b/cmd/ie/commands/version.go @@ -0,0 +1,25 @@ +package commands + +import "github.com/spf13/cobra" + +var ( + VERSION = "Development" + COMMIT = "N/A" + DATE = "N/A" +) + +var versionCommand = &cobra.Command{ + Use: "version", + Short: "Print the version of the Innovation Engine", + RunE: func(cmd *cobra.Command, args []string) error { + cmd.Printf("Version: %s\n", VERSION) + cmd.Printf("Commit: %s\n", COMMIT) + cmd.Printf("Date: %s\n", DATE) + + return nil + }, +} + +func init() { + rootCommand.AddCommand(versionCommand) +} From 75eddf2c49b659d0215078c4c2b9bed000517e3d Mon Sep 17 00:00:00 2001 From: vmarcella Date: Mon, 4 Nov 2024 10:13:39 -0800 Subject: [PATCH 2/2] [fix] invalid variable target in makefile and update default version to be dev. --- Makefile | 2 +- cmd/ie/commands/version.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 92410a2..93b54fe 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ MODULE_ROOT := $(shell go list -m) build-ie: @echo "Building the Innovation Engine CLI..." ifeq ($(RELEASE_BUILD), true) - @CGO_ENABLED=0 go build -ldflags "-X $(MODULE_ROOT)/cmd/ie/commands.VERSION=$(LATEST_TAG) -X $(MODULE_ROOT)/cmd/commands.COMMIT=$(LATEST_COMMIT) -X $(MODULE_ROOT)/cmd/ie/commands.DATE=$(BUILD_DATE)" -o "$(IE_BINARY)" cmd/ie/ie.go + @CGO_ENABLED=0 go build -ldflags "-X $(MODULE_ROOT)/cmd/ie/commands.VERSION=$(LATEST_TAG) -X $(MODULE_ROOT)/cmd/ie/commands.COMMIT=$(LATEST_COMMIT) -X $(MODULE_ROOT)/cmd/ie/commands.DATE=$(BUILD_DATE)" -o "$(IE_BINARY)" cmd/ie/ie.go else @CGO_ENABLED=0 go build -ldflags "-X $(MODULE_ROOT)/cmd/ie/commands.VERSION=dev -X $(MODULE_ROOT)/cmd/ie/commands.COMMIT=$(LATEST_COMMIT) -X $(MODULE_ROOT)/cmd/ie/commands.DATE=$(BUILD_DATE)" -o "$(IE_BINARY)" cmd/ie/ie.go endif diff --git a/cmd/ie/commands/version.go b/cmd/ie/commands/version.go index ecf233c..ddf44ea 100644 --- a/cmd/ie/commands/version.go +++ b/cmd/ie/commands/version.go @@ -3,7 +3,7 @@ package commands import "github.com/spf13/cobra" var ( - VERSION = "Development" + VERSION = "dev" COMMIT = "N/A" DATE = "N/A" )