diff --git a/.github/workflows/build-windows-manual.yml b/.github/workflows/build-windows-manual.yml index 91e3461..007cbdf 100644 --- a/.github/workflows/build-windows-manual.yml +++ b/.github/workflows/build-windows-manual.yml @@ -74,7 +74,8 @@ jobs: - name: Set internal app version run: | - VERSION="${{ inputs.version || '0.1.1' }}" + VERSION="${{ inputs.version }}" + if [ -z "$VERSION" ]; then VERSION="0.1.1"; fi jq --arg v "$VERSION" '.version = $v' src-tauri/tauri.conf.json > tmp.json && mv tmp.json src-tauri/tauri.conf.json sed -i "s/^version = \".*\"/version = \"$VERSION\"/" src-tauri/Cargo.toml @@ -104,7 +105,7 @@ jobs: - name: Upload Windows internal installer uses: actions/upload-artifact@v4 with: - name: ${{ inputs.artifact_name || 'Guanghu-Windows-x64-internal' }} + name: Guanghu-Windows-x64-internal path: src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/*-setup.exe if-no-files-found: error retention-days: 7 diff --git a/docs/ops/GITEA-ACTIONS-RUNNER-WINDOWS-INTERNAL.md b/docs/ops/GITEA-ACTIONS-RUNNER-WINDOWS-INTERNAL.md new file mode 100644 index 0000000..c864c35 --- /dev/null +++ b/docs/ops/GITEA-ACTIONS-RUNNER-WINDOWS-INTERNAL.md @@ -0,0 +1,162 @@ +# Gitea Actions Runner · Windows 内测安装包构建 + +> 状态: RUNNER_REQUIRED +> +> 适用仓库: `bingshuo/hololake-platform` +> +> 工作流: `.github/workflows/build-windows-manual.yml` +> +> 当前用途: 生成 `Guanghu-Windows-x64-internal` 内测安装包 artifact + +## 1 · 当前问题 + +`Build Windows Internal Installer` 工作流已经进入仓库,但 Gitea Actions 页面显示: + +```text +No matching online runner with label: ubuntu-latest +``` + +这表示问题不在应用源码,也不在 Windows 安装包工作流本身,而是服务器当前没有在线 Gitea Actions runner 接收 `ubuntu-latest` 标签的任务。 + +## 2 · 为什么先用 ubuntu-latest + +本工作流当前使用 Linux runner 交叉构建 Windows x64 NSIS 内测安装包: + +```yaml +runs-on: ubuntu-latest +``` + +原因: + +```text +1. 服务器只需要一台 Linux runner 就能先产出 Windows NSIS 内测包。 +2. 不要求 Windows 代码签名证书。 +3. 不要求 Windows 桌面机器长期在线。 +4. 比正式 Windows runner 更容易先补齐。 +``` + +注意:这是内测 unsigned installer 路线,不是正式发布链。 + +## 3 · 最小 runner 要求 + +```yaml +runner: + label: ubuntu-latest + os: linux + arch: x64 + disk: "80GB+ recommended" + memory: "4GB minimum, 8GB recommended" + network: "must reach guanghubingshuo.com and public package registries" +``` + +工作流会自动安装: + +```text +nsis +lld +llvm +clang +cargo-xwin +Node.js 22 +pnpm 10 +Rust x86_64-pc-windows-msvc target +``` + +## 4 · 服务器补齐步骤 + +在运行 Gitea 的服务器或独立构建机上安装并启动 `act_runner`。 + +示例流程: + +```bash +# 1. 安装 runner 二进制 +# 按服务器系统选择 Gitea act_runner 官方 release。 + +# 2. 注册 runner +act_runner register \ + --instance https://guanghubingshuo.com/code \ + --token \ + --name hololake-linux-runner-01 \ + --labels ubuntu-latest:host + +# 3. 启动 runner +act_runner daemon +``` + +生产建议用 systemd 托管: + +```ini +[Unit] +Description=Gitea Actions Runner +After=network.target + +[Service] +ExecStart=/usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml +WorkingDirectory=/var/lib/act_runner +Restart=always +User=act-runner + +[Install] +WantedBy=multi-user.target +``` + +## 5 · 注册 token 放哪里 + +不要把 runner 注册 token 写入仓库。 + +token 应从 Gitea 管理界面获取: + +```text +Repository / Organization / Site Admin +→ Actions +→ Runners +→ Create or registration token +``` + +token 只在服务器注册 runner 时使用。 + +## 6 · 验证方式 + +runner 启动后,进入: + +```text +https://guanghubingshuo.com/code/bingshuo/hololake-platform/actions +``` + +确认 `build-windows-manual.yml` 左侧不再显示: + +```text +No matching online runner with label: ubuntu-latest +``` + +然后重新运行: + +```text +Build Windows Internal Installer +``` + +成功后 artifact 名称应为: + +```text +Guanghu-Windows-x64-internal +``` + +其中包含: + +```text +*-setup.exe +``` + +## 7 · 后续正式发布链 + +内测 runner 跑通后,再补正式链: + +```text +1. Windows Authenticode 代码签名证书 +2. Tauri updater signing key +3. 正式 release workflow +4. 安装包 smoke test +5. 自有更新源 latest.json +``` + +正式发布前不要把该内测包描述为“已签名正式版”。