WooCommerce 文档

title: "发布流程" post_status: publish comment_status: open taxonomy: category: - woocommerce post_tag: - Releases - Contribution - Repos


发布流程

WooCommerce 的发布流程由一系列 GitHub Actions 工作流支持,这些工作流可以自动化重复性任务、强制执行流程规范,并发送通知。本网页提供了所有与发布相关的流程的参考,并按触发方式进行组织。

所有工作流都定义在 .github/workflows/ 目录中。

计划任务

这些工作流每天自动运行。

工作流 计划 执行内容 执行时机
Release: 作业 每天 18:00 UTC 检查 发布日历,分配发布负责人,并为每个周期中的每个发布创建父级跟踪问题,以及每个子问题的子问题。为每个子问题调用 Create Tracking Issue 在特性冻结前 ~8 周。
Release: 强制特性冻结 每天 18:00 UTC 检查 发布日历,从 trunk 创建发布分支,将 trunk 更新到下一个开发版本,发布一个开发版本,清理旧的里程碑,并发送 Slack 通知。调用 Bump version numberBuild ZIP file 在特性冻结日期。
Release: 特性亮点通知 每天 09:00 UTC 检查 发布日历,并向团队发送 Slack 提醒,告知即将到来的特性冻结截止日期。 在特性冻结前 ~1 周。
Release: 打开问题警告 每天 18:00 UTC 检查 发布日历,查找发布里程碑中未关闭的项目,并通过 Slack 通知列出这些项目及其负责人。 在发布日期前 72 小时内。
Nightly builds 每天 00:00 UTC trunk 构建一个夜间 ZIP 文件,并将其上传到 GitHub 发布版本。 每天运行,与发布日历无关。 每天。

事件驱动的工作流

这些工作流由 GitHub 事件自动触发,例如拉取请求合并、发布版本或标记问题。

代码选取和回溯

工作流程 触发器 功能描述
将里程碑 PR 代码选取到发布分支 PR 关闭或在 trunk 上标记里程碑 trunk 中选取代码,并将其应用到 release/x.y 分支,匹配 PR 的里程碑。 使用 shared-cherry-pick 实现核心逻辑。
代码选取到冻结的发布版本 PR 在 release/x.y 分支上合并,并且带有 cherry pick to frozen release 标签 release/x.y 分支选取代码,并将其应用到下一个(冻结的)release/x.y 分支。 使用 shared-cherry-pick 实现核心逻辑。
代码选取到主干 PR 在 release/x.y 分支上合并,并且带有 cherry pick to trunk 标签 release/x.y 分支选取代码,并将其回溯到 trunk。 使用 shared-cherry-pick 实现核心逻辑。
如果存在代码选取冲突,则阻止合并 cherry-pick-* 分支上的 PR 事件 如果存在 cherry pick has conflicts 标签,则 CI 构建失败,防止 PR 在冲突解决和标签移除之前被合并。

里程碑管理

工作流程 触发器 功能描述
自动为发布 PR 添加里程碑 PR 打开或重新打开在 release/x.y 分支上 为目标 release 分支的 PR 自动分配相应的里程碑。
合并时自动分配里程碑 PR 在 trunk 上关闭 为合并到 trunk 且尚未分配里程碑的 PR 分配里程碑。

发布事件和验证

工作流程 触发器 功能
Release: Release events proxy 已发布或预发布版本 委托给 release-new-release-published 以执行发布后的操作:发送 Slack 通知,更新全局变更日志(针对稳定版本),并为 beta 版本调用 Generate Number of Commits and Contributors
Release checks run 已发布或编辑的版本 对已发布的版本运行 CI 测试套件。 此外,还会在预定时间 nightly 运行。
~~Release: CFE and PRR issue validation~~ 带有 code freeze exceptionpoint release requestApprovedRejected 标签的问题 ~~验证 Code Freeze Exception 和 Point Release Request 问题,为相关的 PR 应用标签和里程碑,并发送 Slack 通知。~~ 正在废弃。

手动工作流程

这些工作流程由发布负责人在发布过程中触发。 它们是 构建和发布指南 和发布跟踪问题中引用的工作流程。

构建和发布

工作流程 功能
Release: Bump version number 更新插件文件中版本号,并针对发布分支创建 PR。
Release: Compile changelog 编译变更日志条目,并针对 trunk 和发布分支创建 PR。
Release: Build ZIP file 构建发布 ZIP 文件,并可选地创建草稿 GitHub 发布版本。
Release: Upload release to WordPress.org 将发布 ZIP 文件上传到 WordPress.org SVN。
Release: Update stable tag 更新 WordPress.org 上的稳定标签,并创建 PR 以将其同步到仓库。

跟踪和分析

工作流程 功能描述
Release: Create Tracking Issue 为特定的版本创建 Linear 跟踪问题,使用 .linear/ 目录中的 模板
Release: Generate Number of Commits and Contributors 生成 发布 统计信息(提交 数值贡献者 列表)并 发送 Slack 通知。
Release: analyze trends (CFEs and PRRs) 创建 GitHub 问题,请求对 代码 冻结异常和点 发布 请求进行 AI 分析,用于一个里程碑。