使用 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: 这些模板锁定到我们可复用工作流的特定主要版本。我们对工作流所做的小改进将自动在你的主题/插件中生效。对于破坏性变更(例如引入新的 linter),我们会提升可复用工作流的主要版本号,你需要更新你的工作流以指向新版本。

:tada: 搞定!设置完成!只需向你的仓库创建一个 commit 或 PR,GitHub Actions 就会自动检测工作流并开始运行任务。

GitHub Actions 会显示每个测试的详细信息,并在运行后根据测试通过或失败显示 :white_check_mark: 或 :x:。

如果测试失败,点击详细信息会提供一些关于失败原因的信息,这可能有助于你了解代码出了什么问题以及需要修复什么。

查看示例

:white_check_mark: 添加你自己的测试

为了让插件和组件测试有效运行,重要的是为你的插件或主题组件编写测试。

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

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

:bulb: 示例

为了你的方便,我们挑选了几个集成了健壮测试的插件和主题组件示例:


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

15 个赞