触发 PAC Pipelines
本页说明在仓库连接后 PAC 如何启动 PipelineRun。要定义 PAC 选择的 .tekton/ 文件,请参阅 在 Git 中定义 PipelineRun。
PAC 通过两种方式触发 pipeline:
- 自动事件触发器:Git provider 发送 webhook 事件,PAC 将这些事件与
PipelineRun文件上的注解进行匹配。 - 评论命令触发器:授权用户通过评论输入 PAC 命令,例如
/test、/retest或/cancel。
自动事件触发器
自动触发器由 .tekton/ 下每个 PipelineRun 中的注解控制。PAC 从触发事件的 Git ref 中读取 PipelineRun 定义,匹配这些注解,替换 PAC 变量,并在 Repository 命名空间中创建匹配的 PipelineRun。
下表说明应使用哪种事件源。有关精确的注解语法和示例,请参阅 触发事件。
对于特定仓库的命令,例如 /deploy-preview,请使用自定义评论触发器。需要 PAC 原生的 rerun、test、cancel 或 approval 行为时,请使用下面的内置 PAC 命令。
有关更多匹配选项,请参阅 Pipelines as Code 事件匹配文档。
评论命令触发器
PAC 还会识别评论中的内置 GitOps 命令。这些命令适用于在不推送另一个 commit 的情况下运行、重新运行、批准或取消 pipeline。
Pull Request 和 Merge Request 上的命令
在打开的 PR 或 MR 上使用以下命令:
<pipelinerun> 是 .tekton/ 文件中的 metadata.name 或 metadata.generateName 值,而不是生成的运行时名称。例如,如果文件中有 generateName: sv-event-pr-,请使用:
Commit 评论上的命令
GitHub 和 GitLab 支持在添加到已推送分支 commit 的评论中使用 /test、/retest 和 /cancel。/ok-to-test 用于 PR/MR 授权,不适用于已推送的 commit。
在对 commit 发表评论时,PAC 必须知道要使用哪个分支或 tag 上下文。如果未指定,PAC 将使用仓库默认分支。被评论的 commit 必须是该分支的 HEAD commit,或者是 tag 指向的 commit。
当 commit 属于非默认分支时,请使用 branch:<branch>:
当命令应在 tag 上下文中运行时,请使用 tag:<tag>。tag 评论命令目前仅支持 GitHub App 和 GitHub webhook 集成:
/retest 和 /cancel 也接受相同的 branch 参数。在受支持的 GitHub tag 评论中,也接受 tag 参数:
在命令中传递参数
内置命令可以包含 key=value 参数。PAC 会从评论中解析这些参数,并可使用它们覆盖在 Repository.spec.params 中定义的自定义参数或受支持的标准变量:
仅会应用已为 Repository 定义或可被 PAC 识别的参数。任意键都会被忽略。
Provider 说明
有关更多命令详细信息,请参阅 Pipelines as Code GitOps 命令文档。
验证触发器
在发送事件或评论后,请检查定义 Repository CR 的命名空间中的 PipelineRun:
如果未创建 PipelineRun,请检查事件注解和 PAC controller 日志:
常见检查项:
后续步骤
- 在 Git 中定义 PipelineRun - PipelineRun 文件和触发注解
- Incoming Webhooks - 面向外部系统的直接 HTTP 触发器
- 常见问题 - 故障排查指南