1. 소개

Jenkins 는 오늘날 가장 널리 사용되는 CI/CD 도구 중 하나입니다. 이를 통해 구축에서 배포에 이르기까지 소프트웨어 수명 주기의 모든 측면을 자동화할 수 있습니다.

이 사용방법(예제)에서는 Jenkins의 보다 강력한 기능 중 하나인 매개변수화된 빌드를 살펴보겠습니다.

2. 빌드 매개변수 정의

빌드 매개변수를 사용하면 데이터를 Jenkins 작업에 전달할 수 있습니다 . 빌드 매개변수를 사용하여 git 브랜치 이름, 비밀 자격 증명, 호스트 이름 및 포트 등 원하는 모든 데이터를 전달할 수 있습니다.

모든 Jenkins 작업 또는 파이프라인 을 매개변수화할 수 있습니다. 우리가 해야 할 일은 일반 설정 탭에서 이 프로젝트가 매개변수화되었습니다 .

그런 다음 매개변수 추가 버튼을 클릭 합니다. 여기에서 몇 가지 정보를 지정해야 합니다.

  • 유형 : 매개변수의 데이터 유형(문자열, 부울 등)
  • Name : 매개변수를 식별하는 이름
  • 기본값 : 사용자가 지정하지 않을 때 사용되는 선택적 값
  • 설명 : 매개변수가 사용되는 방법을 설명하는 선택적 텍스트

단일 Jenkins 작업 또는 파이프라인에는 여러 매개변수가 있을 수 있습니다 . 유일한 제한 사항은 매개변수 이름이 고유해야 한다는 것입니다.

2.1. 매개변수 유형

Jenkins는 여러 매개변수 유형을 지원합니다. 다음은 가장 일반적인 List이지만 플러그인마다 새 매개변수 유형을 추가할 수 있다는 점에 유의하십시오.

  • String : 문자와 숫자의 조합
  • Choice : 사용자가 값을 선택할 수 있는 미리 정의된 문자열 집합
  • 자격 증명 : 미리 정의된 Jenkins 자격 증명
  • File : 파일 시스템에 있는 파일의 전체 경로
  • 멀티 라인 문자열 : 같은 문자열 ,하지만 개행 문자를 허용
  • 암호 : 자격 증명 유형 과 유사 하지만 작업 또는 파이프라인에 특정한 일반 텍스트 매개변수를 전달할 수 있습니다.
  • Run : 다른 작업의 단일 실행에 대한 절대 URL

3. 빌드 매개변수 사용

하나 이상의 매개변수를 정의했으면 다음 단계는 매개변수를 활용하는 것입니다. 아래에서 매개변수 값에 액세스하는 다양한 방법을 살펴보겠습니다.

3.1. 전통적인 직업

전통적인 Jenkins 작업을 사용하여 하나 이상의 빌드 단계를 정의 합니다 . 가장 일반적인 빌드 단계는 셸 스크립트 또는 Windows 배치 명령을 실행하는 것 입니다.

packageType 이라는 빌드 매개변수가 있다고 가정해 보겠습니다 . 쉘 스크립트 내에서 쉘 구문을 사용하여 다른 환경 변수와 마찬가지로 빌드 매개변수에 액세스할 수 있습니다.

${packageType}

그리고 배치 명령을 사용하여 기본 Windows 구문을 사용합니다.

%packageType%

Gradle 작업이나 Maven 목표를 실행하는 빌드 단계를 만들 수도 있습니다. 이 두 단계 유형 모두 다른 환경 변수와 마찬가지로 빌드 매개변수에 액세스할 수 있습니다.

3.2. 파이프라인

Jenkins 파이프라인 내에서 빌드 매개변수에 액세스하는 것은 여러 가지 방법으로 수행할 수 있습니다.

먼저 모든 빌드 매개변수가 params 변수에 배치됩니다 . 즉, 점 표기법을 사용하여 매개변수 값에 액세스할 수 있습니다.

pipeline {
    agent any
    stages {
        stage('Build') {
            when {
                expression { params.jdkVersion == "14" }
            }
        }
    }
}

둘째, 빌드 매개변수가 파이프라인 환경에 추가됩니다. 이것은 쉘 스크립트를 실행하는 단계 내에서 더 짧은 쉘 구문을 사용할 수 있음을 의미합니다.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo "${packageType}"
            }
        }
    }
}

4. 매개변수 값 설정

지금까지 매개변수를 정의하고 Jenkins 작업 내에서 사용하는 방법을 살펴보았습니다. 마지막 단계는 작업을 실행할 때 매개변수에 대한 값을 전달하는 것입니다.

4.1. 젠킨스 UI

Jenkins UI로 작업을 시작하는 것은 빌드 매개변수를 전달하는 가장 쉬운 방법입니다. 로그인하고 작업으로 이동 한 다음 매개변수로 빌드 링크를 클릭하기만 하면 됩니다.

그러면 각 매개변수에 대한 입력을 요청하는 화면으로 이동합니다. 매개변수의 유형에 따라 값을 입력하는 방법이 다릅니다 .

예를 들어 문자열 매개변수는 일반 텍스트 필드로 표시됩니다. 부울 매개변수는 확인란으로 표시됩니다. 그리고 Choice 매개변수는 드롭다운 List으로 표시됩니다.

각 매개변수에 대한 값을 제공하고 나면 빌드 버튼을 클릭하기만 하면 Jenkins가 작업 실행을 시작합니다.

4.2. 원격 실행

Jenkins 작업은 원격 API 호출로 도 실행할 수 있습니다 . Jenkins 서버에서 작업에 대한 특수 URL을 호출하여 이를 수행합니다.

http://<JENKINS_URL>/job/<JOB_NAME>/buildWithParameters/packageType=war&jdkVersion=11&debug=true

이러한 요청은 POST 명령 으로 전송되어야 합니다 . 또한 HTTP 기본 인증을 사용하여 자격 증명을 제공해야 합니다.

curl 을 사용하는 전체 예를 살펴보겠습니다 .

curl -X POST --user user:apiToken \
    http://<JENKINS_URL>/job/<JOB_NAME>/buildWithParameters/packageType=war&jdkVersion=11&debug=true

사용자는 어떤 젠킨스 사용자가 될 수 있고, apiToken는 어떤 관련이 토큰 API 해당 사용자에 대해.

5. 결론

이 기사에서는 Jenkins 작업 및 파이프라인 모두에서 빌드 매개변수를 사용하는 방법을 살펴보았습니다. 빌드 매개변수는 모든 Jenkins 작업을 동적으로 만드는 강력한 방법이며 최신 CI/CD 파이프라인을 구축하는 데 필수적입니다.

Generic footer banner