update go version #3
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Binaries | |
| on: | |
| push: | |
| tags: | |
| - "v*" # 当推送以v开头的标签时触发,例如V20260612.0 | |
| permissions: | |
| contents: write # 需要这个权限来创建release和上传文件 | |
| jobs: | |
| build: | |
| name: Build and Release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.23' | |
| check-latest: true | |
| - name: Get tag name | |
| id: get_tag | |
| run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV | |
| - name: Build macOS and Windows binaries | |
| run: | | |
| # 创建build目录存放二进制文件 | |
| mkdir -p builds | |
| # macOS (Intel) | |
| GOOS=darwin GOARCH=amd64 go build -o builds/tiny-requestbin-${{ env.TAG }}-darwin-amd64 . | |
| # macOS (Apple Silicon) | |
| GOOS=darwin GOARCH=arm64 go build -o builds/tiny-requestbin-${{ env.TAG }}-darwin-arm64 . | |
| # Windows (x86_64) | |
| GOOS=windows GOARCH=amd64 go build -o builds/tiny-requestbin-${{ env.TAG }}-windows-amd64.exe . | |
| - name: Set up Docker for Linux builds | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build Linux binaries with older glibc | |
| run: | | |
| # 使用 Ubuntu 16.04 (xenial) 容器构建 Linux 二进制文件 | |
| # 这将确保兼容较老的 glibc 版本 | |
| docker run --rm -v $(pwd):/src -w /src golang:1.20-xenial /bin/bash -c " | |
| # 构建 Linux (x86_64) 二进制文件,启用 CGO 并静态链接 | |
| CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-extldflags \"-static\"' -o builds/tiny-requestbin-${{ env.TAG }}-linux-amd64 . | |
| # 构建 Linux (ARM64) 二进制文件,启用 CGO 并静态链接 | |
| CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -ldflags '-extldflags \"-static\"' -o builds/tiny-requestbin-${{ env.TAG }}-linux-arm64 . | |
| " | |
| # Windows (x86_64) | |
| GOOS=windows GOARCH=amd64 go build -o builds/tiny-requestbin-${{ env.TAG }}-windows-amd64.exe . | |
| # 创建压缩文件 | |
| cd builds | |
| # 压缩Mac二进制文件 | |
| tar -czf tiny-requestbin-${{ env.TAG }}-darwin-amd64.tar.gz tiny-requestbin-${{ env.TAG }}-darwin-amd64 | |
| tar -czf tiny-requestbin-${{ env.TAG }}-darwin-arm64.tar.gz tiny-requestbin-${{ env.TAG }}-darwin-arm64 | |
| # 压缩Linux二进制文件 | |
| tar -czf tiny-requestbin-${{ env.TAG }}-linux-amd64.tar.gz tiny-requestbin-${{ env.TAG }}-linux-amd64 | |
| tar -czf tiny-requestbin-${{ env.TAG }}-linux-arm64.tar.gz tiny-requestbin-${{ env.TAG }}-linux-arm64 | |
| # 压缩Windows二进制文件 | |
| zip tiny-requestbin-${{ env.TAG }}-windows-amd64.zip tiny-requestbin-${{ env.TAG }}-windows-amd64.exe | |
| - name: Create Release | |
| id: create_release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| name: Release ${{ env.TAG }} | |
| draft: false | |
| prerelease: false | |
| files: | | |
| builds/tiny-requestbin-${{ env.TAG }}-darwin-amd64.tar.gz | |
| builds/tiny-requestbin-${{ env.TAG }}-darwin-arm64.tar.gz | |
| builds/tiny-requestbin-${{ env.TAG }}-linux-amd64.tar.gz | |
| builds/tiny-requestbin-${{ env.TAG }}-linux-arm64.tar.gz | |
| builds/tiny-requestbin-${{ env.TAG }}-windows-amd64.zip |