胡飞
22d90eb2bf
chore(ci): 移除临时的 Windows 便携包验证 workflow
2026-09-21 16:31:22 +08:00
胡飞
b9a36e065d
chore(ci): 临时验证 workflow 改用 push 触发
...
workflow_dispatch 要求 workflow 先存在于默认分支 main,特性分支上无法手动触发,
因此临时增加对 feat/db-objects-batch-select 的 push 触发;inputs 为空时用统一的
env 默认值(BUILD_MODE/INCLUDE_RDP/LABEL)保证与手动触发行为一致。
2026-09-21 13:39:47 +08:00
胡飞
1a60f0cbab
chore(ci): 增加 Windows 便携包临时验证 workflow
...
workflow_dispatch 触发,只产出 Windows x64 便携包(navop.exe + navop.portable
标记),供他人验证改动,不发布 GitHub Release,验证结束后可直接删除本文件。
- 走与正式发布一致的 windows-x64 口径:sccache(安装失败退化为无缓存)、
NASM/CMake、MSVC 环境、RDP 探针门;include_rdp 可关闭以缩短构建时间。
- build_mode 默认 fast(thin LTO + codegen-units=16),可切 release(fat LTO)。
- 产物为 navop-win-x64-portable-<short-sha>-<label>.zip 及 sha256,
保留 30 天,运行摘要里给出 commit 与下载位置。
2026-09-21 13:37:55 +08:00
胡飞
416b81400e
ci: 发布 PR 只跑发布元数据校验,跳过全平台测试
...
只改 CHANGELOG.md / main/Cargo.toml / Cargo.lock 的发布 PR 此前仍要跑
macOS / Linux / Windows 三平台全量测试(Windows job 约 25 分钟),而改动里
没有任何代码,这些测试没有意义。
- ci.yml 新增 classify job:PR 场景下用 script/release_pr.py 判定是否只包含
发布改动,是则跳过 test 与 windows-rdp-probe,改为就地校验发布元数据
- script/release_pr.py:分类规则为「改动文件全部属于发布白名单」且
「Cargo.toml / Cargo.lock 的差异只有 version = "..." 行」;命中后校验
main/Cargo.toml 与 Cargo.lock 中 main 包版本一致,且该版本的双语
changelog 条目完整(更新内容/修复与优化 + What's New/Fixes and
Improvements,含 CNB 镜像行);无法算出 diff 时回退到全量测试
- ci-gate 仍是唯一必需状态检查,分类或校验失败都会拦住合并
- .github/RELEASE.md 记录该快速通道
- windows_rdp_host 契约测试钉住 classify/needs/if 结构与脚本白名单
验证:
- python3 -m unittest discover -s script/tests -p "test_release_pr.py" — 16 passed
- cargo test -p windows_rdp_host --test contract — 40 passed
- ruby -ryaml 解析 ci.yml,核对 classify/test/windows-rdp-probe/ci-gate 的
needs 与 if 表达式
- rustfmt --edition 2024 --check crates/windows_rdp_host/tests/contract.rs
2026-09-19 12:55:35 +08:00
胡飞
1712e6ffe1
ci: sccache 安装失败时退化为无缓存构建,不再让 job 失败
...
mozilla-actions/sccache-action 从 GitHub Release CDN 下载 sccache 二进制失败
(CI run 35347089674 上连续两次 HTTP 504)会直接让整个 test job 变红,
Windows 测试根本没跑到,ci-gate 随之拦截合并。sccache 只是构建加速器,
不应成为测试或发布 job 的可用性依赖。
- Setup sccache 标记为 continue-on-error: true;该 action 的 post step 复用同一个
Pipelines.ActionStep,因此继续性错误同样覆盖 post step 失败
- Initialize sccache 在 steps.sccache.outcome != 'success' 时输出 warning,并向
GITHUB_ENV 写入空 RUSTC_WRAPPER,让后续 cargo 走无缓存构建;空值与 ci.yml
中 windows-rdp-probe job 的 RUSTC_WRAPPER: "" 是同一语义
- 同步 release.yml 的同一段路径,避免发布 job 被同类瞬时故障打断
- script/test-release-packaging.mjs 的共享缓存策略契约补上 best-effort 断言,
防止后续改动把这两个步骤改回硬依赖
验证:
- ruby -ryaml 解析两个 workflow:jobs 与步骤结构不变
- node --test script/test-release-packaging.mjs:26 passed / 0 failed
- cargo test -p windows_rdp_host --test contract:39 passed / 0 failed
- 变异验证:临时删掉 ci.yml 的 continue-on-error,共享缓存策略契约立即转红
- 本地 RUSTC_WRAPPER="" cargo check 正常,确认空值等价于不启用 wrapper
2026-09-19 00:10:02 +08:00
胡飞
2b278e63fa
ci: 把 Windows RDP ATL/MSVC 探针拆为独立 job
...
- ci.yml: test job 移除 Build ATL/MSVC probe 步骤,新增 windows-rdp-probe 独立 job(x64/i686 双 target 并行),并重新纳入 ci-gate needs,避免 Windows 测试 job 被探针编译拖长
- windows_rdp_host contract: ci.yml 结构断言改用 test / windows-rdp-probe 两段作用域,钉住探针 job 的步骤顺序、-Target 矩阵与 gate 依赖
2026-09-18 19:25:40 +08:00
胡飞
19d9177e60
chore(release): fast 模式改用 thin LTO,包体积对齐 release
...
fast 之前用 CARGO_PROFILE_RELEASE_LTO=false,发出的包体积回到旧档。
改为 thin + codegen-units=16(与 arm_linux 分支一致),构建仍远快于 fat。
验证:release.yml YAML 解析通过;未跑实际 fast 构建。
2026-09-17 15:51:07 +08:00
胡飞
14fcc01245
ci(release): 构建 job 超时统一 180min(fat LTO + codegen-units=1 让链接阶段更慢)
2026-09-17 12:47:08 +08:00
胡飞
29cf1d7cde
chore(release): 体积回退可见 + fast 模式说明对齐新 profile
...
- release profile 已是 fat LTO + panic=abort,输入项说明还写着 thin LTO。
- 构建后 ls -lh 打出二进制体积,方便在日志里发现体积回归。
- .gitignore 补本地 DMG/tar.gz 产物(bundle-macos-dmg.sh 写在仓库根)。
2026-09-17 12:29:22 +08:00
胡飞
e65fa85272
fix(release): macOS DMG 前清理 target 并去掉写死的 200m 镜像大小
...
runner 磁盘被 release target 目录占满导致
hdiutil create: No space left on device;DMG 又写在 target/ 下。
打包 app 后清理 deps/build/incremental/.fingerprint 再制 DMG;
同时去掉 -size 200m(app 二进制已约 208MB,写死尺寸不够)。
2026-09-17 09:04:00 +08:00
胡飞
076883392b
fix(release): win32 构建关闭 shell-plugins(quickjs JIT 不支持 32 位)
...
i686-pc-windows-msvc 下 gpui-shell → quickjs-jit-runtime 无法编译
(cranelift 仅 x86_64/aarch64,且 32 位 bindings 类型不匹配)。
win32 构建改用 --no-default-features 并只保留
wasm-components,embedded-webview,windows-native-rdp。
2026-09-16 22:21:27 +08:00
user.email
d548f07ab1
build: shell-plugins 进 main 的 default,四个发布产物统一带 Shell 页
...
`shell-plugins` 此前只在自建构建里开,于是 `crates/universal-plugins/src/
shell_plugin_host/**` 在默认构建、CI(`cargo test --all`)与发版里整段不参与
编译——改共享契约漏改构造点会静默通过(2026-09-15 给 `BindingContext` 加
`connection` 字段时就是这样漏的)。改为:
- `main` 的 `default` 追加 `shell-plugins`,于是 macOS/Linux(走 default)与
Windows(`--features windows-native-rdp`,default 仍在)的发布产物都带上;
- portable Linux 用 `--no-default-features`,不继承 default,故显式写成
`--features wasm-components,shell-plugins`;
- `crates/universal-plugins` 的 `default` 保持为空:该开关只关掉当前被选中包
的 default,若给 crate 也设 default,`main --no-default-features` 会把 Shell
页漏回来,feature 门失效。
`script/test-release-packaging.mjs` 里两处按字面量断言 default 行与 portable
命令,一并同步;`AGENTS.md` 那条 lesson 的验证方式改为「默认态与关闭态都必须
各跑一次」——漏编永远发生在没编到的那一侧。
验证:`cargo check -p main --locked` EXIT=0;关闭态 `--no-default-features
--features wasm-components,embedded-webview,windows-native-rdp` EXIT=0;
`node --test script/test-release-packaging.mjs` 26/26。
portable 目标本机无 zig/cargo-zigbuild,未预验证(该 job 现在要编 quickjs 的
C 源码,`quickjs-jit/sys/build.rs` 经 `cc` crate)。
2026-09-15 15:21:48 +08:00
user.email
a0c3691e97
ci(ai): switch issue automation to Codex and pause auto triggers
...
- replace the Claude CLI backend with the Codex CLI in scripts/ai/agent.cjs
- default provider is codex; openai-compatible stays classification-only
- install pinned @openai/codex in classify, implement and review-fix jobs
- disable automatic triggers on the three ai workflows, keep workflow_dispatch
2026-09-12 18:01:22 +08:00
胡飞
71fe344c47
fix(ci): repair failing workspace tests and cloud_sync parallel flake
...
- connection-import tests: key candidates to the runner platform so they pass on Linux CI instead of being hidden as Platform::Macos
- gate the /usr/bin probe test with cfg(unix) for Windows
- notes tab-chrome test: assert against the background-task entry now following the tab switcher
- markdown-editor tests: pass App to Window::blur after the gpui-ce bump
- one-core tab_container layout/drag contract tests: track ElementExt::on_prepaint and the scroll-boundary drag region
- extension-runtime catalog/global tests: use shell_manifest() and reject a dev view via an unknown backend
- terminal command-bar contract tests: match the externalized Textarea/action API
- windows-rdp-probe contract: expect the VS version-range variable used by the build script
- cloud_sync + crypto: unify the master-key test lock to stop refresh/sync racing a concurrent set_master_key
- ci: drop the stale -p gpui-component --doc step (git dep, not a workspace member)
2026-09-09 17:27:39 +08:00
胡飞
cb723be834
perf(release): use parallel thin LTO builds
2026-09-05 08:04:37 +08:00
胡飞
a6786444e9
fix(ci): 合并 windows-rdp-probe 到 test job 并修复 CI 全红
...
- ci.yml: 删除独立 windows-rdp-probe job,probe 步骤并入 test job 的 Windows
分支(保留 i686,先 rustup target add i686-pc-windows-msvc)
- contract.rs: 去掉已删除 build-windows-msi.yml 的断言,更新 ci.yml 结构断言
- test-release-packaging.mjs: main default features 断言补 builtin-mqtt
- 修复 -D warnings 下 unused imports/unused_mut 编译错误
2026-09-04 15:05:25 +08:00
胡飞
6ea5883b19
chore(ci): 移除 icon-audit job,将 api_tools 移出工作区并清理引用
...
- ci.yml 删除 icon-audit job 与 ci-gate 依赖,删除死代码 tools/icon-audit
- 将 crates/api_tools(含 ApiTestView)整体移出到工作区保留
- 清理 api-testing feature 全链路引用(Cargo.toml/main 源码/locales)
- 修复 markdown-editor test 对新 fork 已移除 highlighter wasm API 的引用
2026-09-04 13:10:21 +08:00
胡飞
6bd63dc3a7
chore(workflow): 精简 GitHub workflows,发布链路改从 main 触发并加 PR 合并保护
...
- 删除废弃 workflow:build-windows-msi / build-windows-rdp-smoke /
repair-release-assets / validate-linux-arm64-packages / validate-linux-x64-packages
- test-release-packaging.mjs 移除对 build-windows-msi 的引用,
Windows MSI 校验改为以 release.yml 为准
- release-trigger.yml 与 release.yml 的 dispatch --ref 由 dev 改为 main(main=release)
- ci.yml 增加 CI gate 汇总 job,供 main 分支保护强制检查
- RELEASE.md 更新分支模型:dev=beta、main=release(PR 合并)
2026-09-04 11:01:13 +08:00
胡飞
b77c2a3115
ci(release): add build_mode input to skip fat LTO for faster builds
2026-08-28 23:23:13 +08:00
胡飞
f2d1301ac8
fix(zmodem): resolve transfer races and task lifecycle
2026-08-28 09:11:20 +08:00
胡飞
dcfcddc8d1
feat(release): versioned public package names with win32 label, keep updater asset names
2026-08-24 17:37:57 +08:00
胡飞
51b57d9995
fix(release): 完善 R2 与 CNB 发布资产同步
2026-08-24 11:56:23 +08:00
胡飞
804535d81b
ci: add workflow to sync release assets to CNB
...
Ported from dbx's sync-cnb-release-assets.yml, targeting
cnb.cool/navop-dev/navop.
2026-08-22 10:42:43 +08:00
胡飞
4982b73f90
fix(ci): repair Windows release builds
2026-08-20 09:50:05 +08:00
胡飞
8c0773bbf3
ci(windows): add native RDP smoke package
2026-08-19 17:05:45 +08:00
胡飞
ca59b22847
fix(rdp): apply native gateway credentials
2026-08-19 16:42:49 +08:00
胡飞
39c036f969
fix(ci): add NASM download fallback
2026-08-19 00:19:19 +08:00
胡飞
1e50b59313
fix(windows): configure MSVC for native RDP builds
2026-08-19 00:19:19 +08:00
胡飞
25a75d8984
fix(windows): include native RDP in app builds
2026-08-19 00:18:16 +08:00
胡飞
cda34ac94c
fix(ci): expose NASM to Windows build steps
2026-08-18 22:35:20 +08:00
胡飞
cf7dd35e27
fix(ci): provision Windows native build dependencies
2026-08-18 22:35:20 +08:00
胡飞
d0f1f1abdb
fix(remote-desktop): restore Windows native CI contracts
2026-08-18 22:27:01 +08:00
胡飞
ed2a9c3639
feat(remote-desktop): add Windows RDP toolchain probe
2026-08-18 22:27:00 +08:00
胡飞
73cf3bea38
fix(release): bundle Wayland runtime libraries
2026-08-15 11:33:52 +08:00
胡飞
dfeb1a4316
ci: reduce ARM64 validation resource usage
2026-08-15 10:43:33 +08:00
胡飞
a0de0586f1
ci: validate Linux ARM64 packages
2026-08-15 09:28:02 +08:00
胡飞
082721ac0e
fix(ci): check cargo-zigbuild version correctly
2026-08-15 00:37:39 +08:00
胡飞
fb4f38229a
ci: add temporary Linux x64 package validation
2026-08-14 23:46:35 +08:00
胡飞
02beac37a0
feat(release): add portable x64 Linux package
2026-08-14 23:35:14 +08:00
胡飞
704932df72
feat(release): add portable ARM64 Linux package
2026-08-14 23:11:49 +08:00
胡飞
37db429ea8
fix(release): support older ARM64 Linux runtimes
2026-08-14 16:04:30 +08:00
胡飞
63ac372408
ci: add Windows x86 release packages
2026-08-04 20:25:24 +08:00
胡飞
791740fa21
merge: integrate navop UI optimization
...
# Conflicts:
# main/src/home/home_connection_quick_open.rs
# main/src/home_tab/modern_home.rs
# main/src/persistent_connection_sidebar/context_menu.rs
2026-08-04 15:45:12 +08:00
胡飞
00b1135e07
feat(ui): establish unified desktop design system
2026-08-04 12:18:07 +08:00
胡飞
6496088518
fix(release): verify R2 overwrites and disable stale caching
2026-08-03 15:37:57 +08:00
胡飞
bf95dc74fe
feat(release): add Windows EXE installer
2026-08-03 10:26:00 +08:00
胡飞
75ce08a7e8
feat(release): centralize bilingual changelog and release notes
2026-08-01 11:38:40 +08:00
胡飞
d1a8375ba6
fix(release): align app version with v0.9.2
2026-07-24 14:44:45 +08:00
胡飞
66b204b3b3
feat(core): 支持便携运行模式
2026-07-23 21:01:52 +08:00
胡飞
ccdbaaacb9
fix(ci): explicitly dispatch R2 upload after release
2026-07-22 12:16:05 +08:00