12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
- include build/Makefile.core.mk
15
+ # include build/Makefile.core.mk
16
16
17
17
18
18
.PHONY : all
19
19
all : dep-check build
20
- # # Lint check
20
+ # # Lint check
21
21
golangci : error dep-check
22
22
golangci-lint run --exclude-use-default
23
23
@@ -29,11 +29,9 @@ error: dep-check
29
29
error-util :
30
30
go run github.com/layer5io/meshkit/cmd/errorutil -d . update -i ./build -o ./build
31
31
32
-
33
-
34
- # -----------------------------------------------------------------------------
35
- # Dependencies
36
- # -----------------------------------------------------------------------------
32
+ # #-----------------------------------------------------------------------------
33
+ # # Dependencies
34
+ # #-----------------------------------------------------------------------------
37
35
.PHONY : dep-check
38
36
# .SILENT: dep-check
39
37
@@ -48,47 +46,66 @@ ifeq (,$(findstring $(GOVERSION), $(INSTALLED_GO_VERSION)))
48
46
@echo "INSTALLED_GO_VERSION: " $(INSTALLED_GO_VERSION)
49
47
endif
50
48
49
+ GOFMT_FILES? =$(shell find . -type f -name '* .go' -not -path "./vendor/* ")
50
+ APP_NAME? =helm-kanvas-snapshot
51
+ APP_DIR? =$(shell git rev-parse --show-toplevel)
52
+ DEV? =${DEVBOX_TRUE}
53
+ SRC_PACKAGES =$(shell go list ./... | grep -v "mocks")
54
+ BUILD_ENVIRONMENT? =${ENVIRONMENT}
55
+ VERSION? =0.1.0
56
+ REVISION? =$(shell git rev-parse --verify HEAD)
57
+ DATE? =$(shell date)
58
+ PLATFORM? =$(shell go env GOOS)
59
+ ARCHITECTURE? =$(shell go env GOARCH)
60
+ GOVERSION? =$(shell go version | awk '{printf $$3}')
61
+ BUILD_WITH_FLAGS ="-s -w -X 'github.com/meshery/helm-kanvas-snapshot/version.Version=${VERSION}' -X 'github.com/meshery/helm-kanvas-snapshot/version.Env=${BUILD_ENVIRONMENT}' -X 'github.com/meshery/helm-kanvas-snapshot/version.BuildDate=${DATE}' -X 'github.com/meshery/helm-kanvas-snapshot/version.Revision=${REVISION}' -X 'github.com/meshery/helm-kanvas-snapshot/version.Platform=${PLATFORM}/${ARCHITECTURE}' -X 'github.com/meshery/helm-kanvas-snapshot/version.GoVersion=${GOVERSION}' -X 'main.providerToken=$(PROVIDER_TOKEN ) ' -X 'main.MesheryCloudApiBaseUrl=$(MESHERY_CLOUD_API_BASE_URL ) ' -X 'main.MesheryApiBaseUrl=$(MESHERY_API_BASE_URL ) '"
62
+
63
+ # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
64
+ ifeq (,$(shell go env GOBIN) )
65
+ GOBIN =$(shell go env GOPATH) /bin
66
+ else
67
+ GOBIN =$(shell go env GOBIN)
68
+ endif
69
+
70
+ .PHONY : help
71
+ help : # # Prints help (only for targets with comments)
72
+ @grep -E ' ^[a-zA-Z0-9._-]+:.*?## .*$$' $(MAKEFILE_LIST ) | sort | awk ' BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
73
+
74
+ local.fmt : # # Lints all the Go code in the application.
75
+ @gofmt -w $(GOFMT_FILES )
76
+ $(GOBIN ) /goimports -w $(GOFMT_FILES )
77
+ $(GOBIN ) /gofumpt -l -w $(GOFMT_FILES )
78
+ $(GOBIN ) /gci write $(GOFMT_FILES ) --skip-generated
79
+
80
+ local.check : local.fmt # # Loads all dependencies
81
+ @go mod tidy
82
+
83
+ local.build : local.check # # Generates the artifact with 'go build'
84
+ @go build -o $(APP_NAME ) -ldflags=" -s -w"
85
+
86
+ local.snapshot : local.check # # Generates the artifact with 'go build'
87
+ GOVERSION=${GOVERSION} BUILD_ENVIRONMENT=${BUILD_ENVIRONMENT} goreleaser build --snapshot --clean
88
+
89
+ local.push : local.build # # Pushes built artifact to specified location
90
+
91
+ local.run : local.build # # Builds the artifact and starts the service
92
+ ./${APP_NAME}
93
+
94
+ print_home :
95
+ @echo ${ENVIRONMENT}
96
+
97
+
98
+ local.deploy : local.build # # Deploys locally built Helm plugin
99
+ @rm -rf ${HOME}/Library/helm/plugins/helm-kanvas-snapshot/bin/helm-kanvas-snapshot
100
+ @cp helm-images ${HOME}/Library/helm/plugins/helm-kanvas-snapshot/bin/helm-kanvas-snapshot
101
+
102
+
103
+ publish : local.check # # Builds and publishes the app
104
+ GOVERSION=${GOVERSION} BUILD_ENVIRONMENT=${BUILD_ENVIRONMENT} PLUGIN_PATH=${APP_DIR} goreleaser release --snapshot --clean
105
+
106
+ mock.publish : local.check # # Builds and mocks app release
107
+ GOVERSION=${GOVERSION} BUILD_ENVIRONMENT=${BUILD_ENVIRONMENT} PLUGIN_PATH=${APP_DIR} goreleaser release --skip=publish --clean
108
+
51
109
52
- OUTDIR := ./cmd/kanvas-snapshot/bin
53
- ARCH := amd64
54
-
55
- BINNAME_DARWIN ?= kanvas-snapshot-darwin-$(ARCH )
56
- BINNAME_LINUX ?= kanvas-snapshot-linux-$(ARCH )
57
- BINNAME_WINDOWS ?= kanvas-snapshot-windows-$(ARCH ) .exe
58
-
59
-
60
- LDFLAGS := "\
61
- -X 'main.providerToken=$(PROVIDER_TOKEN ) ' \
62
- -X 'main.MesheryCloudApiBaseUrl=$(MESHERY_CLOUD_API_BASE_URL ) ' \
63
- -X 'main.MesheryApiBaseUrl=$(MESHERY_API_BASE_URL ) '"
64
-
65
- .PHONY : build
66
- build :
67
- @echo " Building for all platforms..."
68
- @$(MAKE ) $(BINNAME_DARWIN )
69
- @$(MAKE ) $(BINNAME_LINUX )
70
- @$(MAKE ) $(BINNAME_WINDOWS )
71
-
72
- # Build Helm plugin for Darwin (macOS)
73
- .PHONY : $(BINNAME_DARWIN )
74
- $(BINNAME_DARWIN ) :
75
- @echo " Building for Darwin..."
76
- CGO_ENABLED=0 GOARCH=$(ARCH ) GOOS=darwin go build -ldflags=$(LDFLAGS ) -o $(OUTDIR ) /$(BINNAME_DARWIN ) ./cmd/kanvas-snapshot/main.go
77
-
78
- # Build Helm plugin for Linux
79
- .PHONY : $(BINNAME_LINUX )
80
- $(BINNAME_LINUX ) :
81
- @echo " Building for Linux..."
82
- CGO_ENABLED=0 GOARCH=$(ARCH ) GOOS=linux go build -ldflags=$(LDFLAGS ) -o $(OUTDIR ) /$(BINNAME_LINUX ) ./cmd/kanvas-snapshot/main.go
83
-
84
- # Build Helm plugin for Windows
85
- .PHONY : $(BINNAME_WINDOWS )
86
- $(BINNAME_WINDOWS ) :
87
- @echo " Building for Windows..."
88
- CGO_ENABLED=0 GOARCH=$(ARCH ) GOOS=windows go build -ldflags=$(LDFLAGS ) -o $(OUTDIR ) /$(BINNAME_WINDOWS ) ./cmd/kanvas-snapshot/main.go
89
-
90
- # Clean up binaries
91
- .PHONY : clean
92
- clean :
93
- @echo " Cleaning up..."
94
- rm -rf $(OUTDIR )
110
+ install.hooks : # # Installs pre-push hooks for the repository
111
+ ${APP_DIR} /scripts/hook.sh ${APP_DIR}
0 commit comments