3838 restore-keys : |
3939 ${{ runner.os }}-go-
4040
41- - name : Install UPX
42- run : |
43- sudo apt-get update
44- sudo apt-get install -y upx
45-
4641 # 取得版本号:
4742 # - workflow_dispatch:若未填写则自动 vX.Y.(Z+1),并创建/推送该 tag
4843 # - push tag:使用该 tag
@@ -87,61 +82,67 @@ jobs:
8782 - name : Verify dependencies
8883 run : go mod verify
8984
85+ - name : Install UPX
86+ run : |
87+ sudo apt-get update
88+ sudo apt-get install -y upx
89+
9090 - name : Build for multiple platforms
9191 env :
9292 CGO_ENABLED : 0
9393 run : |
94- mkdir -p release
95- LDFLAGS="-s -w -X 'main.version=${{ steps.version.outputs.VERSION }}'"
94+ set -e
95+ mkdir -p release build
96+ # 将版本号写入 internal/config.Version,供更新逻辑使用
97+ LDFLAGS="-s -w -X 'github.com/https-cert/deploy/internal/config.Version=${{ steps.version.outputs.VERSION }}'"
9698
9799 echo "Build macOS..."
98- GOOS=darwin GOARCH=amd64 go build -ldflags="${LDFLAGS}" -trimpath -o release/cert-deploy-mac main.go
99- GOOS=darwin GOARCH=arm64 go build -ldflags="${LDFLAGS}" -trimpath -o release/cert-deploy-mac-arm64 main.go
100+ mkdir -p build/darwin-amd64 build/darwin-arm64
101+ GOOS=darwin GOARCH=amd64 go build -ldflags="${LDFLAGS}" -trimpath -o build/darwin-amd64/anssl main.go
102+ tar -C build/darwin-amd64 -czf release/anssl-darwin-amd64.tar.gz anssl
103+ GOOS=darwin GOARCH=arm64 go build -ldflags="${LDFLAGS}" -trimpath -o build/darwin-arm64/anssl main.go
104+ tar -C build/darwin-arm64 -czf release/anssl-darwin-arm64.tar.gz anssl
100105
101106 echo "Build Linux..."
102- GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -trimpath -o release/cert-deploy-linux main.go
103- GOOS=linux GOARCH=arm64 go build -ldflags="${LDFLAGS}" -trimpath -o release/cert-deploy-linux-arm64 main.go
107+ mkdir -p build/linux-amd64 build/linux-arm64
108+ GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -trimpath -o build/linux-amd64/anssl main.go
109+ echo "UPX compress linux-amd64..."
110+ upx --best build/linux-amd64/anssl || echo "⚠️ ignore UPX failure: linux-amd64"
111+ tar -C build/linux-amd64 -czf release/anssl-linux-amd64.tar.gz anssl
112+ GOOS=linux GOARCH=arm64 go build -ldflags="${LDFLAGS}" -trimpath -o build/linux-arm64/anssl main.go
113+ echo "UPX compress linux-arm64..."
114+ upx --best build/linux-arm64/anssl || echo "⚠️ ignore UPX failure: linux-arm64"
115+ tar -C build/linux-arm64 -czf release/anssl-linux-arm64.tar.gz anssl
104116
105117 echo "Build Windows..."
106- GOOS=windows GOARCH=amd64 go build -ldflags="${LDFLAGS}" -trimpath -o release/cert-deploy-windows.exe main.go
107- GOOS=windows GOARCH=arm64 go build -ldflags="${LDFLAGS}" -trimpath -o release/cert-deploy-windows-arm64.exe main.go
118+ mkdir -p build/windows-amd64 build/windows-arm64
119+ GOOS=windows GOARCH=amd64 go build -ldflags="${LDFLAGS}" -trimpath -o build/windows-amd64/anssl.exe main.go
120+ (cd build/windows-amd64 && zip -q ../../release/anssl-windows-amd64.zip anssl.exe)
121+ GOOS=windows GOARCH=arm64 go build -ldflags="${LDFLAGS}" -trimpath -o build/windows-arm64/anssl.exe main.go
122+ (cd build/windows-arm64 && zip -q ../../release/anssl-windows-arm64.zip anssl.exe)
108123
109124 - name : Show build info
110125 run : |
111126 echo "=== Build Info ==="
112127 echo "Version: ${{ steps.version.outputs.VERSION }}"
113128 echo "Go: $(go version)"
114- echo "UPX: $(upx --version)"
115129 echo "Files:"
116130 ls -lh release/
117131
118- - name : Compress Linux binaries with UPX
119- run : |
120- echo "UPX Linux binaries..."
121- for f in release/cert-deploy-linux release/cert-deploy-linux-arm64; do
122- if [ -f "$f" ]; then
123- echo "UPX -> $f"
124- upx --best "$f" || echo "⚠️ ignore UPX failure: $f"
125- fi
126- done
127- echo "Done."
128- ls -lh release/cert-deploy-linux*
129-
130- # 不再打包 zip/tar.gz;直接上传可执行文件
131132 - name : Generate checksums
132133 run : |
133134 cd release
134- sha256sum cert-deploy -* > checksums.txt
135+ sha256sum anssl -* > checksums.txt
135136 echo "checksums generated:"
136137 cat checksums.txt
137138
138139 - name : Create all-platforms archive
139140 run : |
140141 cd release
141142 echo "Creating all-platforms archive..."
142- tar -czf cert-deploy- all-platforms.tar.gz cert-deploy -*
143+ tar -czf anssl- all-platforms.tar.gz anssl -*
143144 echo "Archive created:"
144- ls -lh cert-deploy -all-platforms.tar.gz
145+ ls -lh anssl -all-platforms.tar.gz
145146
146147 # 生成详细的更新日志
147148 - name : Generate changelog
@@ -202,13 +203,13 @@ jobs:
202203 with :
203204 body : ${{ steps.changelog.outputs.CHANGELOG_CONTENT }}
204205 files : |
205- release/cert-deploy-mac
206- release/cert-deploy-mac- arm64
207- release/cert-deploy- linux
208- release/cert-deploy- linux-arm64
209- release/cert-deploy- windows.exe
210- release/cert-deploy- windows-arm64.exe
211- release/cert-deploy -all-platforms.tar.gz
206+ release/anssl-darwin-amd64.tar.gz
207+ release/anssl-darwin- arm64.tar.gz
208+ release/anssl- linux-amd64.tar.gz
209+ release/anssl- linux-arm64.tar.gz
210+ release/anssl- windows-amd64.zip
211+ release/anssl- windows-arm64.zip
212+ release/anssl -all-platforms.tar.gz
212213 release/checksums.txt
213214 release/CHANGELOG.md
214215 draft : false
@@ -222,13 +223,13 @@ jobs:
222223 name : Release ${{ steps.version.outputs.VERSION }}
223224 body : ${{ steps.changelog.outputs.CHANGELOG_CONTENT }}
224225 files : |
225- release/cert-deploy-mac
226- release/cert-deploy-mac- arm64
227- release/cert-deploy- linux
228- release/cert-deploy- linux-arm64
229- release/cert-deploy- windows.exe
230- release/cert-deploy- windows-arm64.exe
231- release/cert-deploy -all-platforms.tar.gz
226+ release/anssl-darwin-amd64.tar.gz
227+ release/anssl-darwin- arm64.tar.gz
228+ release/anssl- linux-amd64.tar.gz
229+ release/anssl- linux-arm64.tar.gz
230+ release/anssl- windows-amd64.zip
231+ release/anssl- windows-arm64.zip
232+ release/anssl -all-platforms.tar.gz
232233 release/checksums.txt
233234 release/CHANGELOG.md
234235 draft : false
0 commit comments