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 Toggle word wrap

Expand
표 3.65. git-clone 단계 작업에 지원되는 매개변수
매개변수설명유형기본값

OUTPUT_PATH

가져온 Git 리포지토리의 디렉터리입니다. 복제된 리포지토리 데이터는 디렉터리의 루트 또는 SUBDIRECTORY 매개변수에 정의된 상대 경로에 배치됩니다.

string

 

SSH_DIRECTORY_PATH

필요에 따라 개인 키, known_hosts,config 및 기타 파일이 있는 .ssh 디렉터리입니다. 이 디렉터리를 제공하는 경우 작업은 Git 리포지토리에 대한 인증에 이 디렉터리를 사용합니다. 인증 정보의 보안 저장을 위해 이 디렉터리를 Secret 리소스에 제공하는 작업 공간을 바인딩합니다.

string

 

BASIC_AUTH_PATH

.gitconfig.git-credentials 파일이 포함된 디렉터리입니다. 이 directgory를 제공하는 경우 작업은 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

 

하위 디렉터리

작업이 Git 리포지토리를 배치하는 출력 작업 공간의 상대 경로입니다.

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

가져올 커밋 수, "shallow clone"은 단일 커밋입니다.

string

1

SPARSE_CHECKOUT_DIRECTORIES

"스parse 체크아웃"을 수행하기 위해 쉼표로 구분된 디렉터리 패턴 목록입니다.

string

 
Expand
표 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 단계 작업을 사용하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

cache-uploadcache-fetch 단계 작업을 사용하여 빌드 프로세스가 종속 항목을 유지하고 Amazon Simple Storage Service(GCS) 버킷 또는 OCI(Open Container Initiative) 리포지토리에 저장하는 캐시 디렉터리를 보존합니다.

cache-upload 단계 작업을 사용하면 단계 작업이 빌드의 특정 파일에 따라 해시를 계산합니다. 이러한 파일을 선택하려면 정규식을 제공해야 합니다. cache-upload 단계 작업은 해시로 인덱싱되는 캐시 디렉터리의 콘텐츠가 포함된 이미지를 저장합니다.

cache-fetch 단계 작업을 사용하면 단계 작업이 동일한 해시를 계산합니다. 그런 다음 이 해시의 캐시된 이미지를 사용할 수 있는지 확인합니다. 이미지를 사용할 수 있는 경우 단계 작업은 캐시 디렉터리를 캐시된 콘텐츠로 채웁니다. 이미지를 사용할 수 없는 경우 디렉터리는 그대로 유지됩니다.

cache-fetch 단계 작업을 사용한 후 빌드 프로세스를 실행할 수 있습니다. 캐시를 성공적으로 가져오는 경우 빌드 프로세스에서 이전에 다운로드한 종속 항목이 포함됩니다. 캐시를 가져오지 않은 경우 빌드 프로세스는 일반 절차를 통해 종속성을 다운로드합니다.

cache-fetch 의 결과는 캐시된 이미지를 가져올지 여부를 나타냅니다. 후속 cache-upload 단계 작업은 결과를 사용하고 현재 해시의 캐시를 이미 사용할 수 있는 경우 새 캐시 이미지 업로드를 건너뛸 수 있습니다.

다음 예제 작업에서는 리포지토리에서 소스를 검색하고 캐시를 가져오고(사용 가능한 경우) 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)
Copy to Clipboard Toggle word wrap

Expand
표 3.67. cache-fetch 단계 작업에 지원되는 매개변수
매개변수설명유형기본값

패턴

해시를 계산할 파일을 선택하기 위한 정규식입니다. 예를 들어 Go 프로젝트의 경우 go.mod 파일을 사용하여 캐시를 계산한 다음 이 매개변수의 값은 **/go.sum 입니다(여기서 ** 는 임의의 깊이의 하위 디렉터리 계정).

array

 

소스

캐시를 가져오기 위한 소스 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

 
Expand
표 3.68. cache-fetch 단계 작업이 반환되는 결과
결과유형설명

가져 오기

string

단계에서 캐시를 가져오지 않은 경우 "true", 캐시 또는 "false" 를 가져옵니다.

Expand
표 3.69. cache-upload 단계 작업에 지원되는 매개변수
매개변수설명유형기본값

패턴

해시를 계산할 파일을 선택하기 위한 정규식입니다. 예를 들어 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"

가져 오기

"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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat