@@ -18,7 +18,6 @@ BUILD_DATE_VAR := $(REPO_PATH)/pkg/version.BuildDate
18
18
BUILD_DATE := $$(date +%Y-%m-%d-%H:%M )
19
19
GIT_VAR := $(REPO_PATH ) /pkg/version.GitCommit
20
20
GIT_HASH := $$(git rev-parse --short HEAD )
21
- LDFLAGS ?= "-X $(BUILD_DATE_VAR ) =$(BUILD_DATE ) -X $(BUILD_VERSION_VAR ) =$(IMAGE_VERSION ) -X $(GIT_VAR ) =$(GIT_HASH ) "
22
21
23
22
GO_FILES =$(shell go list ./... | grep -v /test/e2e)
24
23
TOOLS_MOD_DIR := ./tools
@@ -31,11 +30,9 @@ export DOCKER_BUILDKIT
31
30
# Testing var
32
31
KIND_VERSION ?= 0.11.0
33
32
KUBERNETES_VERSION ?= v1.21.1
34
- BATS_VERSION ?= 1.4 .1
33
+ BATS_VERSION ?= 1.2 .1
35
34
36
- # # --------------------------------------
37
- # # Linting
38
- # # --------------------------------------
35
+ GO_BUILD_OPTIONS := --tags "netgo osusergo" -ldflags "-s -X $(BUILD_VERSION_VAR ) =$(IMAGE_VERSION ) -X $(GIT_VAR ) =$(GIT_HASH ) -X $(BUILD_DATE_VAR ) =$(BUILD_DATE ) -extldflags '-static'"
39
36
40
37
$(TOOLS_DIR ) /golangci-lint : $(TOOLS_MOD_DIR ) /go.mod $(TOOLS_MOD_DIR ) /go.sum $(TOOLS_MOD_DIR ) /tools.go
41
38
cd $(TOOLS_MOD_DIR ) && \
@@ -45,71 +42,41 @@ $(TOOLS_DIR)/golangci-lint: $(TOOLS_MOD_DIR)/go.mod $(TOOLS_MOD_DIR)/go.sum $(TO
45
42
lint : $(TOOLS_DIR ) /golangci-lint
46
43
$(TOOLS_DIR ) /golangci-lint run --timeout=5m -v
47
44
48
- # # --------------------------------------
49
- # # Images
50
- # # --------------------------------------
45
+ .PHONY : build
46
+ build :
47
+ $Q GOOS=linux CGO_ENABLED=0 go build $( GO_BUILD_OPTIONS ) -o _output/kubernetes-kms ./cmd/server/
51
48
52
- ALL_LINUX_ARCH ?= amd64 arm64
53
- # Output type of docker buildx build
54
- OUTPUT_TYPE ?= type=registry
49
+ .PHONY : build-darwin
50
+ build-darwin :
51
+ $Q GOOS=darwin CGO_ENABLED=0 go build $( GO_BUILD_OPTIONS ) -o _output/kubernetes-kms ./cmd/server/
55
52
56
- BUILDX_BUILDER_NAME ?= img-builder
57
- QEMU_VERSION ?= 5.2.0-2
58
- # The architecture of the image
59
- ARCH ?= amd64
53
+ build-image : clean build
54
+ $Q docker build -t $(IMAGE_TAG ) .
60
55
61
- .PHONY : build
62
- build :
63
- go build -a -ldflags $(LDFLAGS ) -o _output/kubernetes-kms ./cmd/server/
64
-
65
- .PHONY : docker-init-buildx
66
- docker-init-buildx :
67
- @if ! docker buildx ls | grep $(BUILDX_BUILDER_NAME ) ; then \
68
- docker run --rm --privileged multiarch/qemu-user-static:$(QEMU_VERSION ) --reset -p yes; \
69
- docker buildx create --name $(BUILDX_BUILDER_NAME ) --use; \
70
- docker buildx inspect $(BUILDX_BUILDER_NAME ) --bootstrap; \
71
- fi
72
-
73
- .PHONY : docker-build
74
- docker-build :
75
- docker buildx build \
76
- --build-arg LDFLAGS=$(LDFLAGS ) \
77
- --no-cache \
78
- --platform=" linux/$( ARCH) " \
79
- --output=$(OUTPUT_TYPE ) \
80
- -t $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) -linux-$(ARCH ) . \
81
- --progress=plain; \
82
-
83
- @if [ " $( ARCH) " = " amd64" ] && [ " $( OUTPUT_TYPE) " = " type=docker" ]; then \
84
- docker tag $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) -linux-$(ARCH ) $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) ; \
85
- fi
86
-
87
- .PHONY : docker-build-all
88
- docker-build-all :
89
- @for arch in $(ALL_LINUX_ARCH ) ; do \
90
- $(MAKE ) ARCH=$$ {arch} docker-build; \
91
- done
92
-
93
- .PHONY : docker-push-manifest
94
- docker-push-manifest :
95
- docker manifest create --amend $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) $(foreach arch,$(ALL_LINUX_ARCH ) ,$(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) -linux-$(arch ) ) ; \
96
- for arch in $( ALL_LINUX_ARCH) ; do \
97
- docker manifest annotate --os linux --arch $$ {arch} $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) -linux-$$ {arch}; \
98
- done ; \
99
- docker manifest push --purge $(REGISTRY ) /$(IMAGE_NAME ) :$(IMAGE_VERSION ) ; \
56
+ push-image : build-image
57
+ $Q docker push $(IMAGE_TAG )
100
58
101
- # # --------------------------------------
102
- # # Testing
103
- # # --------------------------------------
59
+ .PHONY : clean unit-test integration-test
60
+
61
+ clean :
62
+ $Q rm -rf _output/
63
+
64
+ authors :
65
+ $Q git log --all --format=' %aN <%cE>' | sort -u | sed -n ' /github/!p' > GITAUTHORS
66
+ $Q cat AUTHORS GITAUTHORS | sort -u > NEWAUTHORS
67
+ $Q mv NEWAUTHORS AUTHORS
68
+ $Q rm -f NEWAUTHORS
69
+ $Q rm -f GITAUTHORS
104
70
105
- .PHONY : integration-test
106
71
integration-test :
107
- go test -v -count=1 -failfast github.com/Azure/kubernetes-kms/tests/client
72
+ $Q sudo GOPATH= $( GOPATH ) go test -v -count=1 -failfast github.com/Azure/kubernetes-kms/tests/client
108
73
109
- .PHONY : unit-test
110
74
unit-test :
111
75
go test -race -v -count=1 -failfast ` go list ./... | grep -v client`
112
76
77
+ .PHONY : mod
78
+ mod :
79
+ @go mod tidy
113
80
114
81
# # --------------------------------------
115
82
# # E2E Testing
0 commit comments