IBM Cloud Docs
빌드 레코드 공개

빌드 레코드 공개

프로젝트를 IBM Cloud® DevOps Insights에 통합하기 위해 Jenkins를 사용하여 빌드 레코드를 공개할 수 있습니다. 빌드가 완료되면 빌드 레코드를 통해 DevOps Insights에 알립니다. 이 레코드는 애플리케이션 이름, 분기, 빌드 ID, Git 저장소에 대한 참조 및 기타 필드를 포함합니다. DevOps Insights에서 테스트 레코드, 배치 레코드 또는 평가 정책을 보려면 빌드 레코드를 공개해야 합니다.

IBM Cloud® DevOps Insights에서는 공개된 테스트 데이터를 기반으로 배치 위험성을 추적합니다. Jenkins를 DevOps Insights에 통합하는 경우 DevOps Insights를 계측하여 Jenkins 프로젝트에서 정보를 수집할 수 있습니다. 수집되는 정보는 DevOps Insights 대시보드에 표시되며 DevOps 프로세스에 대한 가시성을 제공합니다.

시작하기 전에

도구 체인이 있어야 합니다. 자세한 정보는 도구 체인 작성을 참조하십시오.

앱의 도구 체인에 Jenkins 도구를 추가하십시오. 자세한 정보는 Jenkins 구성을 참조하십시오.

Jenkins를 사용하여 빌드 레코드 공개

이러한 변수는 파이프라인을 DevOps Insights와 통합하기 위해 필요합니다.

Jenkins 환경 변수 및 정의
환경 변수 정의
IBM_CLOUD_DEVOPS_API_KEY 호출 애플리케이션 또는 사용자를 식별하기 위해 API(Application Programming Interface)에 전달되는 고유 코드입니다. API 키를 Jenkins 신임 정보로 저장하십시오(시크릿 텍스트 유형).
IBM_CLOUD_DEVOPS_APP_NAME 도구 체인이 배치하는 애플리케이션의 이름입니다. applicationName 매개변수가 단계 작업으로 전달되는 경우 해당 단계에서 이 값이 무시됩니다.
IBM_CLOUD_DEVOPS_TOOLCHAIN_ID 도구 체인의 ID입니다.

각각의 명령에 대해 도구 체인 ID를 지정하여 환경 변수를 내보내야 합니다. 이러한 환경 변수 및 인증 정보는 IBM Cloud® DevOps Insights 플러그인에서 DevOps Insights와 상호작용하기 위해 사용됩니다. 다음은 이러한 항목을 선언적 파이프라인 형식으로 설정하는 예제입니다.

environment {
        IBM_CLOUD_DEVOPS_API_KEY = credentials('BM_API_KEY')
        IBM_CLOUD_DEVOPS_APP_NAME = 'Weather-App'
        IBM_CLOUD_DEVOPS_TOOLCHAIN_ID = '1111111-aaaa-2222-bbbb-333333333'
    }

API 키를 작성하는 방법에 대한 자세한 정보는 사용자 API 키 관리를 참조하십시오.

도구 체인 ID에 대한 자세한 정보는 도구 체인 ID 식별을 참조하십시오.

publishBuildRecord 단계를 사용하여 빌드 레코드를 공개하십시오. 이 단계에는 4개의 매개변수가 필요합니다. 하나의 선택적 매개변수도 사용할 수 있습니다.

빌드 레코드 매개변수 및 정의 게시
매개변수 정의
gitBranch 빌드에서 사용하는 Git Branch의 이름입니다.
gitCommit 빌드에서 사용하는 Git 커미트 ID입니다.
gitRepo Git 저장소의 URL입니다.
result 빌드 단계의 결과입니다. 값은 SUCCESS 또는 FAIL입니다.
buildNumber 선택사항: 버전 번호를 나타내는 문자열로 값을 설정하십시오.
applicationName 선택사항: 애플리케이션 이름입니다. 이 값이 설정되는 경우 환경 변수 IBM_CLOUD_DEVOPS_APP_NAME이 무시됩니다.

다음은 명령 예제의 매개변수입니다.

stages {
    Stage(`Build) {
        environmnet {
            // get git commit from Jenkins
            GIT_COMMIT = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()
            GIT_BRANCH = 'master'
            GIT_REPO = 'https:github.com/xunronli-ibm/DemoDRA/'
        }
        steps {
            echo "building"
        }
        // post build section to use "publishBuildRecord" method to publish build record
        post {
            success {
                publishBuildRecord gitBranch: "${GIT_BRANCH}", gitCommit: "${GIT_COMMIT}", gitRepo: "${GIT_REPO}", result:"SUCCESS"
            }
            failure {
                publishBuildRecord gitBranch: "${GIT_BRANCH}", gitCommit: "${GIT_COMMIT}", gitRepo: "${GIT_REPO}", result:"FAIL"
            }
        }
    }
}

Jenkins Pipeline은 Git 정보를 환경 매개변수로 표시하지 않습니다. sh(returnStdout: true, script: 'Git rev-parse HEAD').trim() 명령을 사용하여 Git 커미트 ID를 가져올 수 있습니다.

DevOps Insights 단계

Cloud DevOps 플러그인은 사용자용으로 Jenkins 파이프라인에 4개 단계를 추가합니다. 파이프라인에서 이러한 단계를 사용하여 DevOps Insights와 상호작용하십시오. 실행해야 하는 경우 항상 파이프라인 정의에 이러한 단계를 추가하십시오. 예를 들어 테스트를 실행하고 테스트 결과를 업로드한 후 업로드가 완료되면 게이트에서 해당 결과를 평가할 수 있습니다.

DevOps Insights 단계 및 용도
단계 사용
publishBuildRecord 빌드 정보 공개
publishTestResult 테스트 결과 공개
publishDeployRecord 배치 레코드 공개
evaluateGate 정책 적용

기본적으로 버전 번호는 {파이프라인 이름}:{빌드 번호}로 설정되며 각각의 단계에서 사용자 정의 버전 번호를 설정할 수도 있습니다.

샘플 파이프라인 및 코드

다음은 선언적 Jenkins 파일과 스크립트화된 Jenkins 파일로 정의된 두 가지 완전한 파이프라인 예제입니다.

Git 리포지토리에는 실험해 볼 수 있는 샘플 nodejs 애플리케이션 코드, 테스트 및 Jenkins 파일이 포함되어 있습니다. 저장소를 포크한 후 Jenkins 파일을 실제 정보로 수정하십시오.

Jenkins 환경에 NodeJS를 설치하지 않은 경우 node.js Jenkins 플러그인을 설치해야 할 수도 있습니다. NodeJS를 설치한 경우 Jenkins 파일의 "tools" 섹션을 주석 처리할 수 있습니다.

빌드 빈도 보기

이 빌드 작업이 완료되면 파이프라인은 빌드가 완료되었다는 메시지를 DevOps Insights에 공개합니다. 빌드 빈도 페이지에서 빌드 레코드를 볼 수 있습니다. 빌드 빈도 페이지를 보려면 다음 단계를 사용하십시오.

  1. IBM Cloud 콘솔에서 메뉴 아이콘 햄버거 아이콘 > 플랫폼 자동화 > 툴체인을 클릭합니다.
  2. 도구 체인을 선택하십시오.
  3. 도구 체인의 개요 페이지에서, IBM Cloud 도구 카드에 있는 DevOps Insights를 클릭하십시오.
  4. 빌드 빈도를 클릭하십시오.

다음 단계

Jenkins를 사용하여 배치 레코드를 공개하는 방법에 대해 학습할 수 있습니다.