Files
file-transfer-go/.github/workflows/go.yml
2025-07-28 18:18:29 +08:00

116 lines
3.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Build and Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
jobs:
build:
name: Build Go Binaries
runs-on: ubuntu-latest
strategy:
matrix:
goos: [linux, windows, darwin]
goarch: [amd64, arm64]
exclude:
- goos: windows
goarch: arm64
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install dependencies
run: go mod download
- name: Build binary
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
run: |
mkdir -p build
BINARY_NAME=chuan
if [ "$GOOS" = "windows" ]; then
BINARY_NAME="${BINARY_NAME}.exe"
fi
VERSION=${GITHUB_REF_NAME:-dev}
BUILD_TIME=$(date +'%Y-%m-%d %H:%M:%S')
go build -ldflags "-X main.Version=${VERSION} -X main.BuildTime='${BUILD_TIME}'" \
-o build/${BINARY_NAME} cmd/main.go
# 创建发布包
cd build
if [ "$GOOS" = "windows" ]; then
zip ../chuan-${GOOS}-${GOARCH}.zip ${BINARY_NAME}
else
tar -czf ../chuan-${GOOS}-${GOARCH}.tar.gz ${BINARY_NAME}
fi
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: chuan-${{ matrix.goos }}-${{ matrix.goarch }}
path: chuan-${{ matrix.goos }}-${{ matrix.goarch }}.*
retention-days: 5
release:
name: Create Release
runs-on: ubuntu-latest
needs: build
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Prepare release files
run: |
mkdir -p release
find artifacts -name "*.zip" -o -name "*.tar.gz" | xargs -I {} cp {} release/
ls -la release/
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: release/*
generate_release_notes: true
draft: false
prerelease: false
body: |
## 🚀 川 P2P文件传输系统 ${{ github.ref_name }}
### 📦 下载说明
- `chuan-linux-amd64.tar.gz` - Linux x64
- `chuan-linux-arm64.tar.gz` - Linux ARM64
- `chuan-darwin-amd64.tar.gz` - macOS Intel
- `chuan-darwin-arm64.tar.gz` - macOS Apple Silicon
- `chuan-windows-amd64.zip` - Windows x64
### 🏃‍♂️ 快速开始
1. 下载对应平台的二进制文件
2. 解压后运行 `./chuan` (Linux/macOS) 或 `chuan.exe` (Windows)
3. 访问 http://localhost:8080 开始使用
### ✨ 主要功能
- 🔄 P2P文件传输无需服务器中转
- 🎯 6位取件码简单易用
- 👥 多人房间支持
- 📁 动态添加文件
- 🚀 高速传输优化
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}