1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- ROOT_DIR = $(shell pwd)
- NAMESPACE = "default"
- DEPLOY_NAME = "template-single"
- DOCKER_NAME = "template-single"
- # Install/Update to the latest CLI tool.
- .PHONY: cli
- cli:
- @set -e; \
- wget -O gf https://github.com/gogf/gf/releases/latest/download/gf_$(shell go env GOOS)_$(shell go env GOARCH) && \
- chmod +x gf && \
- ./gf install -y && \
- rm ./gf
- # Check and install CLI tool.
- .PHONY: cli.install
- cli.install:
- @set -e; \
- gf -v > /dev/null 2>&1 || if [[ "$?" -ne "0" ]]; then \
- echo "GoFame CLI is not installed, start proceeding auto installation..."; \
- make cli; \
- fi;
- # Generate Go files for DAO/DO/Entity.
- .PHONY: dao
- dao: cli.install
- @gf gen dao
- # Generate Go files for Service.
- .PHONY: service
- service: cli.install
- @gf gen service
- # Build image, deploy image and yaml to current kubectl environment and make port forward to local machine.
- .PHONY: start
- start:
- @set -e; \
- make image; \
- make deploy; \
- make port;
- # Build docker image.
- .PHONY: image
- image: cli.install
- $(eval _TAG = $(shell git log -1 --format="%cd.%h" --date=format:"%Y%m%d%H%M%S"))
- ifneq (, $(shell git status --porcelain 2>/dev/null))
- $(eval _TAG = $(_TAG).dirty)
- endif
- $(eval _TAG = $(if ${TAG}, ${TAG}, $(_TAG)))
- $(eval _PUSH = $(if ${PUSH}, ${PUSH}, ))
- @gf docker -p -b "-a amd64 -s linux -p temp" -t $(DOCKER_NAME):${_TAG};
- # Build docker image and automatically push to docker repo.
- .PHONY: image.push
- image.push:
- @make image PUSH=-p;
- # Deploy image and yaml to current kubectl environment.
- .PHONY: deploy
- deploy:
- $(eval _TAG = $(if ${TAG}, ${TAG}, develop))
- @set -e; \
- mkdir -p $(ROOT_DIR)/temp/kustomize;\
- cd $(ROOT_DIR)/manifest/deploy/kustomize/overlays/${_TAG};\
- kustomize build > $(ROOT_DIR)/temp/kustomize.yaml;\
- kubectl apply -f $(ROOT_DIR)/temp/kustomize.yaml; \
- kubectl patch -n $(NAMESPACE) deployment/$(DEPLOY_NAME) -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(shell date +%s)\"}}}}}";
|