PREFIX ?= registry.cn-hangzhou.aliyuncs.com/rdc-incubator TAG ?= $(shell date +%s) SHADOW_IMAGE = kt-connect-shadow SHADOW_BASE_IMAGE = shadow-base BUILDER_IMAGE = builder DASHBOARD_IMAGE = kt-connect-dashboard SERVER_IMAGE = kt-connect-server # generate mock generate-mock: mkdir -p fake/kt/action mockgen -source=pkg/kt/command/types.go -destination=fake/kt/action/action_mock.go -package=action mkdir -p fake/kt/cluster mockgen -source=pkg/kt/cluster/types.go -destination=fake/kt/cluster/kubernetes_mock.go -package=cluster mkdir -p fake/kt/connect mockgen -source=pkg/kt/connect/types.go -destination=fake/kt/connect/connect_mock.go -package=connect mkdir -p fake/kt/exec mockgen -source=pkg/kt/exec/kubectl/types.go -destination=fake/kt/exec/kubectl/kubectl_mock.go -package=kubectl mockgen -source=pkg/kt/exec/ssh/types.go -destination=fake/kt/exec/ssh/ssh_mock.go -package=ssh mockgen -source=pkg/kt/exec/sshuttle/types.go -destination=fake/kt/exec/sshuttle/sshuttle_mock.go -package=sshuttle mockgen -source=pkg/kt/exec/types.go -destination=fake/kt/exec/exec_mock.go -package=exec mockgen -source=pkg/kt/types.go -destination=fake/kt/kt_mock.go -package=kt # run unit test test: mkdir -p artifacts/report/coverage go test -v -cover -coverprofile c.out.tmp ./... cat c.out.tmp | grep -v "_mock.go" > c.out go tool cover -html=c.out -o artifacts/report/coverage/index.html # build kt project build: build-connect build-shadow build-server build-dashboard # build ktctl build-connect: bin/build-ktctl bin/archive # build this image before shadow build-shadow-base: docker build -t $(PREFIX)/$(SHADOW_BASE_IMAGE):$(TAG) -f docker/shadow/Dockerfile_base . # build shadow build-shadow: GOARCH=amd64 GOOS=linux go build -gcflags "all=-N -l" -o artifacts/shadow/shadow-linux-amd64 cmd/shadow/main.go docker build -t $(PREFIX)/$(SHADOW_IMAGE):$(TAG) -f docker/shadow/Dockerfile . # release shadow release-shadow: docker push $(PREFIX)/$(SHADOW_IMAGE):$(TAG) # dlv for debug build-shadow-dlv: bin/build-shadow-dlv build-dashboard: build-frontend build-server build-frontend: docker build -t $(PREFIX)/$(DASHBOARD_IMAGE):$(TAG) -f docker/dashboard/Dockerfile . build-server: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o artifacts/apiserver/apiserver-linux-amd64 cmd/server/main.go docker build -t $(PREFIX)/$(SERVER_IMAGE):$(TAG) -f docker/apiserver/Dockerfile . release-dashboard: docker push $(PREFIX)/$(DASHBOARD_IMAGE):$(TAG) docker push $(PREFIX)/$(SERVER_IMAGE):$(TAG) git-release: bin/release