Skip to content

Commit e8afe39

Browse files
Merge branch 'master' into dev
2 parents 538fb8b + c4b989f commit e8afe39

File tree

3 files changed

+24
-169
lines changed

3 files changed

+24
-169
lines changed

Dockerfile.npc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
FROM golang:1.15 as builder
1+
FROM golang:1.20-buster as builder
22
ARG GOPROXY=direct
33
WORKDIR /go/src/ehang.io/nps
44
COPY . .
5-
RUN go get -d -v ./...
6-
RUN CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/npc/npc.go
5+
RUN set -ex \
6+
&& go mod tidy \
7+
&& CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/npc/npc.go
78

89
FROM scratch
910
COPY --from=builder /go/src/ehang.io/nps/npc /

Dockerfile.nps

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
FROM golang:1.15 as builder
1+
FROM golang:1.20-buster as builder
22
ARG GOPROXY=direct
33
WORKDIR /go/src/ehang.io/nps
44
COPY . .
5-
RUN go get -d -v ./...
6-
RUN CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/nps/nps.go
5+
RUN set -ex \
6+
&& go mod tidy \
7+
&& CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/nps/nps.go
78

89
FROM scratch
910
COPY --from=builder /go/src/ehang.io/nps/nps /

build.sh

Lines changed: 16 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,168 +1,21 @@
1-
#/bash/sh
1+
#!/bin/bash
22
export VERSION=0.26.10
3-
export GOPROXY=direct
3+
GOFlAGS="-s -w -extldflags -static"
44

5-
sudo apt-get update
6-
sudo apt-get install gcc-mingw-w64-i686 gcc-multilib
7-
env GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go build -ldflags "-s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.dll cmd/npc/sdk.go
8-
env GOOS=linux GOARCH=386 CGO_ENABLED=1 CC=gcc go build -ldflags "-s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.so cmd/npc/sdk.go
9-
tar -czvf npc_sdk.tar.gz npc_sdk.dll npc_sdk.so npc_sdk.h
5+
if [ ! -d "./build" ]; then
6+
mkdir -p ./build
7+
fi
108

11-
wget https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz
12-
tar -xvf upx-3.95-amd64_linux.tar.xz
13-
cp upx-3.95-amd64_linux/upx ./
9+
rm -rf ./build/*
1410

15-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
16-
tar -czvf linux_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
11+
for ARCH in amd64 arm64 loong64; do
12+
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags "${GOFlAGS}" ./cmd/npc/npc.go
13+
tar -czf ./build/linux_${ARCH}_client.tar.gz npc conf/npc.conf conf/multi_account.conf
14+
rm -f npc
15+
done
1716

18-
19-
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
20-
tar -czvf linux_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf
21-
22-
23-
CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
24-
tar -czvf freebsd_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf
25-
26-
27-
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
28-
tar -czvf freebsd_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
29-
30-
31-
CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
32-
tar -czvf freebsd_arm_client.tar.gz npc conf/npc.conf conf/multi_account.conf
33-
34-
35-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
36-
tar -czvf linux_arm_v7_client.tar.gz npc conf/npc.conf conf/multi_account.conf
37-
38-
39-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
40-
tar -czvf linux_arm_v6_client.tar.gz npc conf/npc.conf conf/multi_account.conf
41-
42-
43-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
44-
tar -czvf linux_arm_v5_client.tar.gz npc conf/npc.conf conf/multi_account.conf
45-
46-
47-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
48-
tar -czvf linux_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
49-
50-
51-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
52-
tar -czvf linux_mips64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
53-
54-
55-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
56-
tar -czvf linux_mips64le_client.tar.gz npc conf/npc.conf conf/multi_account.conf
57-
58-
59-
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
60-
tar -czvf linux_mipsle_client.tar.gz npc conf/npc.conf conf/multi_account.conf
61-
62-
63-
CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
64-
tar -czvf linux_mips_client.tar.gz npc conf/npc.conf conf/multi_account.conf
65-
66-
67-
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
68-
tar -czvf windows_386_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf
69-
70-
71-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
72-
tar -czvf windows_amd64_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf
73-
74-
75-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
76-
tar -czvf darwin_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
77-
78-
79-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
80-
tar -czvf darwin_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
81-
82-
83-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
84-
tar -czvf linux_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
85-
86-
87-
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
88-
tar -czvf linux_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
89-
90-
91-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
92-
tar -czvf linux_arm_v5_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
93-
94-
95-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
96-
tar -czvf linux_arm_v6_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
97-
98-
99-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
100-
tar -czvf linux_arm_v7_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
101-
102-
103-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
104-
tar -czvf linux_arm64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
105-
106-
107-
CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
108-
tar -czvf freebsd_arm_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
109-
110-
111-
CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
112-
tar -czvf freebsd_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
113-
114-
115-
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
116-
tar -czvf freebsd_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
117-
118-
119-
CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
120-
tar -czvf linux_mips_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
121-
122-
123-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
124-
tar -czvf linux_mips64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
125-
126-
127-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
128-
tar -czvf linux_mips64le_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
129-
130-
131-
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
132-
tar -czvf linux_mipsle_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
133-
134-
135-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
136-
tar -czvf darwin_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
137-
138-
139-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
140-
tar -czvf darwin_arm64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
141-
142-
143-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
144-
tar -czvf windows_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps.exe
145-
146-
147-
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
148-
tar -czvf windows_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps.exe
149-
150-
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
151-
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
152-
sudo apt-get update
153-
sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
154-
docker --version
155-
docker run --rm -i -w /app -v $(pwd):/app -e ANDROID_HOME=/usr/local/android_sdk -e GOPROXY=direct lucor/fyne-cross:android-latest /app/build.android.sh
156-
git clone https://github.com/cnlh/spksrc.git ~/spksrc
157-
mkdir ~/spksrc/nps && cp -rf ./* ~/spksrc/nps/
158-
docker run -itd --name spksrc --env VERSION=$VERSION -e GOPROXY=direct -v ~/spksrc:/spksrc synocommunity/spksrc /bin/bash
159-
docker exec -it spksrc /bin/bash -c 'cd /spksrc && make setup && cd /spksrc/spk/npc && make arch-x64-7.0'
160-
cp ~/spksrc/packages/npc_x64-7.0_$VERSION-1.spk ./npc_syno.spk
161-
162-
163-
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
164-
export DOCKER_CLI_EXPERIMENTAL=enabled
165-
docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
166-
docker buildx create --use --name mybuilder
167-
docker buildx build --tag ffdfgdfg/nps:$VERSION --tag ffdfgdfg/nps:latest --output type=image,push=true --file Dockerfile.nps --platform=linux/amd64,linux/arm64,linux/386,linux/arm .
168-
docker buildx build --tag ffdfgdfg/npc:$VERSION --tag ffdfgdfg/npc:latest --output type=image,push=true --file Dockerfile.npc --platform=linux/amd64,linux/arm64,linux/386,linux/arm .
17+
for ARCH in amd64 arm64 loong64; do
18+
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags "${GOFlAGS}" ./cmd/nps/nps.go
19+
tar -czf ./build/linux_${ARCH}_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
20+
rm -f nps
21+
done

0 commit comments

Comments
 (0)