Skip to content

Merge pull request #1 from knktc/feature-optimze-refresh-of-page #8

Merge pull request #1 from knktc/feature-optimze-refresh-of-page

Merge pull request #1 from knktc/feature-optimze-refresh-of-page #8

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
# linux (amd64)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -ldflags '-extldflags "-static"' -o builds/tiny-requestbin-${{ env.TAG }}-linux-amd64 .
# Linux (arm64)
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -ldflags '-extldflags "-static"' -o builds/tiny-requestbin-${{ env.TAG }}-linux-arm64 .
# 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: Compress Binaries
run: |
# 创建压缩文件
cd builds
# 压缩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
# 压缩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
# 压缩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