创建持续集成套件

持续集成 (CI) 套件是一组与 LookML 项目关联的验证指令。拥有 manage_ci 权限的 Looker 用户可以在 CI 套件中配置以下内容:

准备工作

在创建 CI 套件之前,您需要满足以下条件:

  • 一个满足持续集成要求且已启用持续集成的 Looker 实例。
  • 具有 manage_ci 权限的 Looker 用户账号(此权限包含在管理员权限集中)。
  • 一个 LookML 项目,其中至少有一个提交已部署到生产环境。只有当项目处于生产模式时,CI 后台服务才能检索项目的 Git 配置。如果项目仅存在于开发模式下,则 CI 在配置 webhook 触发器时会返回错误。

创建 CI 套件

您可以在 Looker IDE 的套件页面上配置和运行验证工具:

“CI 套件”页面

如需创建 CI 套件,请按照以下步骤操作:

  1. 在 Looker IDE 中,点击 IDE 导航栏中的持续集成图标。
  2. 点击套件标签页,打开套件页面。
  3. 在套件页面上,您可以创建新套件或修改现有套件:
    • 如需创建新套件,请点击创建套件按钮。
    • 如需修改现有套件,请点击该套件对应的修改套件按钮。
  4. 输入套件名称。如果您要修改现有套件,可以点击铅笔图标来修改套件名称(可选)。
  5. (可选)如果您想设置定期自动验证测试,请启用按时间表触发切换开关。如需了解详情,请参阅本页的按时间表触发部分。
  6. (可选)如果您希望在 Looker 开发者向您的代码库提交拉取请求时设置自动验证测试,请启用在收到来自 Looker 的拉取请求时触发切换开关。如需了解详情,请参阅本页的在收到来自 Looker 的拉取请求时触发部分。

    如果您为 CI 套件启用了拉取请求触发,则可以选择使用仅针对目标分支字段来指定只有针对代码库中特定分支的拉取请求才应触发 CI 套件的运行。如需了解详情,请参阅本页的在收到来自 Looker 的拉取请求时触发部分。

  7. (可选)如果您希望在每次运行 dbt Cloud CI 作业时都设置自动验证测试,请开启在收到来自 dbt Cloud 的拉取请求时触发切换开关。如需了解详情,请参阅本页面的在收到来自 dbt Cloud 的拉取请求时触发部分。

  8. (可选)如果您想在每次向导入的上游(中心)项目提交拉取请求时设置自动验证测试,请执行以下步骤:

    1. 启用在收到来自导入项目的拉取请求时触发切换开关。
    2. 在选择要订阅的上游项目下,选中每个应触发此 CI 套件运行的导入 hub 项目对应的复选框。您必须至少选择一个上游项目。

    如需了解详情,请参阅本页的在收到来自导入项目的拉取请求时触发部分。

  9. (可选)如果您希望根据 CI 运行的状态接收邮件提醒,请开启启用邮件提醒切换开关。如需了解详情,请参阅本页面的设置提醒部分。

  10. (可选)启用验证工具切换开关,以开启验证工具并配置其选项。如需了解详情,请参阅每个验证器的以下文档页面:

  11. 使用以下方法之一保存更改:

    • 如果您要创建新套件,请点击创建套件按钮。
    • 如果您要修改现有套件,请点击更新套件按钮。

触发器

CI 运行可以通过多种方式触发:

按时间表触发

您可以启用按时间表触发切换开关,将 CI 套件配置为按时间表自动触发。

启用此切换开关后,您可以选择自动运行 CI 套件的频率和具体设置:

  • 每月,在特定日期和时间
  • 每周,在特定日期和时间
  • 每天的特定时间
  • 每小时或每 2、3、4、6、8 或 12 小时,在一天中的特定时间开始和结束
  • 分钟:每 5、10、15、20 或 30 分钟,在一天中的特定时间开始和结束
  • 一年中的特定月份,在特定日期和时间
  • 一周中的特定日期的特定时间

在收到来自 Looker 的拉取请求时触发

如需将 CI 套件配置为在收到拉取请求时自动触发,请启用在收到来自 Looker 的拉取请求时触发切换开关。如需使用拉取请求触发功能,您的 Looker 管理员必须在 Looker 的持续集成管理页面上配置您的 Git 代码库。

如果您为 CI 套件启用了拉取请求触发器,则可以选择指定仅针对仓库中特定分支的拉取请求应触发 CI 套件的运行。如需将 CI 运行的自动拉取请求触发器限制为代码库中的特定分支,请在仅限目标分支字段中输入以逗号分隔列表。

例如,如果某个代码库有三个分支,分别名为 main、release_1 和 dev,您可以在仅适用于目标分支字段中输入 main, release_1。这意味着,当 Looker 开发者向 main 或 release_1 分支提交拉取请求时,系统会触发 CI 运行。如果 Looker 开发者向 dev 分支提交拉取请求,则不会触发 CI 套件的自动运行。

在收到来自 dbt Cloud 的拉取请求时触发

如果您在实例上配置了 dbt Cloud 集成,则可以配置 CI 套件,使其在 dbt Cloud CI 作业完成时自动触发。CI 套件会在部署 dbt 更改之前,验证 dbt 模型中的更改是否会导致 Looker 探索中出现 SQL 错误。

如需配置此触发器,请在创建或修改 CI 套件时启用在收到来自 dbt Cloud 的拉取请求时触发切换开关。

启用此触发器后,请配置以下选项:

  • dbt Cloud 作业:从下拉字段中选择应触发此套件的 dbt Cloud CI 作业。

  • 架构用户属性:选择包含数据库连接的架构名称的 Looker 用户属性。此列表中只会显示已在管理面板中为 CI 启用的用户属性。

当您保存启用了此触发器的套件时,Looker 会自动在您的 dbt Cloud 账号中注册一个 webhook,以监听作业完成情况。

对于 dbt Cloud 触发的运行,Looker 会动态识别 dbt Cloud 运行创建的临时架构,并在 CI 运行期间使用此临时架构名称覆盖所选用户属性。

在收到来自导入项目的拉取请求时触发

如果您的 Looker 项目使用本地项目导入功能从同一 Looker 实例导入其他项目,您可以配置 CI 套件,以便在导入的上游项目(称为中心项目)上打开或更新拉取请求时,测试下游项目(称为分支项目)。

例如,假设您有一个 company_bi hub 项目,该项目已导入到 marketing 和 finance spoke 项目中。您可以在 marketing 和 finance 项目中配置触发器,以便在每次向 company_bi 代码库提交拉取请求时验证这些 spoke 项目。

在配置此触发器之前,请考虑以下前提条件和行为:

  • 仅限本地项目导入:所有订阅的 hub 项目都必须通过在同一 Looker 实例上的 manifest.lkml 中使用 local_dependency 参数在本地导入到 spoke 项目中。不支持远程项目(在项目清单文件中使用 remote_dependency 参数的导入项目)。
  • Git 和生产模式:spoke 项目和导入的 hub 项目都必须部署到生产模式,并为其 Git 代码库配置 CI GitHub 应用。
  • 权限:Looker CI Users 角色必须对 spoke 项目和导入的 hub 项目中的模型拥有 develop 权限。
  • 验证器行为:由于 spoke 项目是针对其正式版进行验证的,并且没有可供比较的开发分支 Git 状态,因此对于由导入的项目拉取请求触发的运行,系统会自动停用增量验证,无论套件设置如何。此外,我们建议在仅由导入的项目拉取请求触发的套件上停用 CI LookML 验证器和 CI 样式验证器,因为这些验证器仅检查 spoke 项目的文件,不受上游更改的影响。

如需将 spoke 项目配置为在向一个或多个导入的 hub 项目提交拉取请求时运行 CI 验证,请在 spoke 项目中创建或修改 CI 套件时,按照以下步骤操作:

  1. 启用在收到来自导入项目的拉取请求时触发切换开关。
  2. 在选择要订阅的上游项目下,选中每个应触发此 CI 套件运行的导入 hub 项目对应的复选框。您必须至少选择一个上游项目。

如果您希望对 Hub 项目所做的更改触发跨多个 Spoke 项目的验证运行,则必须在每个 Spoke 项目中配置 CI 套件。

保存 CI 套件后,Looker 会自动在每个所选 hub 项目的代码库中为拉取请求事件创建 webhook 订阅。当拉取请求提交到订阅的 hub 项目代码库时,Looker 会在 spoke 项目中触发 CI 运行。该运行会验证 spoke 项目的正式版,同时将导入的 hub 项目临时固定到拉取请求提交。Looker 会将 Spoke 项目的 CI 运行结果报告为 Hub 项目拉取请求的提交状态。您还可以在 Looker IDE 中 Spoke 项目的运行页面上查看运行详情,其中触发器列会显示项目导入,并且运行结果页面会包含项目导入部分。如需详细了解这些运行如何执行以及如何检查其结果,请参阅运行 CI 套件和查看 CI 运行的结果。

设置提醒

如需根据 CI 运行的状态接收邮件提醒,您可以为 CI 套件设置提醒。这样,您无需在 Looker IDE 中查看运行页面,即可监控持续集成运行。

如需为 CI 套件配置邮件提醒,请在创建或修改 CI 套件时按照以下步骤操作:

  1. 启用启用邮件提醒切换开关。
  2. 在电子邮件地址字段中,输入应接收提醒的电子邮件地址列表(以英文逗号分隔)。
  3. 使用复选框选择应触发提醒的作业状态:
    • 失败:当 CI 运行未通过验证测试时触发电子邮件。
    • 错误:当 CI 运行遇到系统或配置错误时触发电子邮件。
    • 通过:在 CI 运行成功完成时触发邮件。
    • 已取消:在 CI 运行被取消时触发电子邮件。

删除套件

如需删除 CI 套件,请执行以下步骤:

  1. 在 Looker IDE 中,点击 IDE 导航栏中的持续集成图标。
  2. 点击套件标签页,打开套件页面。
  3. 在套件页面上,点击相应套件的修改套件按钮。
  4. 在套件页面上,点击删除套件按钮。
  5. 在确认对话框中,点击删除套件按钮。