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: CACHE_PATH
       value: $(workspaces.source.path)/cache
     - name: WORKING_DIR
       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: CACHE_PATH
         value: $(workspaces.source.path)/cache
       - name: WORKING_DIR
         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

 

SOURCE

캐시를 가져오기 위한 소스 URI입니다. {{hash}} 를 사용하여 캐시 해시를 지정합니다. 지원되는 유형은 oci (예: oci://quay.io/example-user/go-cache:{{hash}}) 및 s3 (예: s3://example-bucket/{{hash}})입니다.

string

 

CACHE_PATH

캐시 콘텐츠를 추출하는 경로입니다. 일반적으로 이 경로는 작업 공간에 있습니다.

string

 

WORKING_DIR

해시 계산을 위한 파일이 있는 경로입니다.

string

 

INSECURE

"true" 인 경우 캐시를 가져오는 데 비보안 모드를 사용합니다.

string

"false"

GOOGLE_APPLICATION_CREDENTIALS

Google 인증 정보가 있는 경로입니다. 비어 있는 경우 무시됩니다.

string

 

AWS_CONFIG_FILE

AWS 구성 파일의 경로입니다. 비어 있는 경우 무시됩니다.

string

 

AWS_SHARED_CREDENTIALS_FILE

AWS 인증 정보 파일의 경로입니다. 비어 있는 경우 무시됩니다.

string

 

BLOB_QUERY_PARAMS

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

 

대상

캐시 업로드를 위한 대상 URI입니다. {{hash}} 를 사용하여 캐시 해시를 지정합니다. 지원되는 유형은 oci (예: oci://quay.io/example-user/go-cache:{{hash}}) 및 s3 (예: s3://example-bucket/{{hash}})입니다.

string

 

CACHE_PATH

단계에서 이미지로 패키지하는 캐시 콘텐츠 경로입니다. 일반적으로 이 경로는 작업 공간에 있습니다.

string

 

WORKING_DIR

해시 계산을 위한 파일이 있는 경로입니다.

string

 

INSECURE

"true" 인 경우 캐시를 업로드하는 데 비보안 모드를 사용합니다.

string

"false"

가져 오기

"true" 인 경우 이 해시의 캐시를 이미 가져왔습니다.

string

"false"

FORCE_CACHE_UPLOAD

"true" 인 경우 이전에 가져온 경우에도 단계에서 캐시를 업로드합니다.

string

"false"

GOOGLE_APPLICATION_CREDENTIALS

Google 인증 정보가 있는 경로입니다. 비어 있는 경우 무시됩니다.

string

 

AWS_CONFIG_FILE

AWS 구성 파일의 경로입니다. 비어 있는 경우 무시됩니다.

string

 

AWS_SHARED_CREDENTIALS_FILE

AWS 인증 정보 파일의 경로입니다. 비어 있는 경우 무시됩니다.

string

 

BLOB_QUERY_PARAMS

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