Skip to content

update go version

update go version #3

Workflow file for this run

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