5.4.2. 파이프라인 빌드를 위한 Jenkins 파일 제공

중요

파이프라인 빌드 전략은 OpenShift Container Platform 4에서 더 이상 사용되지 않습니다. 동등하고 향상된 기능은 Tekton 기반 OpenShift Container Platform Pipelines에 있습니다.

OpenShift Container Platform의 Jenkins 이미지는 완전히 지원되며 사용자는 Jenkins 사용 설명서를 따라 작업에 jenkinsfile을 정의하거나 소스 제어 관리 시스템에 저장해야 합니다.

jenkinsfile에서는 표준 Groovy 언어 구문을 사용하여 애플리케이션의 구성, 빌드, 배포를 세부적으로 제어할 수 있습니다.

다음 방법 중 하나로 jenkinsfile을 제공할 수 있습니다.

  • 소스 코드 리포지토리에 있는 파일
  • jenkinsfile 필드를 사용하여 빌드 구성의 일부로 포함

첫 번째 옵션을 사용하는 경우 다음 위치 중 하나의 애플리케이션 소스 코드 리포지토리에 jenkinsfile을 포함해야 합니다.

  • 리포지토리 루트에 있는 jenkinsfile이라는 파일
  • 리포지토리의 소스 contextDir 루트에 있는 jenkinsfile이라는 파일
  • BuildConfig의 JenkinsPipelineStrategy 섹션에 있는 jenkinsfilePath 필드를 통해 지정되는 파일 이름(제공되는 경우 소스 contextDir에 상대적이고 제공되지 않는 경우 기본값은 리포지토리의 루트임)

jenkinsfile은 Jenkins 에이전트 Pod에서 실행됩니다. OpenShift Container Platform DSL을 사용하려면 해당 Pod에 사용 가능한 OpenShift Container Platform 클라이언트 바이너리가 있어야 합니다.

프로세스

다음 중 하나를 수행하여 Jenkins 파일을 제공할 수 있습니다.

  • 빌드 구성에 Jenkins 파일 포함
  • 빌드 구성에 Jenkins 파일이 포함된 Git 리포지토리에 대한 참조 포함

포함된 정의

kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "sample-pipeline"
spec:
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfile: |-
        node('agent') {
          stage 'build'
          openshiftBuild(buildConfig: 'ruby-sample-build', showBuildLogs: 'true')
          stage 'deploy'
          openshiftDeploy(deploymentConfig: 'frontend')
        }

Git 리포지토리에 대한 참조

kind: "BuildConfig"
apiVersion: "v1"
metadata:
  name: "sample-pipeline"
spec:
  source:
    git:
      uri: "https://github.com/openshift/ruby-hello-world"
  strategy:
    jenkinsPipelineStrategy:
      jenkinsfilePath: some/repo/dir/filename 1

1
선택적 jenkinsfilePath 필드는 소스 contextDir에 상대적으로 사용할 파일의 이름을 지정합니다. contextDir이 생략된 경우 기본값은 리포지토리의 루트입니다. jenkinsfilePath가 생략된 경우 기본값은 jenkinsfile입니다.