完善 Gitea 工作流并修复移动端导航与列表按钮图标

前端:
- 「我的构建」列表「查看详情/查看进度」按钮补充与其他按钮同风格的眼睛小图标
- 顶部导航增加 768px 以下移动端适配: 顶栏纵向排列, 导航单行横向滑动, 修复手机端错位

Gitea Actions 工作流 (仅 .gitea, 不动 .github):
- 5 个生成器工作流全部补充 /updategh 终态状态回调 (成功/取消/失败均回调),
  修复无回调导致构建 6 小时后被误判为超时的 P0 缺陷
- Windows 两个工作流 job 级默认 shell 设为 pwsh, 兼容 act 在 Windows 默认 bash
- 修复 VCPKG_BINARY_SOURCES 中 \v 的 YAML 非法转义 (双引号改单引号)
- Flutter 补丁路径改为 .rdgen-src/.github/patches/, run-on-arch 容器内用 /workspace 前缀
- run-on-arch githubToken 置空, 避免 Gitea token 拉 ghcr.io 失败
- runs-on 标签对齐现场 runner: ubuntu-22.04 改为 ubuntu-24.04
- run-vcpkg/setup-ndk 钉到 node20 运行时 SHA, 规避 node24 action 不兼容
- decrypt-secrets 的 pip 安装增加三级回退; cleanzip 请求增加超时重试
- 所有产物上传 curl 增加 --fail/超时/重试参数
- macOS 动态定位 *.app 不再硬编码 RustDesk.app, DMG 路径改用 GITHUB_WORKSPACE
- 修复签名条件判断、PowerShell 变量空格等小问题
- setup.md 更新 runner 标签表及 Windows/macOS host 准备要求
This commit is contained in:
naeeo
2026-09-30 11:40:33 +08:00
parent 6e5754fb59
commit 73ca96fa67
12 changed files with 348 additions and 70 deletions
+33 -11
View File
@@ -125,11 +125,18 @@ Gitea 不提供云构建机,每个需要构建的平台都要自行注册 runn
| 标签 | 用途 | 运行方式 |
| --- | --- | --- |
| `ubuntu-22.04` | Linux x86_64、Android 构建 | Linux 主机 Docker 模式 |
| `ubuntu-22.04-arm` | Linux arm64、Android arm 构建 | arm64 Linux 主机 Docker 模式 |
| `windows-2022` | Windows x64/x86 构建 | Windows 主机 host 模式(真机/虚拟机) |
| `macos-14` | macOS arm64 构建 | Apple Silicon Mac host 模式 |
| `macos-15-intel` | macOS x64 构建 | Intel Mac host 模式 |
| `ubuntu-24.04` | Linux x86_64、Android(armv7/aarch64 走 NDK 交叉编译)、drm/appimage/flatpak x86_64 | Linux x86_64 主机 Docker 模式 |
| `ubuntu-24.04-arm` | Linux arm64 的 deb/flatpak 原生构建 | arm64 Linux 主机 Docker 模式(需另注册) |
| `windows-2022` | Windows x64/x86 构建 | Windows 主机 host 模式(真机/虚拟机,需另注册) |
| `macos-14` | macOS arm64 构建 | Apple Silicon Mac host 模式(需另注册) |
| `macos-15-intel` | macOS x64 构建 | Intel Mac host 模式(需另注册) |
另外大量轻量步骤(拉取加密配置、收尾回调、artifact 清理)运行在
`ubuntu-latest` 标签上——act_runner 默认自带的 `ubuntu-latest`/`docker`/`amd64`
标签即可承接,但必须确保有 runner 显式提供 `ubuntu-24.04` 标签,否则主构建会
一直处于 waiting。只注册一台 x86_64 Linux runner 时 Android 与 Linux x86_64
构建即可工作;arm64 Linux、Windows、macOS 必须各自再注册对应机器,对应任务在
机器就绪前会排队等待。
**Linux(Docker 模式,推荐)**:
@@ -143,7 +150,8 @@ docker run -d --name gitea-runner --restart always \
```
首次启动生成 `/data/config.yaml` 后,按需把 `labels` 改为上面的标签,例如
`- "ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04"`,再重启容器。
`- "ubuntu-24.04:docker://ghcr.io/catthehacker/ubuntu:act-24.04"`(act 官方
镜像还有 `ubuntu:act-latest` 可挂到 `ubuntu-latest` 标签),再重启容器。
工作流把 vcpkg 二进制缓存放在容器内 `/opt/vcpkg-cache`,如需跨任务复用,可在
job 容器配置中把该路径挂为持久卷。
@@ -155,9 +163,16 @@ job 容器配置中把该路径挂为持久卷。
> (如 `https://gitea.example.com`)或宿主机映射地址(如 `http://10.0.0.10:39630`),
> 改完编辑 `/data/config.yaml` 的 `runner.address` 重启即可,无需重新注册。
**Windows(host 模式)**:在准备好构建环境的 Windows 机器上
(Git、PowerShell、Visual Studio 2022、vcpkg 位于 `C:\vcpkg`,并预创建
`D:\vcpkg-cache`;ImageMagick 等由工作流自动安装):
**Windows(host 模式)**:在准备好构建环境的 Windows 机器上构建。Gitea act
在 Windows 上默认 shell 是 bash,而本仓库工作流已显式把默认 shell 设为
**PowerShell 7(pwsh)**,因此机器上必须安装:
* **PowerShell 7+**(`pwsh` 必须在 PATH 中;仅有 Windows 自带的 5.1 不够)
* **Git for Windows**(提供 Git Bash,部分步骤显式使用 `shell: bash`)
* **Python 3**(decrypt-secrets composite action 需要,且能 `python -m pip`)
* **Visual Studio 2022**(含 C++ 桌面开发、MSVC、Windows SDK)
* **vcpkg** 固定位于 `C:\vcpkg`,并**预创建 `D:\vcpkg-cache`** 二进制缓存目录
* **Chocolatey / NuGet**(工作流用其安装 ImageMagick、WiX 等构建依赖)
```powershell
# 下载 https://gitea.com/gitea/act_runner/releases 的 act_runner.exe
@@ -168,8 +183,11 @@ job 容器配置中把该路径挂为持久卷。
确认稳定后再用任务计划程序/NSSM 注册为开机服务。
**macOS(host 模式)**:使用 Apple 硬件(arm64 对应 `macos-14`,Intel 对应
`macos-15-intel`,安装 Xcode 命令行工具),同样下载 act_runner 二进制后以
`macos-14:host` 标签注册并 launchd 守护。
`macos-15-intel`)。仅安装 Xcode 命令行工具不够,必须安装**完整版 Xcode**
(Flutter macOS 构建与代码签名需要),并具备 Homebrew、CocoaPods
(`sudo gem install cocoapods` 或 brew 版)、运行 runner 的用户可**免密
sudo**。同样下载 act_runner 二进制后以 `macos-14:host` 标签注册并 launchd
守护。
### 3. 内网网络说明
@@ -188,6 +206,10 @@ job 容器配置中把该路径挂为持久卷。
(`.rdgen-src/.github/patches/`),不依赖 raw.githubusercontent.com。
* rdgen 后台的 `GITEA_PROXY` 仅用于「服务端 → Gitea API」的调用;Gitea 通常
与 rdgen 在同一内网,留空直连即可。
* **runner 必须能反向访问 rdgen(`GENURL`)**:每个工作流结束时(无论成功、
失败还是取消)都会向 `${GENURL}/updategh` 回调最终状态。收不到回调的构建
会在 6 小时后被服务端误判为超时,因此 `GENURL` 要填 runner 实际可达的地址,
不能只填浏览器端能访问的地址。
### 4. 在 rdgen 侧启用