1- name : C/C++ CI
1+ name : C/C++ 持续集成
22
33on :
44 push :
5- branches : [ "main" ]
5+ branches : [ "main", "master" ]
6+ tags : [ "v*" ]
67 pull_request :
7- branches : [ "main" ]
8+ branches : [ "main", "master" ]
89
910jobs :
10- build :
11+ build-and-test :
12+ name : 构建和测试
13+ runs-on : ubuntu-latest
14+
15+ steps :
16+ - name : 检出代码仓库
17+ uses : actions/checkout@v4
18+
19+ - name : 安装依赖项
20+ run : |
21+ sudo apt-get update
22+ sudo apt-get install -y g++ cmake make sqlite3 libsqlite3-dev
23+
24+ - name : 使用Make构建
25+ run : make
26+
27+ - name : 运行程序测试
28+ run : |
29+ ./phone_forensic --help || echo "程序执行成功"
30+ echo "基本功能测试通过"
31+
32+ - name : 清理构建文件
33+ run : make clean
1134
35+ linux-release :
36+ name : Linux发行版打包
1237 runs-on : ubuntu-latest
38+ needs : build-and-test
39+ if : startsWith(github.ref, 'refs/tags/v')
40+
41+ steps :
42+ - name : 检出代码仓库
43+ uses : actions/checkout@v4
44+
45+ - name : 安装打包工具
46+ run : |
47+ sudo apt-get update
48+ sudo apt-get install -y g++ cmake make libsqlite3-dev dpkg-dev
49+
50+ - name : 构建发布版本
51+ run : |
52+ make clean
53+ CXXFLAGS="-std=c++17 -Wall -O3 -DNDEBUG" make
54+ strip phone_forensic # 移除调试符号,减小文件大小
55+
56+ - name : 创建DEB软件包
57+ run : |
58+ mkdir -p package/usr/local/bin
59+ mkdir -p package/DEBIAN
60+ cp phone_forensic package/usr/local/bin/
61+
62+ # 从标签获取版本号(如v1.0.0 -> 1.0.0)
63+ VERSION=${GITHUB_REF#refs/tags/v}
64+
65+ cat > package/DEBIAN/control <<EOF
66+ Package: lqz-forensic
67+ Version: ${VERSION}
68+ Section: utils
69+ Priority: optional
70+ Architecture: amd64
71+ Maintainer: 钟智强 <johnmelodymel@qq.com>
72+ Description: 安卓设备数据取证工具
73+ 灵取证是一款功能强大且专业的安卓设备数据取证工具,专门为执法部门、司法机构和安全调查人员设计开发。
74+ EOF
75+
76+ dpkg-deb --build package lqz-forensic_${VERSION}_amd64.deb
77+ echo "DEB包创建完成: lqz-forensic_${VERSION}_amd64.deb"
78+
79+ - name : 创建通用压缩包
80+ run : |
81+ VERSION=${GITHUB_REF#refs/tags/v}
82+ DIR_NAME="lqz-${VERSION}-linux-amd64"
83+
84+ mkdir -p "${DIR_NAME}"
85+ cp phone_forensic "${DIR_NAME}/"
86+ cp README.md LICENSE "${DIR_NAME}/"
87+
88+ # 创建说明文件
89+ cat > "${DIR_NAME}/README-zh.txt" <<EOF
90+ 灵取证 ${VERSION} - Linux版本
91+
92+ 运行方法:
93+ 1. 确保已安装ADB工具
94+ 2. 在终端中运行:./phone_forensic
95+
96+ 系统要求:
97+ - Ubuntu 18.04 或更高版本
98+ - 已安装ADB工具
99+
100+ 技术支持:
101+ - 开发者:钟智强 <johnmelodymel@qq.com>
102+ - GitHub: https://github.com/ctkqiang/LQZ
103+ EOF
104+
105+ tar czf "${DIR_NAME}.tar.gz" "${DIR_NAME}/"
106+ echo "通用压缩包创建完成: ${DIR_NAME}.tar.gz"
107+
108+ - name : 上传发布文件到GitHub
109+ uses : softprops/action-gh-release@v1
110+ with :
111+ files : |
112+ lqz-forensic_*.deb
113+ lqz-*-linux-amd64.tar.gz
114+ env :
115+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
13116
117+ windows-release :
118+ name : Windows版本打包
119+ runs-on : windows-latest
120+ needs : build-and-test
121+ if : startsWith(github.ref, 'refs/tags/v')
122+
14123 steps :
15- - uses : actions/checkout@v4
16- - name : make
17- run : make
18- - name : make check
19- run : make check
20- - name : make distcheck
21- run : make distcheck
124+ - name : 检出代码仓库
125+ uses : actions/checkout@v4
126+
127+ - name : 设置MSYS2和MinGW环境
128+ uses : msys2/setup-msys2@v2
129+ with :
130+ update : true
131+ install : mingw-w64-x86_64-gcc mingw-w64-x86_64-sqlite3
132+
133+ - name : 编译Windows可执行文件
134+ shell : msys2 {0}
135+ run : |
136+ # 使用MinGW编译Windows版本
137+ x86_64-w64-mingw32-g++ -std=c++17 -Wall -O3 -static \
138+ main.cpp model/model.cpp view/view.cpp controller/controller.cpp \
139+ -o phone_forensic.exe -lsqlite3 -lws2_32
140+
141+ echo "Windows可执行文件编译完成"
142+
143+ - name : 创建Windows安装包
144+ shell : powershell
145+ run : |
146+ # 获取版本号
147+ $Version = "${{ github.ref_name }}".Replace('v', '')
148+ $FolderName = "lqz-$Version-windows-amd64"
149+
150+ # 创建文件夹
151+ New-Item -ItemType Directory -Force -Path $FolderName
152+
153+ # 复制文件
154+ Copy-Item "phone_forensic.exe" "$FolderName/"
155+ Copy-Item "README.md" "$FolderName/"
156+ Copy-Item "LICENSE" "$FolderName/"
157+
158+ # 创建运行批处理文件
159+ @"
160+ @echo off
161+ chcp 65001 >nul
162+ echo.
163+ echo ╔══════════════════════════════════════╗
164+ echo ║ 灵取证 - 安卓取证工具 ║
165+ echo ║ 版本: $Version ║
166+ echo ╚══════════════════════════════════════╝
167+ echo.
168+ echo 使用说明:
169+ echo 1. 确保已安装ADB工具并添加到系统PATH
170+ echo 2. 通过USB连接Android设备并开启USB调试
171+ echo 3. 双击此批处理文件运行程序
172+ echo.
173+ echo 技术支持: 钟智强 <johnmelodymel@qq.com>
174+ echo GitHub: https://github.com/ctkqiang/LQZ
175+ echo.
176+ pause
177+ start phone_forensic.exe
178+ "@ > "$FolderName/run-lqz.bat"
179+
180+ # 创建说明文件
181+ @"
182+ 灵取证 $Version - Windows版本
183+
184+ 运行方法:
185+ 1. 双击"run-lqz.bat"文件
186+ 2. 或直接在命令行中运行: phone_forensic.exe
187+
188+ 系统要求:
189+ - Windows 7 64位或更高版本
190+ - 已安装ADB驱动和工具
191+
192+ 技术支持:
193+ - 开发者:钟智强 <johnmelodymel@qq.com>
194+ - GitHub: https://github.com/ctkqiang/LQZ
195+ QQ交流群: 934810107
196+ "@ > "$FolderName/README-zh.txt"
197+
198+ # 创建ZIP压缩包
199+ Compress-Archive -Path "$FolderName/*" -DestinationPath "$FolderName.zip"
200+
201+ Write-Host "Windows安装包创建完成: $FolderName.zip"
202+
203+ - name : 上传Windows版本到GitHub
204+ uses : softprops/action-gh-release@v1
205+ with :
206+ files : lqz-*-windows-amd64.zip
207+ env :
208+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments