5.2. 在 with Pipelines as Code 中使用远程任务注解
Pipelines as Code 支持在一个管道运行中使用注解来获取远程任务或管道。如果您在管道运行或 PipelineRun
或 PipelineSpec
对象中引用远程任务,Pipelines as Code 码解析器会自动包含它。如果在获取远程任务或解析它们时出现错误,Pipelines as Code 将停止处理任务。
要包含远程任务,请参阅以下注解示例:
引用 Tekton Hub 中的远程任务
在 Tekton Hub 中引用单个远程任务。
... pipelinesascode.tekton.dev/task: "git-clone" 1 ...
- 1
- Pipelines as Code 包括来自 Tekton Hub 的任务的最新版本。
引用 Tekton Hub 中的多个远程任务
... pipelinesascode.tekton.dev/task: "[git-clone, golang-test, tkn]" ...
使用
-<NUMBER>
后缀引用 Tekton Hub 中的多个远程任务。... pipelinesascode.tekton.dev/task: "git-clone" pipelinesascode.tekton.dev/task-1: "golang-test" pipelinesascode.tekton.dev/task-2: "tkn" 1 ...
- 1
- 默认情况下,Pipelines as Code 会将字符串解析为从 Tekton Hub 获取最新的任务。
引用 Tekton Hub 中的远程任务的特定版本。
... pipelinesascode.tekton.dev/task: "[git-clone:0.1]" 1 ...
- 1
- 引用 Tekton Hub 中的
git-clone
远程任务的0.1
版本。
使用 URL 的远程任务
...
pipelinesascode.tekton.dev/task: "<https://remote.url/task.yaml>" 1
...
- 1
- 远程任务的公共 URL。注意
如果使用 GitHub,远程任务 URL 使用与
Repository
自定义资源定义 (CRD) 相同的主机,Pipelines as Code 会使用 GitHub 令牌并使用 GitHub API 获取 URL。例如,您有一个类似
https://github.com/<organization>/<repository>
的存储库 URL,远程 HTTP URL 引用一个与https://github.com/<organization>/<repository>/blob/<mainbranch>/<path>/<file>
类似的 GitHub blob,Pipelines as Code 会使用 GitHub App 令牌从私有存储库中抓取任务定义。当您使用公共 GitHub 存储库时,Pipelines as Code 的行为与 GitHub 原始 URL(如
https://raw.githubusercontent.com/<organization>/<repository>/<mainbranch>/<path>/<file>
)类似。- GitHub App 令牌的范围为所有者或存储库所在的机构。使用 GitHub Webhook 方法时,您可以在允许个人令牌的任何机构中获取任何私有或公共存储库。
从存储库内的 YAML 文件中引用任务
...
pipelinesascode.tekton.dev/task: "<share/tasks/git-clone.yaml>" 1
...
- 1
- 到包含任务定义的本地文件的相对路径。