From 2486f954f508887daf04ceff7ea87c365030cf86 Mon Sep 17 00:00:00 2001 From: haonan Date: Thu, 15 Oct 2026 15:55:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E6=96=B0=E7=89=88=20C?= =?UTF-8?q?lippy=20=E5=B9=B6=E5=89=8D=E7=BD=AE=E5=8F=91=E5=B8=83=E8=B4=A8?= =?UTF-8?q?=E9=87=8F=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 1 - crates/shield-core/src/local_secret.rs | 2 +- docs/process/release.md | 4 ++-- scripts/tests/test_android_api19_build_contract.py | 4 +++- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6097cda..4fe7c43 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -151,7 +151,6 @@ jobs: full-quality: name: 完整代码质量检查 - if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' runs-on: ubuntu-24.04 steps: diff --git a/crates/shield-core/src/local_secret.rs b/crates/shield-core/src/local_secret.rs index 85ad02a..cf07fcb 100644 --- a/crates/shield-core/src/local_secret.rs +++ b/crates/shield-core/src/local_secret.rs @@ -74,7 +74,7 @@ pub fn decode_hex(value: &str) -> Result, String> { } let mut out = Vec::with_capacity(value.len() / 2); let bytes = value.as_bytes(); - for pair in bytes.chunks_exact(2) { + for pair in bytes.as_chunks::<2>().0 { let hi = decode_hex_nibble(pair[0])?; let lo = decode_hex_nibble(pair[1])?; out.push((hi << 4) | lo); diff --git a/docs/process/release.md b/docs/process/release.md index f9eb9a6..16288be 100644 --- a/docs/process/release.md +++ b/docs/process/release.md @@ -59,7 +59,7 @@ Pull Request 合并前必须通过以下 CI 检查: - `基础快速检查` -普通 PR 只执行 Rust 格式和脚本契约测试,避免每次提交重复等待完整编译与跨平台打包。完整代码质量检查、Android 壳构建、Linux Tauri 打包冒烟检查、Windows Android 4.4 资源构建和发布前检查仅在手动触发 CI 时执行;版本发布仍由 Release 工作流完整构建三个平台。 +普通 PR 执行快速检查、融合协议、iOS 归档和完整代码质量检查;完整质量检查包含 CI 工具链上的 Clippy、Rust 测试及前端检查,避免只在合并后发现新工具链问题。Android 壳构建、Linux Tauri 打包冒烟、Windows Android 4.4 资源构建和发布前检查仍仅在手动触发 CI 时执行;版本发布由 Release 工作流完整构建三个平台。发布 PR 应等待全部已触发的检查通过。 日常开发流程: @@ -207,7 +207,7 @@ make build-stub → make build-cli / make build-gui / make release / make rele | 工作流 | 文件 | 触发 | 内容 | |--------|------|------|------| -| CI | `.github/workflows/ci.yml` | push / pull request / 手动触发 | 普通提交与 PR 执行基础快速检查;手动触发时执行完整代码质量、Android 壳、Linux Tauri、Windows Android 4.4 资源及发布前检查 | +| CI | `.github/workflows/ci.yml` | push / pull request / 手动触发 | 普通提交与 PR 执行快速检查、融合协议、iOS 归档及完整代码质量;手动触发再执行 Android 壳、Linux Tauri、Windows Android 4.4 资源及发布前检查 | | Release | `.github/workflows/release.yml` | main 的 CI 成功 / 手动触发 | 并行构建三平台,先上传草稿,再校验并公开 GitHub Release | > GitHub Release 上传 GUI 安装包、签名更新包、更新清单、校验和与 Android 运行时资源;CLI 包仍可通过本地发布脚本生成。 diff --git a/scripts/tests/test_android_api19_build_contract.py b/scripts/tests/test_android_api19_build_contract.py index adb90d1..69186b8 100644 --- a/scripts/tests/test_android_api19_build_contract.py +++ b/scripts/tests/test_android_api19_build_contract.py @@ -40,8 +40,10 @@ def test_ci_and_release_install_both_ndk_versions(self) -> None: self.assertIn("if: needs.changes.outputs.run_checks == 'true'", ci) self.assertIn("name: 基础快速检查", ci) self.assertIn("name: 完整代码质量检查", ci) + quality = ci.split("\n full-quality:\n", 1)[1].split("\n linux-gui-bundle:\n", 1)[0] + self.assertNotRegex(quality, r"(?m)^ if:", "完整质量检查必须覆盖 PR,不能等合并后才检查") self.assertGreaterEqual( - ci.count("if: github.event_name == 'workflow_dispatch'"), 5 + ci.count("if: github.event_name == 'workflow_dispatch'"), 4 ) self.assertNotIn("run_android_stub", ci) self.assertNotIn("run_linux_gui", ci)