From 0ab31b4c5808f737b3034ddec4e319673e31421c Mon Sep 17 00:00:00 2001 From: wangjia <809946525@qq.com> Date: Sun, 5 Jul 2026 23:19:29 +0800 Subject: [PATCH] =?UTF-8?q?docs(spec):=20CI/CD=20=E5=AF=86=E9=92=A5?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E5=AF=B9=E9=BD=90=20jiu(MACOS=5F*/APPSTORE?= =?UTF-8?q?=5F*/ANDROID=5F*)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apple 那套账户级与 jiu 共用一份(同名);新增 FORGEJO_URL、macOS 两个描述文件 入表。Android keystore 同命名规范但各 app 独立不共享。 Co-Authored-By: Claude Opus 4.8 --- docs/cicd-design.html | 13 +++++++------ docs/superpowers/specs/2026-07-05-cicd-design.md | 15 +++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/docs/cicd-design.html b/docs/cicd-design.html index d051014..59494ed 100644 --- a/docs/cicd-design.html +++ b/docs/cicd-design.html @@ -122,16 +122,17 @@ rsync 到服务器 web 根 → nginx/Caddy 静态托管。DNS:CF 加记 FORGEJO_TOKEN 查最新 client-v* 版本烘焙进 href)。Download.astro 各平台按钮读 SITE.downloads.<platform>。客户端发版后官网重部署即刷新(或 build-* 完成触发 deploy-site)。

-

6. 密钥与作用域(solo / wangjia)

+

6. 密钥与作用域(solo / wangjia,命名对齐 jiu 以共用)

- - + + + - + +
Secret作用域说明
FORGEJO_TOKEN账户级建 release,jiu 复用
DEVELOPER_ID_P12 / P12_PASSWORD / ASC_KEY_P8 / ASC_KEY_ID / ASC_ISSUER_ID账户级Apple 账号级签名+公证,所有 app 共用,续期改一处
FORGEJO_TOKEN / FORGEJO_URL账户级建 release + 传产物,jiu 复用
MACOS_DEVELOPER_ID_CERT_P12_BASE64 / MACOS_DEVELOPER_ID_CERT_PASSWORD账户级Developer ID 证书(账号级),与 jiu 共用;续期改一处
APPSTORE_API_KEY_P8_BASE64 / APPSTORE_API_KEY_ID / APPSTORE_API_ISSUER_ID账户级公证 API key(KEY_ID=3PZTHR8YMJ),与 jiu 同一把
DEPLOY_SSH_KEYpangolin 仓库级授权到 pangolin1,最小权限
RELEASE_KEYSTORE / KEYSTORE_PASSWORD / KEY_ALIAS / KEY_PASSWORDpangolin 仓库级Android app 级专属签名,绝不共享
ANDROID_KEYSTORE_BASE64 / ANDROID_KEYSTORE_PASSWORD / ANDROID_KEY_ALIAS / ANDROID_KEY_PASSWORDpangolin 仓库级Android app 级专属签名(pangolin 自己的 keystore,不复用 jiu
MACOS_APP_PROVISION_PROFILE_BASE64 / MACOS_SYSEXT_PROVISION_PROFILE_BASE64pangolin 仓库级主 app + PacketTunnel sysext 描述文件(pangolin bundle 专属)
-

工作流用 secrets.XXX 引用,账户级/仓库级对写法透明。macOS 另需主 app + PacketTunnel -sysext 两个 .provisionprofile(base64 存 secret,签名期落盘嵌入)。

+

命名对齐 jiu(MACOS_*/APPSTORE_*/ANDROID_*):Apple 那套放账户级 → jiu/pangolin 共用一份,compile-macos 脚本可复用 jiu 的;Android keystore 虽同命名规范但各 app 独立、不共享。工作流用 secrets.XXX 引用,作用域对写法透明。

7. 实现顺序

范围虽 A~F,按风险/依赖递增落地,每阶段独立可发、独立验收:

diff --git a/docs/superpowers/specs/2026-07-05-cicd-design.md b/docs/superpowers/specs/2026-07-05-cicd-design.md index c44d1d1..9db2be1 100644 --- a/docs/superpowers/specs/2026-07-05-cicd-design.md +++ b/docs/superpowers/specs/2026-07-05-cicd-design.md @@ -88,17 +88,20 @@ Astro `npm ci && npm run build`(`SITE_URL=https://pangolin.yanmeiai.com`)→ `di `Download.astro` 各平台按钮读 `SITE.downloads.`。客户端发版后官网重部署即刷新 (或 `build-*` 完成触发 `deploy-site`)。 -## 6. 密钥与作用域(solo / wangjia) +## 6. 密钥与作用域(solo / wangjia,命名对齐 jiu 以共用) | Secret | 作用域 | 说明 | |---|---|---| -| `FORGEJO_TOKEN` | 账户级(wangjia) | 建 release,jiu 复用 | -| `DEVELOPER_ID_P12` / `P12_PASSWORD` / `ASC_KEY_P8` / `ASC_KEY_ID` / `ASC_ISSUER_ID` | 账户级 | Apple 账号级签名+公证,所有 app 共用,续期改一处 | +| `FORGEJO_TOKEN` / `FORGEJO_URL` | 账户级(wangjia) | 建 release + 传产物,jiu 复用 | +| `MACOS_DEVELOPER_ID_CERT_P12_BASE64` / `MACOS_DEVELOPER_ID_CERT_PASSWORD` | 账户级 | Developer ID 证书(账号级),与 jiu 共用;续期改一处。证书在钥匙串,导出一次 .p12 | +| `APPSTORE_API_KEY_P8_BASE64` / `APPSTORE_API_KEY_ID` / `APPSTORE_API_ISSUER_ID` | 账户级 | 公证 API key(KEY_ID=`3PZTHR8YMJ`),与 jiu 同一把,`.p8` 现成 | | `DEPLOY_SSH_KEY` | pangolin 仓库级 | 授权到 pangolin1,最小权限 | -| `RELEASE_KEYSTORE` / `KEYSTORE_PASSWORD` / `KEY_ALIAS` / `KEY_PASSWORD` | pangolin 仓库级 | Android app 级专属签名,绝不共享 | +| `ANDROID_KEYSTORE_BASE64` / `ANDROID_KEYSTORE_PASSWORD` / `ANDROID_KEY_ALIAS` / `ANDROID_KEY_PASSWORD` | pangolin 仓库级 | Android app 级专属签名(**pangolin 自己的 keystore,不复用 jiu**) | +| `MACOS_APP_PROVISION_PROFILE_BASE64` / `MACOS_SYSEXT_PROVISION_PROFILE_BASE64` | pangolin 仓库级 | 主 app + PacketTunnel sysext 描述文件(pangolin bundle 专属,签名期落盘嵌入) | -工作流用 `secrets.XXX` 引用,账户级/仓库级对写法透明。macOS 另需主 app + PacketTunnel sysext -两个 `.provisionprofile`(base64 存 secret,签名期落盘嵌入)。 +命名对齐 jiu(`MACOS_*`/`APPSTORE_*`/`ANDROID_*`):**Apple 那套放账户级 → jiu/pangolin 共用一份**, +compile-macos 脚本可复用 jiu 的;Android keystore 虽同命名规范但**各 app 独立、不共享**。 +工作流用 `secrets.XXX` 引用,作用域对写法透明。 ## 7. 实现顺序(单仓库内分阶段落地)