diff --git a/.github/workflows/sync-website.yml b/.github/workflows/sync-website-release.yml similarity index 99% rename from .github/workflows/sync-website.yml rename to .github/workflows/sync-website-release.yml index 9b5a899..b843dea 100644 --- a/.github/workflows/sync-website.yml +++ b/.github/workflows/sync-website-release.yml @@ -1,4 +1,4 @@ -name: 同步官网桌面版本与更新记录 +name: 官网版本与发布记录同步 on: workflow_dispatch: diff --git "a/docs/\345\217\221\345\270\203\346\265\201\347\250\213.md" "b/docs/\345\217\221\345\270\203\346\265\201\347\250\213.md" index 06d2222..2148389 100644 --- "a/docs/\345\217\221\345\270\203\346\265\201\347\250\213.md" +++ "b/docs/\345\217\221\345\270\203\346\265\201\347\250\213.md" @@ -8,9 +8,9 @@ | `.github/workflows/release-desktop.yml` | `desktop-v*` tag | 检查 → 各平台打包与验收 → Release 草稿 | | `.github/workflows/release-cli.yml` | `cli-v*` tag | 检查 → CLI 打包与验收 → npm 发布 | -正式桌面 Release 发布或编辑后,`.github/workflows/sync-website.yml` 仅按事件中的 Release ID 读取该版本的当前内容,创建或更新官网 `src/content/releases/<版本号>.md`,不遍历历史 Release 或官网文件树,也不自动补齐历史记录。Markdown frontmatter 保存版本、发布日期与来源链接,正文保留 Release 原文;无正文时显示未填写说明。仅当该版本高于官网 `desktopVersion` 时才更新下载版本;编辑旧版说明只更新该版本文件,不会降级下载入口。当前或更新版本缺少任一平台安装包时失败,旧版说明同步不检查安装包。版本变量与当前发布文件的变化通过 Git Trees API 在同一个 commit 中提交到 `joinTARP/web-site` 的 `main` 分支,内容相同则不提交,不修改其他版本文件或列表页 Markdown。草稿、预发布、CLI 发布不触发同步。官网托管平台需已连接该仓库,并启用 `main` 分支 push 自动构建。 +正式桌面 Release 发布或编辑后,`.github/workflows/sync-website-release.yml` 仅按事件中的 Release ID 读取该版本的当前内容,创建或更新官网 `src/content/releases/<版本号>.md`,不遍历历史 Release 或官网文件树,也不自动补齐历史记录。Markdown frontmatter 保存版本、发布日期与来源链接,正文保留 Release 原文;无正文时显示未填写说明。仅当该版本高于官网 `desktopVersion` 时才更新下载版本;编辑旧版说明只更新该版本文件,不会降级下载入口。当前或更新版本缺少任一平台安装包时失败,旧版说明同步不检查安装包。版本变量与当前发布文件的变化通过 Git Trees API 在同一个 commit 中提交到 `joinTARP/web-site` 的 `main` 分支,内容相同则不提交,不修改其他版本文件或列表页 Markdown。草稿、预发布、CLI 发布不触发同步。官网托管平台需已连接该仓库,并启用 `main` 分支 push 自动构建。 -已发布版本不需要删除 Release 或移动标签。先合入官网改动,再将同步工作流合入桌面仓库默认分支并配置下述 Secret,随后打开桌面仓库 **Actions → 同步官网桌面版本与更新记录 → Run workflow**,选择默认分支,在 `tag` 填写真实发布标签(如 `desktop-v0.1.1`)后运行。手动入口只读取指定 Release,仍会拒绝草稿、预发布和不符合格式的标签;重复运行不会重复提交。旧标签对应的提交若尚未包含本工作流,编辑该 Release 不会触发新增工作流,使用手动入口补同步即可。不要为启用官网同步覆盖既有发布标签或重新打包。 +已发布版本不需要删除 Release 或移动标签。先合入官网改动,再将同步工作流合入桌面仓库默认分支并配置下述 Secret,随后打开桌面仓库 **Actions → 官网版本与发布记录同步 → Run workflow**,选择默认分支,在 `tag` 填写真实发布标签(如 `desktop-v0.1.1`)后运行。手动入口只读取指定 Release,仍会拒绝草稿、预发布和不符合格式的标签;重复运行不会重复提交。旧标签对应的提交若尚未包含本工作流,编辑该 Release 不会触发新增工作流,使用手动入口补同步即可。不要为启用官网同步覆盖既有发布标签或重新打包。 首次使用需在桌面仓库 Actions Secrets 配置 `WEBSITE_CONTENTS_TOKEN`:使用 fine-grained PAT,仅选择 `joinTARP/web-site`,授予 **Contents: Read and write**,并确保组织已批准该 Token(如需审批)。Token 所属账号需有官网仓库写权限,且 `main` 分支规则允许该账号直接提交。默认 `GITHUB_TOKEN` 仅限当前仓库,不能用于此跨仓库提交。工作流文件须先合入桌面仓库默认分支,官网的 `desktopVersion`、带版本号的链接模板与发布内容集合、列表及详情页也须先提交到 `main`。同一 Release 的任务串行执行,不同 Release 使用独立并发组,避免互相取消排队任务。同步使用官网当前提交作为父提交和基础文件树,非强制更新分支;并发修改导致更新失败时不会覆盖他人提交,可重跑失败任务。同步提交的作者为 Token 所属账号;Token 缺失、过期或写入被分支规则拒绝时,工作流失败,不宣称官网已更新。