概述
要为 Discourse 构建一个健壮的扩展,明智的做法是在插件或主题组件中包含持续集成 (CI)。这将有助于及早发现错误,并减少代码中出现错误的几率。
使用 GitHub Actions 设置持续集成 (CI) 工作流程以实现构建和测试自动化是 Discourse 团队在其所有组件上使用的一种方法,我们建议您也这样做。
设置
要添加 GitHub Actions 自动检测的工作流程,您需要在仓库的根目录中创建一个 .github/workflows 文件夹。
在 workflows 文件夹内,您可以定义一组 GitHub Actions 需要运行的自动化。例如,这些可以是用于代码检查和测试的 .yml 文件。
我们已经为 插件 和 主题组件 创建了模板工作流程供您使用。它们连接到我们在此处的“可重用工作流程”定义 here。
在模板的骨架仓库中,您可以在 GitHub 上点击 \u003ckbd\u003eUse this template\u003c/kbd\u003e 按钮,根据模板创建插件/主题组件仓库。
或者,如果您已经有一个想要添加工作流程的项目,只需将相关工作流程复制到您仓库的 .github/workflows/ 文件夹中即可:
主题和主题组件: discourse-theme.yml
这些模板锁定在我们可重用工作流程的特定主要版本。我们对工作流程所做的微小改进将自动在您的主题/插件中生效。对于破坏性更改(例如引入新的代码检查器),我们将提高可重用工作流程的主版本号,您需要更新工作流程以指向新版本。
瞧!您已全部设置完毕!只需向您的仓库创建一个提交或一个 \u003cabbr title="Pull Request"\u003ePR\u003c/abbr\u003e,GitHub Actions 就会自动检测到工作流程并开始运行作业。
GitHub Actions 将显示每次测试的细目,运行后会根据测试通过或失败显示
或
。
如果测试失败,点击详细信息将为您提供有关失败内容的某些信息,这可能会为您提供有关代码中存在什么问题以及需要修复什么的线索。
添加您自己的测试
为了使插件和组件测试有效,编写插件或主题组件的测试非常重要。
有关如何使用 EmberJS 编写前端测试的详细信息,请参阅:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
有关如何使用 Rails 编写 RSpec 测试的更多详细信息,请参阅:
示例
为了您的方便,我们挑选了一些集成了强大测试的插件和主题组件示例:
| 插件/组件 | 客户端测试 | 服务器端测试 |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
\u003csmall\u003e此文档是版本控制的 - 在 github 上建议更改。\u003c/small\u003e
\u003c!-- START DOCS ASSET MAP
[
{
"local_path": "/assets/ci-with-github-actions-1.png",
"local_sha1": "c3fb59eeb13645670b751959d13cdf8e423e0fcf",
"remote_short_url": "upload://imziUfvg1AloA7IQ5jXMyn85Ngu.png"
}
]
END DOCS ASSET MAP –\u003e
