-
Notifications
You must be signed in to change notification settings - Fork 53
146 lines (118 loc) · 4.6 KB
/
build.yml
File metadata and controls
146 lines (118 loc) · 4.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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/