-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (54 loc) · 2.34 KB
/
Copy pathMakefile
File metadata and controls
59 lines (54 loc) · 2.34 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
.PHONY: build
app = github.com/jin06/binlogo/v2
version = $version
compileTime = $(shell date)
goVersion = $(shell go version)
output ?= bin
darwinName = binlogo-v$(version)-darwin-amd64
darwinDir = $(output)/$(darwinName)
darwinArmName = binlogo-v$(version)-darwin-arm64
darwinArmDir = $(output)/$(darwinArmName)
windowsName = binlogo-v$(version)-windows-amd64
windowsDir = $(output)/$(windowsName)
linuxName = binlogo-v$(version)-linux-amd64
linuxDir = $(output)/$(linuxName)
armName = binlogo-v$(version)-linux-arm64
armDir = $(output)/$(armName)
buildArgs = -ldflags="-X '$(app)/configs.Version=$(version)' -X '$(app)/configs.BuildTime=$(compileTime)' -X '$(app)/configs.GoVersion=$(goVersion)'" cmd/server/binlogo.go
build:
mkdir -p $(darwinDir)/etc
mkdir -p $(darwinArmDir)/etc
mkdir -p $(windowsDir)/etc
mkdir -p $(linuxDir)/etc
mkdir -p $(armDir)/etc
cp -rf assets $(darwinDir)
cp -rf assets $(darwinArmDir)
cp -rf assets $(windowsDir)
cp -rf assets $(linuxDir)
cp -rf assets $(armDir)
cp etc/binlogo.yaml $(darwinDir)/etc/binlogo.yaml
cp etc/binlogo.yaml $(darwinArmDir)/etc/binlogo.yaml
cp etc/binlogo.yaml $(windowsDir)/etc/binlogo.yaml
cp etc/binlogo.yaml $(linuxDir)/etc/binlogo.yaml
cp etc/binlogo.yaml $(armDir)/etc/binlogo.yaml
CGO_ENABLE=0 GOOS=darwin GOARCH=amd64 go build -o $(darwinDir)/binlogo $(buildArgs)
CGO_ENABLE=0 GOOS=darwin GOARCH=arm64 go build -o $(darwinArmDir)/binlogo $(buildArgs)
CGO_ENABLE=0 GOOS=windows GOARCH=amd64 go build -o $(windowsDir)/binlogo $(buildArgs)
CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build -o $(linuxDir)/binlogo $(buildArgs)
CGO_ENABLE=0 GOOS=linux GOARCH=arm64 go build -o $(armDir)/binlogo $(buildArgs)
zip -q -r -o $(output)/$(darwinName).zip $(output)/$(darwinName)/
zip -q -r -o $(output)/$(darwinArmName).zip $(output)/$(darwinArmName)/
zip -q -r -o $(output)/$(windowsName).zip $(output)/$(windowsName)/
tar -zcvf $(output/)$(linuxName).tar.gz $(output)/$(linuxName)/
tar -zcvf $(output/)$(armName).tar.gz $(output)/$(armName)/
.PHONY: docker
version = $version
docker:
docker build -t jin06/binlogo . --build-arg version=$(version)
docker push jin06/binlogo
docker tag jin06/binlogo jin06/binlogo:$(version)
docker push jin06/binlogo:$(version)
.ONESHELL:
dash:
sh -c "cd dashboard;NODE_OPTIONS="--openssl-legacy-provider" npm run build:prod"
sh -c "cp static/assets.go.tpl static/dist/assets.go"