Skip to content

优化Release说明和README使用方法 #4

优化Release说明和README使用方法

优化Release说明和README使用方法 #4

Workflow file for this run

name: Build and Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: write
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Get version from tag
id: version
run: |
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
else
VERSION="dev-$(date +%Y%m%d-%H%M%S)"
fi
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Building version: $VERSION"
- name: Get build time
id: build_time
run: |
BUILD_TIME=$(date -u +"%Y-%m-%d %H:%M:%S UTC")
echo "time=$BUILD_TIME" >> $GITHUB_OUTPUT
- name: Build for multiple platforms
run: |
# 创建输出目录
mkdir -p dist
# 设置版本信息
VERSION="${{ steps.version.outputs.version }}"
COMMIT=$(git rev-parse --short HEAD)
BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# 构建标志
LDFLAGS="-X RealityChecker/internal/version.Version=$VERSION -X RealityChecker/internal/version.Commit=$COMMIT -X RealityChecker/internal/version.BuildTime=$BUILD_TIME"
# Linux AMD64
GOOS=linux GOARCH=amd64 go build -ldflags "$LDFLAGS" -o reality-checker .
chmod +x reality-checker
zip -j dist/reality-checker-linux-amd64.zip reality-checker
rm reality-checker
# Linux ARM64
GOOS=linux GOARCH=arm64 go build -ldflags "$LDFLAGS" -o reality-checker .
chmod +x reality-checker
zip -j dist/reality-checker-linux-arm64.zip reality-checker
rm reality-checker
# Windows AMD64
GOOS=windows GOARCH=amd64 go build -ldflags "$LDFLAGS" -o reality-checker.exe .
zip -j dist/reality-checker-windows-amd64.zip reality-checker.exe
rm reality-checker.exe
# Windows ARM64
GOOS=windows GOARCH=arm64 go build -ldflags "$LDFLAGS" -o reality-checker.exe .
zip -j dist/reality-checker-windows-arm64.zip reality-checker.exe
rm reality-checker.exe
# macOS AMD64
GOOS=darwin GOARCH=amd64 go build -ldflags "$LDFLAGS" -o reality-checker .
chmod +x reality-checker
zip -j dist/reality-checker-macos-amd64.zip reality-checker
rm reality-checker
# macOS ARM64 (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -ldflags "$LDFLAGS" -o reality-checker .
chmod +x reality-checker
zip -j dist/reality-checker-macos-arm64.zip reality-checker
rm reality-checker
# 显示构建结果
ls -la dist/
- name: Create Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: |
dist/*
body: |
## Reality协议目标网站检测工具 ${{ steps.version.outputs.version }}
### 使用方法
详细使用方法请参考 [README.md](https://github.com/V2RaySSR/RealityChecker/blob/main/README.md)
**基本命令:**
```bash
# 单域名检测
./reality-checker check example.com
# 批量检测
./reality-checker batch "domain1,domain2,domain3"
# CSV文件检测
./reality-checker csv domains.csv
```
**推荐工作流程:**
1. 使用 [RealiTLScanner](https://github.com/XTLS/RealiTLScanner) 扫描VPS IP:
```bash
./RealiTLScanner -addr <VPS IP> -port 443 -thread 50 -timeout 5 -out file.csv
```
2. 使用本工具检测生成的CSV文件:
```bash
./reality-checker csv file.csv
```
### 版本信息
- **版本**: ${{ steps.version.outputs.version }}
- **提交**: ${{ github.sha }}
- **构建时间**: ${{ steps.build_time.outputs.time }}
---
**注意**: 本工具仅用于技术研究和学习目的,请遵守当地法律法规。
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload artifacts (for non-tag builds)
if: "!startsWith(github.ref, 'refs/tags/')"
uses: actions/upload-artifact@v4
with:
name: reality-checker-builds
path: dist/