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)
Copy to Clipboard

表3.65 git-clone ステップアクションでサポートされているパラメーター
パラメーター説明デフォルト値

OUTPUT_PATH

フェッチされた Git リポジトリーのディレクトリー。クローンされたリポジトリーデータは、ディレクトリーのルートまたは SUBDIRECTORY パラメーターで定義された相対パスに配置されます。

string

 

SSH_DIRECTORY_PATH

必要に応じて、秘密鍵、known_hostsconfig などのファイルを含む .ssh ディレクトリー。このディレクトリーを指定すると、タスクは Git リポジトリーへの認証にそれを使用します。認証情報を安全に保存するために、このディレクトリーを提供するワークスペースを Secret リソースにバインドします。

string

 

BASIC_AUTH_PATH

.gitconfig および .git-credentials ファイルを含むディレクトリー。このディレクトリーを指定すると、タスクはそのリポジトリーを Git リポジトリーへの認証に使用します。可能な場合は、認証に BASIC_AUTH_PATH ではなく SSH_DIRECTORY_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

 

SUBDIRECTORY

タスクが Git リポジトリーを配置する output ワークスペース内の相対パス。

string

 

USER_HOME

Pod 内の Git ユーザーのホームディレクトリーへの絶対パス。

string

/home/git

DELETE_EXISTING

Git 操作を実行する前に、デフォルトのワークスペースにコンテンツが存在する場合は削除します。

string

true

VERBOSE

実行したコマンドをログに記録します。

string

false

SSL_VERIFY

グローバル http.sslVerify 値。リモートリポジトリーを信頼していない限り、このパラメーターを false に設定しないでください。

string

true

URL

Git リポジトリー URL

string

 

リビジョン

チェックアウトするリビジョン (ブランチやタグなど)。

string

main

REFSPEC

リビジョンをチェックアウトする前にタスクが取得するリポジトリーの refspec 文字列。

string

 

SUBMODULES

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 にあるコミットのエポックタイムスタンプ。

cache-upload および cache-fetch

重要

cache-upload および cache-fetch ステップアクションの使用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

ビルドプロセスが依存関係を保持するキャッシュディレクトリーを保持するには、cache-upload および cache-fetch ステップアクションを使用し、Amazon Simple Storage Service (S3) バケット、Google Cloud Services (GCS) バケット、または Open Container Initiative (OCI) リポジトリーに保存します。

cache-upload ステップアクションを使用すると、ステップアクションはビルド内の特定のファイルに基づいてハッシュを計算します。これらのファイルを選択するには、正規表現を指定する必要があります。cache-upload ステップアクションは、ハッシュでインデックス付けされたキャッシュディレクトリーのコンテンツを含むイメージを保存します。

cache-fetch ステップアクションを使用すると、ステップアクションは同じハッシュを計算します。次に、このハッシュのキャッシュされたイメージがすでに利用可能かどうかを確認します。イメージが利用可能な場合、ステップアクションによってキャッシュされたコンテンツがキャッシュディレクトリーに設定されます。イメージが利用できない場合は、ディレクトリーはそのまま残ります。

cache-fetch ステップアクションを使用した後、ビルドプロセスを実行できます。キャッシュが正常に取得された場合、ビルドプロセスで以前にダウンロードした依存関係が含まれます。キャッシュが取得されなかった場合、ビルドプロセスの通常の手順で依存関係をダウンロードします。

cache-fetch の結果は、キャッシュされたイメージが取得されたかどうかを示します。後続の cache-upload ステップアクションでは、その結果を使用して、現在のハッシュのキャッシュがすでに利用可能であった場合は、新しいキャッシュイメージのアップロードをスキップできます。

次のサンプルタスクは、リポジトリーからソースを取得し、キャッシュ (使用可能な場合) を取得し、Maven ビルドを実行し、キャッシュが取得されなかった場合は、ビルドディレクトリーの新しいキャッシュイメージをアップロードします。

タスク内の cache-fetch および cache-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)
Copy to Clipboard

表3.67 cache-fetch ステップアクションでサポートされているパラメーター
パラメーター説明デフォルト値

patterns

ハッシュを計算するファイルを選択するための正規表現。たとえば、Go プロジェクトの場合、キャッシュを計算するために go.mod ファイルを使用できます。この場合、このパラメーターの値は **/go.sum になります (** はサブディレクトリーを表します (階層は問わない))。

array

 

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 ステップアクションが返す結果
結果説明

fetched

string

ステップがキャッシュをフェッチした場合は "true"、ステップがキャッシュをフェッチしていない場合は "false"

表3.69 cache-upload ステップアクションでサポートされているパラメーター
パラメーター説明デフォルト値

patterns

ハッシュを計算するファイルを選択するための正規表現。たとえば、Go プロジェクトの場合、キャッシュを計算するために go.mod ファイルを使用できます。この場合、このパラメーターの値は **/go.sum になります (** はサブディレクトリーを表します (階層は問わない))。

array

 

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"

fetched

"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 ステップアクションは結果を返しません。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat