-
Notifications
You must be signed in to change notification settings - Fork 277
/
Makefile
130 lines (114 loc) · 6.01 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
BUILD_ORG := talkincode
BUILD_VERSION := latest
BUILD_TIME := $(shell date "+%F %T")
BUILD_NAME := toughradius
RELEASE_VERSION := v8.0.7
SOURCE := main.go
RELEASE_DIR := ./release
COMMIT_SHA1 := $(shell git show -s --format=%H )
COMMIT_DATE := $(shell git show -s --format=%cD )
COMMIT_USER := $(shell git show -s --format=%ce )
COMMIT_SUBJECT := $(shell git show -s --format=%s )
buildpre:
echo "BuildVersion=${BUILD_VERSION} ${RELEASE_VERSION} ${BUILD_TIME}" > assets/buildinfo.txt
echo "ReleaseVersion=${RELEASE_VERSION}" >> assets/buildinfo.txt
echo "BuildTime=${BUILD_TIME}" >> assets/buildinfo.txt
echo "BuildName=${BUILD_NAME}" >> assets/buildinfo.txt
echo "CommitID=${COMMIT_SHA1}" >> assets/buildinfo.txt
echo "CommitDate=${COMMIT_DATE}" >> assets/buildinfo.txt
echo "CommitUser=${COMMIT_USER}" >> assets/buildinfo.txt
echo "CommitSubject=${COMMIT_SUBJECT}" >> assets/buildinfo.txt
fastpub:
docker buildx build --platform=linux/amd64 --build-arg BTIME="$(shell date "+%F %T")" -t toughradius .
docker tag toughradius ${BUILD_ORG}/toughradius:latest
docker push ${BUILD_ORG}/toughradius:latest
fastpubm1:
make build
docker buildx build --platform=linux/amd64 --build-arg BTIME="$(shell date "+%F %T")" -t toughradius . -f Dockerfile.local
docker tag toughradius ${BUILD_ORG}/toughradius:latest-amd64
docker push ${BUILD_ORG}/toughradius:latest-amd64
make buildarm64
docker buildx build --platform=linux/arm64 --build-arg BTIME="$(shell date "+%F %T")" -t toughradius . -f Dockerfile.local
docker tag toughradius ${BUILD_ORG}/toughradius:latest-arm64
docker push ${BUILD_ORG}/toughradius:latest-arm64
docker manifest create ${BUILD_ORG}/toughradius:latest ${BUILD_ORG}/toughradius:latest-arm64 ${BUILD_ORG}/toughradius:latest-amd64
# 标注不同架构镜像
docker manifest annotate ${BUILD_ORG}/toughradius:latest ${BUILD_ORG}/toughradius:latest-amd64 --os linux --arch amd64
docker manifest annotate ${BUILD_ORG}/toughradius:latest ${BUILD_ORG}/toughradius:latest-arm64 --os linux --arch arm64
# 推送镜像
docker manifest push ${BUILD_ORG}/toughradius:latest
build:
test -d ./release || mkdir -p ./release
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-s -w -extldflags "-static"' -o ./release/toughradius main.go
upx ./release/toughradius
buildarm64:
test -d ./release || mkdir -p ./release
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -ldflags '-s -w -extldflags "-static"' -o ./release/toughradius main.go
upx ./release/toughradius
build-tradtest:
CGO_ENABLED=0 go build -a -ldflags '-s -w -extldflags "-static"' -o release/bmtest commands/benchmark/bmtest.go
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-s -w -extldflags "-static"' -o release/lbmtest commands/benchmark/bmtest.go
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-s -w -extldflags "-static"' -o release/bmtest.exe commands/benchmark/bmtest.go
syncdev:
make buildpre
@read -p "提示:同步操作尽量在完成一个完整功能特性后进行,请输入提交描述 (develop): " cimsg; \
git commit -am "$(shell date "+%F %T") : $${cimsg}"
# 切换主分支并更新
git checkout main
git pull origin main
# 切换开发分支变基合并提交
git checkout develop
git rebase -i main
# 切换回主分支并合并开发者分支,推送主分支到远程,方便其他开发者合并
git checkout main
git merge --no-ff develop
git push origin main
# 切换回自己的开发分支继续工作
git checkout develop
tr069crt:
# 1 Generate CA private key
test -f assets/ca.key || openssl genrsa -out assets/ca.key 4096
# 2 Generate CA certificate
test -f assets/ca.crt || openssl req -x509 -new -nodes -key assets/ca.key -days 3650 -out assets/ca.crt -subj \
"/C=CN/ST=Shanghai/O=toughradius/CN=ToughradiusCA/[email protected]"
# 3 Generate server private key
openssl genrsa -out assets/server.key 2048
# 4 Generate a certificate request file
openssl req -new -key assets/server.key -out assets/server.csr -subj \
"/C=CN/ST=Shanghai/O=toughradius/CN=*.toughstruct.net/[email protected]"
# 5 Generate a server certificate based on the CA's private key and the above certificate request file
openssl x509 -req -in assets/server.csr -CA assets/ca.crt -CAkey assets/ca.key -CAcreateserial -out assets/server.crt -days 7300
mv assets/server.key assets/cwmp.tls.key
mv assets/server.crt assets/cwmp.tls.crt
radseccrt:
# 1 Generate CA private key
test -f assets/ca.key || openssl genrsa -out assets/ca.key 4096
# 2 Generate CA certificate
test -f assets/ca.crt || openssl req -x509 -new -nodes -key assets/ca.key -days 3650 -out assets/ca.crt -subj \
"/C=CN/ST=Shanghai/O=toughradius/CN=ToughradiusCA/[email protected]"
# 3 Generate server private key
openssl genrsa -out assets/server.key 2048
# 4 Generate a certificate request file
openssl req -new -key assets/server.key -out assets/server.csr -subj \
"/C=CN/ST=Shanghai/O=toughradius/CN=*.toughstruct.net/[email protected]"
# 5 Generate a server certificate based on the CA's private key and the above certificate request file
openssl x509 -req -in assets/server.csr -CA assets/ca.crt -CAkey assets/ca.key -CAcreateserial -out assets/server.crt -days 7300
mv assets/server.key assets/radsec.tls.key
mv assets/server.crt assets/radsec.tls.crt
clicrt:
# 1 生成client私钥
openssl genrsa -out assets/client.key 2048
# 2 生成client请求文件
openssl req -new -key assets/client.key -subj "/CN=*.toughstruct.net" -out assets/client.csr
# 3 生成client证书
openssl x509 -req -in assets/client.csr -CA assets/ca.crt -CAkey assets/ca.key -CAcreateserial -out assets/client.crt -days 7300
mv assets/client.key assets/client.tls.key
mv assets/client.crt assets/client.tls.crt
updev:
make buildpre
make build
scp ${RELEASE_DIR}/${BUILD_NAME} trdev-server:/tmp/toughradius
ssh trdev-server "systemctl stop toughradius && /tmp/toughradius -install && systemctl start toughradius"
swag:
swag fmt && swag init
.PHONY: clean build tr069crt radseccrt