Skip to content

Commit ac65e32

Browse files
authored
Add ie version command (#238)
This PR adds `ie version` to obtain information about which build of IE you're using.
1 parent c5ab77d commit ac65e32

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

.github/workflows/build-test-release-tagged.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- uses: actions/checkout@v4
1313
- name: Build all targets.
1414
run: |
15-
make build-all
15+
make build-all RELEASE_BUILD=true
1616
- name: Run unit tests across all targets.
1717
run: |
1818
make test-all

.github/workflows/build-test-release.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- uses: actions/checkout@v4
1313
- name: Build all targets.
1414
run: |
15-
make build-all
15+
make build-all RELEASE_BUILD=true
1616
- name: Run unit tests across all targets.
1717
run: |
1818
make test-all

Makefile

+11-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,18 @@ API_BINARY := $(BINARY_DIR)/api
66

77
# -------------------------- Native build targets ------------------------------
88

9+
RELEASE_BUILD := false
10+
LATEST_TAG := $(shell git describe --tags --abbrev=0)
11+
LATEST_COMMIT := $(shell git rev-parse --short HEAD)
12+
BUILD_DATE := $(shell date -u '+%Y-%m-%dT%H:%M:%SZ')
13+
MODULE_ROOT := $(shell go list -m)
914
build-ie:
1015
@echo "Building the Innovation Engine CLI..."
11-
@CGO_ENABLED=0 go build -o "$(IE_BINARY)" cmd/ie/ie.go
16+
ifeq ($(RELEASE_BUILD), true)
17+
@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
18+
else
19+
@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
20+
endif
1221

1322

1423
build-all: build-ie
@@ -17,7 +26,7 @@ build-all: build-ie
1726

1827
install-ie:
1928
@echo "Installing the Innovation Engine CLI..."
20-
@CGO_ENABLED=0 go install cmd/ie/ie.go
29+
@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
2130

2231
# ------------------------------ Test targets ----------------------------------
2332

cmd/ie/commands/version.go

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package commands
2+
3+
import "github.com/spf13/cobra"
4+
5+
var (
6+
VERSION = "dev"
7+
COMMIT = "N/A"
8+
DATE = "N/A"
9+
)
10+
11+
var versionCommand = &cobra.Command{
12+
Use: "version",
13+
Short: "Print the version of the Innovation Engine",
14+
RunE: func(cmd *cobra.Command, args []string) error {
15+
cmd.Printf("Version: %s\n", VERSION)
16+
cmd.Printf("Commit: %s\n", COMMIT)
17+
cmd.Printf("Date: %s\n", DATE)
18+
19+
return nil
20+
},
21+
}
22+
23+
func init() {
24+
rootCommand.AddCommand(versionCommand)
25+
}

0 commit comments

Comments
 (0)