fix(packaging): 修复 Windows 安装与固件打包并完善客户端文案
- fix(installer): 修复低完整性产物无法写入临时目录的问题,并在 CI 打包前后检查完整性标签 - fix(firmware): 从本次 Cargo ELF 打包并同步配套镜像,修正短目录说明与 LLVM 搜索顺序 - fix(installer): 修复中文完成页和页眉遮挡,侧栏使用等比缩放的原始 Logo - style(client): 应用图标增加圆角,统一“裁判系统客户端”命名 - fix(config): 安装提示改用可选本地热点配置,排除 Wi-Fi 凭据 - docs: 润色项目说明并统一裁判系统术语 - test(packaging): 补充 Windows 完整性和固件打包回归,覆盖外部输出目录、旧镜像与重复生成 验证:Windows NSIS 构建及原生页面预览;通用与本地安装配置编译;固件 release 构建、重复打包和客户端离线校验;6 项固件打包回归与 Windows 权限回归;git diff --check。未执行实机烧录。
This commit is contained in:
@@ -86,10 +86,12 @@
|
||||
# 算 —— 只把 LOCALAPPDATA 指走它照样去开原来的路径(报错原文见 run 8 的日志),
|
||||
# 把 USERPROFILE 指走它才跟着走(本机实测:探针 profile 下立刻出现
|
||||
# all-stores.lock)。
|
||||
# 想从根上解决:让 gitea-runner 以**中完整性**启动(在普通终端里跑
|
||||
# 现在 Windows 打包要求 gitea-runner 以**中完整性或更高**启动(在普通终端里跑
|
||||
# run-runner.ps1,而不是从被沙箱化的低完整性 shell 里拉起来),那样这些重定向
|
||||
# 就都可以撤掉。这台机器上 runner 由计划任务 GiteaRunner-Windows(admin /
|
||||
# Limited)拉起,但进程链上的完整性已经落到了 Low。
|
||||
# Limited)拉起,但进程链上的完整性已经落到了 Low。仅重定向目录仍会产生带 Low
|
||||
# 标签的 exe;用户运行它时也会变成 Low,NSIS 在执行 .onInit 前就无法写 TEMP。
|
||||
# job 开始时检查进程级别;打包前修正输出目录与 exe 标签;上传前只读复查。
|
||||
#
|
||||
# ── 三个平台都显式写 --target,这不是啰嗦 ────────────────────────────────────
|
||||
# desktop/.cargo/config.toml 里钉着 `target = "aarch64-apple-darwin"`(本机开发用;
|
||||
@@ -368,12 +370,9 @@ jobs:
|
||||
env:
|
||||
TARGET: x86_64-pc-windows-msvc
|
||||
CARGO_BUILD_TARGET: x86_64-pc-windows-msvc
|
||||
# 见文件头第 5 条:这台 runner 的 job 跑在**低完整性**(Low Mandatory Level,
|
||||
# S-1-16-4096)上,而 Windows 不允许低完整性往中完整性写 —— 用户目录全中招:
|
||||
# ~/.rustup、~/.cargo、%TEMP%、%LOCALAPPDATA% 下新建任何东西都是
|
||||
# "Access denied (os error 5)",ACL 再宽松也没用(没有 Deny ACE,是完整性
|
||||
# 级别拦的)。所以 CI 用到的每个"家目录"都挪到 runner 自己的工作目录下,
|
||||
# 那几处在 job 内的写探测里实测可写。换一台 Windows runner 时改这几行。
|
||||
# 这些隔离缓存路径沿用原 runner 配置。见文件头第 5 条:此前通过重定向
|
||||
# 目录绕过 Low 进程的写入限制,但产物也会带 Low 标签。现在 job 开始时
|
||||
# 要求进程达到 Medium;目录重定向仅用于缓存隔离,不能替代完整性检查。
|
||||
RUSTUP_HOME: C:\Users\admin\runner\windows\cache\ci-rustup
|
||||
CARGO_HOME: C:\Users\admin\runner\windows\cache\ci-cargo
|
||||
# LOCALAPPDATA/APPDATA 也得改:pnpm 12 的 store 锁与 cache/state 都挂在
|
||||
@@ -391,6 +390,10 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: 检查 Windows 打包进程完整性
|
||||
shell: pwsh
|
||||
run: ./desktop/scripts/prepare-windows-bundle.ps1 -CheckProcessOnly
|
||||
|
||||
# 宿主模式的 Windows runner 上,PATH 里的 `bash` 是 C:\Windows\System32\bash.exe
|
||||
# —— WSL 的启动器,而 WSL 在 runner 账户下起不来,报 E_ACCESSDENIED(日志里是
|
||||
# 一串 GBK 被当 UTF-8 解出来的乱码 + https://github.com/microsoft/WSL/issues)。
|
||||
@@ -497,6 +500,16 @@ jobs:
|
||||
working-directory: desktop
|
||||
run: pnpm tauri build --target ${{ env.TARGET }} --bundles nsis
|
||||
|
||||
- name: 检查安装包与主程序完整性标签
|
||||
working-directory: desktop
|
||||
shell: pwsh
|
||||
run: ./scripts/prepare-windows-bundle.ps1 -CheckOnly
|
||||
|
||||
- name: Windows 安装包权限回归(不安装应用)
|
||||
working-directory: desktop
|
||||
shell: pwsh
|
||||
run: ./scripts/test-windows-bundle.ps1
|
||||
|
||||
- name: 上传产物
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
|
||||
Reference in New Issue
Block a user