forked from kingwrcy/moments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
33 lines (26 loc) · 1.43 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CURRENT_DIR := $(shell pwd)
WORK_DIR_BACKEND := $(CURRENT_DIR)/backend
WORK_DIR_FRONTEND := $(CURRENT_DIR)/front
BINARY_NAME := moments
COMMIT = $(shell git rev-parse --short HEAD)
LINUX_BINARY_NAME = $(BINARY_NAME)-linux-amd64
MACOS_BINARY_NAME = $(BINARY_NAME)-macos-amd64
WINDOWS_BINARY_NAME = $(BINARY_NAME)-windows-amd64.exe
export GO := go
.PHONY: clean build backend frontend
build: clean frontend backend
clean:
$(GO) clean
rm -rf $(WORK_DIR_BACKEND)/dist
rm -rf $(WORK_DIR_BACKEND)/public
rm -rf $(WORK_DIR_FRONTEND)/.output
rm -rf $(WORK_DIR_FRONTEND)/dist
frontend:
cd $(WORK_DIR_FRONTEND) && pnpm i && pnpm generate
cp -r $(WORK_DIR_FRONTEND)/.output/public $(WORK_DIR_BACKEND)/
backend:
cd $(WORK_DIR_BACKEND) && CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 $(GO) build -tags prod -ldflags="-s -w -X 'main.gitCommitID=$(COMMIT)'" -o $(WORK_DIR_BACKEND)/dist/$(MACOS_BINARY_NAME)
cd $(WORK_DIR_BACKEND) && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GO) build -tags prod -ldflags="-s -w -X 'main.gitCommitID=$(COMMIT)'" -o $(WORK_DIR_BACKEND)/dist/$(LINUX_BINARY_NAME)
cd $(WORK_DIR_BACKEND) && CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GO) build -tags prod -ldflags="-s -w -X 'main.gitCommitID=$(COMMIT)'" -o $(WORK_DIR_BACKEND)/dist/$(WINDOWS_BINARY_NAME)
cd $(WORK_DIR_BACKEND) && upx --best --lzma $(WORK_DIR_BACKEND)/dist/$(WINDOWS_BINARY_NAME)
cd $(WORK_DIR_BACKEND) && upx --best --lzma $(WORK_DIR_BACKEND)/dist/$(LINUX_BINARY_NAME)