1.12. 使用 Pipelines as Code 解析器


Pipelines as Code 解析器可确保运行的管道运行不会与其他其它运行冲突。

要分割您的管道和管道运行,请将文件存储在 .tekton/ 目录或其子目录中。

如果 Pipelines as Code 在 .tekton/ 目录中的任何 YAML 文件中发现一个带有对任务或管道的引用的管道运行,Pipelines as Code 会自动解析引用的任务,以使用 PipelineRun 对象中嵌入的 spec 提供单个管道运行。

如果 Pipelines as Code 无法解析 PipelinePipelineSpec 定义中引用的任务,则运行会在对集群应用更改前失败。您可以在 Git 供应商平台上查看问题,在 Repository CR 所在的目标命名空间的事件内。

当解析器观察到以下类型的任务时会跳过解析过程:

  • 对一个集群任务的引用。
  • 任务或管道捆绑包。
  • 具有没有 tekton.dev/ 前缀的 API 版本的自定义任务。

解析器以字面形式使用此类任务,不进行任何转换。

如果要在拉取请求中发送它之前在本地对管道运行进行测试,请使用 tkn pac resolve 命令。

您还可以引用远程管道和任务。

Pipelines as Code 支持在一个管道运行中使用注解来获取远程任务或管道。如果您在管道运行或 PipelineRunPipelineSpec 对象中引用远程任务,Pipelines as Code 码解析器会自动包含它。如果在获取远程任务或解析它们时出现错误,Pipelines as Code 将停止处理任务。

要包含远程任务,请参阅以下注解示例:

引用 Tekton Hub 中的远程任务

  • 在 Tekton Hub 中引用单个远程任务。

    ...
      pipelinesascode.tekton.dev/task: "git-clone" 
    1
    
    ...
    Copy to Clipboard Toggle word wrap
    1
    Pipelines as Code 包括来自 Tekton Hub 的任务的最新版本。
  • 引用 Tekton Hub 中的多个远程任务

    ...
      pipelinesascode.tekton.dev/task: "[git-clone, golang-test, tkn]"
    ...
    Copy to Clipboard Toggle word wrap
  • 使用 -<NUMBER> 后缀引用 Tekton Hub 中的多个远程任务。

    ...
      pipelinesascode.tekton.dev/task: "git-clone"
      pipelinesascode.tekton.dev/task-1: "golang-test"
      pipelinesascode.tekton.dev/task-2: "tkn" 
    1
    
    ...
    Copy to Clipboard Toggle word wrap
    1
    默认情况下,Pipelines as Code 会将字符串解析为从 Tekton Hub 获取最新的任务。
  • 引用 Tekton Hub 中的远程任务的特定版本。

    ...
      pipelinesascode.tekton.dev/task: "[git-clone:0.1]" 
    1
    
    ...
    Copy to Clipboard Toggle word wrap
    1
    引用 Tekton Hub 中的 git-clone 远程任务的 0.1 版本。

使用 URL 的远程任务

...
  pipelinesascode.tekton.dev/task: "<https://remote.url/task.yaml>" 
1

...
Copy to Clipboard Toggle word wrap

1
远程任务的公共 URL。
注意

从存储库内的 YAML 文件中引用任务

...
pipelinesascode.tekton.dev/task: "<share/tasks/git-clone.yaml>" 
1

...
Copy to Clipboard Toggle word wrap

1
到包含任务定义的本地文件的相对路径。

1.12.2. 在 Pipelines as Code 中使用远程管道注解

您可以使用远程管道注解在多个存储库间共享管道定义。

...
    pipelinesascode.tekton.dev/pipeline: "<https://git.provider/raw/pipeline.yaml>" 
1

...
Copy to Clipboard Toggle word wrap
1
远程管道定义的 URL。您还可以为同一存储库中的文件提供位置。
注意

您只能使用注解引用一个管道定义。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat