3.9. OpenShift Pipelines 提供的步骤操作定义


OpenShift Pipelines 提供您可以在任务中使用的标准 StepAction 定义。使用集群解析器引用这些定义。

git-clone

git-clone 步骤操作使用 Git 在工作区上初始化并克隆远程存储库。您可以使用这一步操作来定义在构建或以其他方式处理此源代码的管道开始时克隆存储库的任务。

在任务中使用 git-clone 步骤操作的示例

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: clone-repo-anon
spec:
# ...
  steps:
  - name: clone-repo-step
    ref:
      resolver: cluster
      params:
      - name: name
        value: git-clone
      - name: namespace
        value: openshift-pipelines
      - name: kind
        value: stepaction
    params:
    - name: URL
      value: $(params.url)
    - name: OUTPUT_PATH
      value: $(workspaces.output.path)

表 3.65. git-clone 步骤操作支持的参数
参数描述类型默认值

OUTPUT_PATH

获取的 Git 存储库的目录。克隆的存储库数据放置在目录的根目录中,或放在 SUBDIRECTORY 参数定义的相对路径中

string

 

SSH_DIRECTORY_PATH

根据需要,带有私钥、known_hosts、配置 及其他文件的 .ssh 目录。如果提供此目录,任务会使用它来对 Git 存储库进行身份验证。将提供此目录的工作空间绑定到 Secret 资源,以安全存储身份验证信息。

string

 

BASIC_AUTH_PATH

包含 .gitconfig.git-credentials 文件的目录。如果您提供此直接尝试,任务会使用它来对 Git 存储库进行身份验证。尽可能使用 SSH_DIRECTORY_PATH 目录进行身份验证,而不是 BASIC_AUTH_PATH。将提供此目录的工作空间绑定到 Secret 资源,以安全存储身份验证信息。

string

 

SSL_CA_DIRECTORY_PATH

包含 CA 证书的工作区。如果您提供此工作区,Git 将使用这些证书在与使用 HTTPS 与远程存储库交互时验证对等证书。

string

 

CRT_FILENAME

ssl-ca-directory 工作区中的证书颁发机构(CA)捆绑包文件名。

string

ca-bundle.crt

HTTP_PROXY

HTTP 代理服务器(非 TLS 请求)。

string

 

HTTPS_PROXY

HTTPS 代理服务器(TLS 请求)。

string

 

NO_PROXY

选择不使用代理 HTTP/HTTPS 请求。

string

 

子目录

任务放置 Git 存储库 的输出 工作区中的相对路径。

string

 

USER_HOME

pod 中 Git 用户主目录的绝对路径。

string

/home/git

DELETE_EXISTING

在运行 Git 操作前,删除默认工作区的内容(如果存在)。

string

true

详细

记录已执行的命令。

string

false

SSL_VERIFY

全局 http.sslVerify 值。除非信任远程存储库,否则不要将此参数设置为 false

string

true

URL

Git 存储库 URL。

string

 

修订

要签出的修订版本,如分支或标签。

string

main

REFSPEC

任务在签出修订版本前获取的存储库的 refspec 字符串。

string

 

子模块

初始化并获取 Git 子模块。

string

true

DEPTH

要抓取的提交数,"允许克隆"是一个提交。

string

1

SPARSE_CHECKOUT_DIRECTORIES

执行"稀疏签出"的目录模式列表,用逗号分开。

string

 
表 3.66. git-clone 步骤操作返回的结果
结果类型描述

COMMIT

string

位于克隆的 Git 存储库中的当前分支 HEAD 的 SHA 摘要。

URL

string

克隆的存储库的 URL。

COMMITTER_DATE

string

克隆的 Git 存储库中的当前分支的 HEAD 的 epoch 时间戳。

cache-upload 和 cache-fetch

重要

使用 cache-uploadcache-fetch 步骤操作只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

使用 cache-uploadcache-fetch 步骤操作来保留构建流程保留其依赖项的缓存目录,将其存储在 Amazon Simple Storage Service (S3)存储桶、Google Cloud Services (GCS)存储桶或 Open Container Initiative (OCI)存储库中。

当您使用 cache-upload step 操作时,步骤操作会根据构建中的某些文件计算一个哈希值。您必须提供正则表达式来选择这些文件。cache-upload step 操作存储包含缓存目录内容的镜像,使用哈希进行索引。

当您使用 cache-fetch step 操作时,step 操作会计算相同的哈希值。然后,它会检查此哈希的缓存镜像是否已可用。如果镜像可用,step 操作使用缓存的内容填充您的缓存目录。如果镜像不可用,则该目录保留原样。

使用 cache-fetch step 操作后,您可以运行构建过程。如果成功获取缓存,它将包含之前下载的构建过程的依赖项。如果没有获取缓存,构建过程会通过其正常流程下载依赖项。

cache-fetch 的结果指示是否获取缓存的镜像。后续的 cache-upload step 操作可以使用结果,并在当前哈希的缓存可用时跳过上传新的缓存镜像。

以下示例任务从存储库检索源,获取缓存(如果可用),运行 Maven 构建,然后在未获取缓存时上传构建目录的新缓存镜像。

在任务中使用 cache-fetchcache-upload 步骤操作示例

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: java-demo-task
spec:
  workspaces:
  - name: source
  params:
  - name: repo_url
    type: string
    default: https://github.com/sample-organization/sample-java-project.git
  - name: revision
    type: string
    default: main
  - name: registry
    type: string
    default: image-registry.openshift-image-registry.svc:5000/sample-project/mvn-cache
  - name: image
    type: string
    default: openjdk:latest
  - name: buildCommand
    type: string
    default: "maven -Dmaven.repo.local=${LOCAL_CACHE_REPO} install"
  - name: cachePatterns
    type: array
    default: ["**pom.xml"]
  - name: force-cache-upload
    type: string
    default: "false"
  steps:
   - name: create-repo
     image: $(params.image)
     script: |
       mkdir -p $(workspaces.source.path)/repo
       chmod 777 $(workspaces.source.path)/repo
   - name: fetch-repo
     ref:
       resolver: cluster
       params:
       - name: name
         value: git-clone
       - name: namespace
         value: openshift-pipelines
       - name: kind
         value: stepaction
     params:
       - name: OUTPUT_PATH
         value: $(workspaces.source.path)/repo
       - name: URL
         value: $(params.repo_url)
       - name: REVISION
         value: $(params.revision)
   - name: cache-fetch
     ref:
       resolver: cluster
       params:
       - name: name
         value: cache-fetch
       - name: namespace
         value: openshift-pipelines
       - name: kind
         value: stepaction
     params:
     - name: patterns
       value: $(params.cachePatterns)
     - name: source
       value: oci://$(params.registry):{{hash}}
     - name: cachePath
       value: $(workspaces.source.path)/cache
     - name: workingdir
       value: $(workspaces.source.path)/repo
   - name: run-build
     image: $(params.image)
     workingDir: $(workspaces.source.path)/repo
     env:
       - name: LOCAL_CACHE_REPO
         value: $(workspaces.source.path)/cache/repo
     script: |
       set -x
       $(params.buildCommand)
       echo "Cache size is $(du -sh $(workspaces.source.path)/cache)"
   - name: cache-upload
     ref:
       resolver: cluster
       params:
       - name: name
         value: cache-upload
       - name: namespace
         value: openshift-pipelines
       - name: kind
         value: stepaction
     params:
       - name: patterns
         value: $(params.cachePatterns)
       - name: target
         value: oci://$(params.registry):{{hash}}
       - name: cachePath
         value: $(workspaces.source.path)/cache
       - name: workingdir
         value: $(workspaces.source.path)/repo
       - name: force-cache-upload
         value: $(params.force-cache-upload)

表 3.67. cache-fetch 步骤操作支持的参数
参数描述类型默认值

模式

用于选择要计算哈希的文件的正则表达式。例如,对于 Go 项目,您可以使用 go.mod 文件计算缓存,然后此参数的值为 **/go.sum (任何深度子目录的 ** 帐户)。

数组

 

source

用于获取缓存的源 URI;使用 {{hash}} 指定缓存哈希。支持的类型是 oci (例如: oci://quay.io/example-user/go-cache:{{hash}})和 s3 (示例: s3://example-bucket/{{hash}}

string

 

cachePath

用于提取缓存内容的路径。通常,此路径位于工作区中。

string

 

workingDir

计算哈希的文件所在的路径。

string

 

insecure

如果为 "true",请使用不安全的模式获取缓存。

string

"false"

googleCredentialsPath

Google 凭证所在的路径。如果为空,则忽略。

string

 

awsConfigFile

AWS 配置文件的路径。如果为空,则忽略。

string

 

awsCredentialFile

AWS 凭证文件的路径。如果为空,则忽略。

string

 

blobQueryParams

用于配置 S3、GCS 或 Azure 的 blob 查询参数。这些可选参数用于其他功能,如 S3 加速、FIPS 或路径式寻址。

string

 
表 3.68. cache-fetch step 操作返回的结果
结果类型描述

获取

string

"true" 如果步骤没有获取缓存,则为 "false "。

表 3.69. cache-upload 步骤操作支持的参数
参数描述类型默认值

模式

用于选择要计算哈希的文件的正则表达式。例如,对于 Go 项目,您可以使用 go.mod 文件计算缓存,然后此参数的值为 **/go.sum (任何深度子目录的 ** 帐户)。

数组

 

target

用于上传缓存的目标 URI;使用 {{hash}} 指定缓存哈希。支持的类型是 oci (例如: oci://quay.io/example-user/go-cache:{{hash}})和 s3 (示例: s3://example-bucket/{{hash}}

string

 

cachePath

缓存内容的路径,将步骤打包到镜像中。通常,此路径位于工作区中。

string

 

workingDir

计算哈希的文件所在的路径。

string

 

insecure

如果为 "true",请使用不安全的模式来上传缓存。

string

"false"

获取

如果为 "true",则已获取此哈希的缓存。

string

"false"

force-cache-upload

如果为 "true",则步骤会上传缓存,即使之前获取了缓存。

string

"false"

googleCredentialsPath

Google 凭证所在的路径。如果为空,则忽略。

string

 

awsConfigFile

AWS 配置文件的路径。如果为空,则忽略。

string

 

awsCredentialFile

AWS 凭证文件的路径。如果为空,则忽略。

string

 

blobQueryParams

用于配置 S3、GCS 或 Azure 的 blob 查询参数。这些可选参数用于其他功能,如 S3 加速、FIPS 或路径式寻址。

string

 

cache-upload step 操作不返回任何结果。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.