5.5. 过滤与管道运行匹配的事件的注解
您可以在管道运行中添加一个或多个注解,以过滤与此管道运行匹配的事件。在这种情况下,当定义的匹配事件(如拉取请求、推送事件或注释)发生时,Pipelines as Code 会检查这些注解是否也匹配。只有在您添加到它的所有注解都匹配时,才会启动管道运行。
5.5.1. 匹配管道运行的路径中的更改
您可以将管道运行与一组路径的更改匹配。只有在拉取请求或推送事件包含您列表的路径更改时,Pipelines as Code 才会启动管道运行。
*
通配符表示目录中的任何文件。**
通配符表示目录或目录中任何级别的子目录中的任何文件。
当拉取请求更改 pkg
目录、cli
目录或 cli
目录下的任何文件时,您可以使用以下示例匹配 pipeline-pkg-or-cli
管道运行。
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: pipeline-pkg-or-cli annotations: pipelinesascode.tekton.dev/on-path-changed: "[pkg/*, cli/**]" # ...
5.5.2. 排除与管道运行匹配的路径的更改
如果拉取请求只对指定路径集合中的文件进行更改,您可以将管道运行配置为排除匹配。如果管道运行与事件匹配,但拉取请求只包含对您列出的路径中的文件的更改,Pipelines as Code 不会启动管道运行。
当拉取请求更改 docs
/generated 目录或其子目录下的任何文件时,您可以使用以下示例匹配
pipeline 运行。
pipeline-docs-not-generated
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: pipeline-docs-not-generated annotations: pipelinesascode.tekton.dev/on-path-changed: "[docs/**]" pipelinesascode.tekton.dev/on-path-changed-ignore: "[docs/generated/**]" # ...
当拉取请求以 main
分支为目标时,您可以使用以下示例匹配 pipeline-main-not-docs
pipeline 运行,除非更改只应用到 docs
目录或其子目录。
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: pipeline-main-not-docs annotations: pipelinesascode.tekton.dev/on-target-branch: "[main]" pipelinesascode.tekton.dev/on-event: "[pull_request]" pipelinesascode.tekton.dev/on-path-changed-ignore: "[docs/**]" # ...
5.5.3. 将拉取请求标签匹配到管道运行
将拉取请求标签与管道运行匹配只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以将管道运行与一个或多个拉取请求标签匹配。Pipelines as Code 仅在拉取请求有这些标签时启动管道运行。当使用新提交更新拉取请求时,如果标签仍然存在,Pipelines as Code 会再次运行管道。
当 bug
标签或 defect
标签添加到拉取请求时,您可以使用以下示例匹配 pipeline-bug-or-defect
管道运行,以及使用这个标签的拉取请求使用新的提交更新时:
apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: pipeline-bug-or-defect annotations: pipelinesascode.tekton.dev/on-label: "[bug, defect]" # ...
当前版本的 Pipelines as Code 支持匹配事件,以仅拉取 GitHub、Gitea 和 GitLab 存储库托管服务提供商的请求标签。
其他资源