本文档描述了 Semantic UI 用于发布新版本的自动化发布流程。它涵盖了如何创建构建、如何打包分发文件以及如何在 GitHub 上更新组件存储库。有关构建系统本身的信息,请参阅 构建系统。
Semantic UI 的发布流程会自动更新多个存储库,以发布新版本。该流程遵循以下关键步骤:
来源: tasks/admin/release.js29-37 tasks/admin/components/update.js5-13 tasks/admin/distributions/update.js5-13
发布版本根据以下来源确定,优先级顺序如下:
此版本号将在整个发布流程中使用,用于标记存储库和更新包文件中的版本字段。
来源: tasks/config/project/release.js17-38 package.json1-94
| 文件 | 目的 |
|---|---|
| package.json | 定义版本和依赖项 |
| tasks/config/project/release.js | 包含发布元数据,例如标题、存储库 URL 和横幅 |
| tasks/config/admin/release.js | 包含组件和分发存储库信息 |
Semantic UI 为不同的分发格式维护单独的存储库,以便开发人员可以仅包含他们需要的内容。
在创建分发存储库时,该流程涉及:
来源: tasks/admin/distributions/create.js46-223 tasks/admin/distributions/update.js40-191
每个 UI 组件(Button、Dropdown、Modal 等)都维护在其自己的存储库中。这允许开发人员仅包含他们所需的组件。
组件更新流程包括:
来源: tasks/admin/components/create.js56-327 tasks/admin/components/update.js40-189
在更新单独的存储库之前,发布流程会通过以下步骤构建所有 Semantic UI 文件:
来源: tasks/build.js17-47 tasks/build/javascript.js46-80 tasks/build/css.js49-116 tasks/build/assets.js26-40
对于每个组件和分发存储库,如果版本已更改,则会创建一个 GitHub 发布。
来源: tasks/admin/components/update.js145-168 tasks/admin/distributions/update.js141-167
发布流程需要 GitHub 身份验证才能创建存储库、提交和发布。这通过存储在 tasks/config/admin/oauth.js 中的 OAuth 令牌来完成。
| 配置项 | 目的 |
|---|---|
| token | 用于身份验证的 GitHub OAuth 令牌 |
| 名称 | Git 操作的提交者姓名 |
| Git 操作的提交者电子邮件 |
来源: tasks/admin/components/update.js32-34 tasks/admin/distributions/update.js32-34 tasks/config/admin/github.js9-32
要运行完整的发布流程,请执行以下命令:
gulp release
这将:
来源: tasks/admin/release.js30-42
发布流程完成后,会生成以下制品:
dist/ 目录中的主要分发文件每个组件存储库包含:
来源: tasks/admin/components/create.js138-316 tasks/admin/distributions/create.js146-196