使用 GitHub Actions 设置持续集成

:mag: 概述

若要为 Discourse 构建一个健壮的扩展,将持续集成(CI)纳入您的插件或主题组件中是明智之举。这将有助于尽早发现错误,并降低代码中出现 bug 的可能性。

使用 GitHub Actions 设置 CI 工作流以自动化构建和测试,是 Discourse 团队在所有组件中采用的方法,我们也建议您照此办理。

:gear: 设置步骤

要为 GitHub Actions 添加自动工作流以进行检测,您需要在仓库的根目录下创建一个 .github/workflows 文件夹。

workflows 文件夹内,您可以定义一组 GitHub Actions 需要运行的自动化任务。例如,这些可以是用于代码检查和测试的 .yml 文件。

我们已为 插件主题组件 创建了模板工作流,您可以直接使用。这些模板连接到我们的“可重用工作流”定义 此处

在模板的骨架仓库中,您可以在 GitHub 上点击 使用此模板 按钮,基于该模板创建插件或主题组件仓库。

或者,如果您已有项目并希望添加工作流,只需将相应的工作流复制到您仓库的 .github/workflows/ 文件夹中即可:

:electric_plug: 插件: discourse-plugin.yml

:jigsaw: 主题和主题组件: discourse-theme.yml

:point_up: 这些模板锁定于我们可重用工作流的特定主版本。我们对工作流所做的微小改进将自动在您使用的主题/插件中生效。对于破坏性变更(例如引入新的代码检查工具),我们将提升可重用工作流的主版本号,届时您需要更新工作流以指向新版本。

:tada: 完成!您已设置完毕!只需向您的仓库提交一次更改或创建一个 PR,GitHub Actions 便会自动检测工作流并开始运行任务。

GitHub Actions 将展示每项测试的明细,运行结束后会根据测试通过或失败显示 :white_check_mark::x:

如果某项测试失败,点击“详情”将为您提供有关失败原因的一些信息,这可能为您指出代码中的问题所在以及需要修复的内容。

查看示例

:white_check_mark: 添加您自己的测试

为了使插件和组件的测试有效运行,您必须为您的插件或主题组件编写测试用例。

有关如何使用 EmberJS 编写前端测试的详细信息,请参阅:

有关如何使用 Rails 编写 RSpec 测试的更多详细信息,请参阅:

:bulb: 示例

为了您的便利,我们挑选了一些已集成健壮测试的插件和主题组件示例:


本文档受版本控制 - 请在 GitHub 上提出更改建议。

15 个赞