Jenkins CI CD 파이프라인 만들기 방법

알고 계셨나요? Jenkins에는 Continuous Integration/Continuous Delivery CI/CD에 대한 내장 지원이 있습니다. 프로젝트에 Jenkins CI CD 파이프라인을 구현하면 소프트웨어 개발 프로세스를 크게 개선할 수 있습니다.

Jenkins는 현재까지 가장 인기 있는 DevOps 자동화 도구 중 하나입니다. 그리고 Jenkins CI CD 파이프라인을 시작하려면 정확한 장소에 왔습니다.

계속 읽어보시고 이 튜토리얼에서는 GitHub과 함께 Jenkins CI CD 파이프라인을 설정하는 방법을 배우게 됩니다.

필수 사항

이 튜토리얼은 예제를 따라가기 위해 다음 요구 사항이 있는 것으로 가정합니다.

이미 Jenkins를 설치해야 합니다. 이 튜토리얼의 예제는 Windows 10 20H2 컴퓨터에서 Jenkins v2.319.1을 사용합니다.

  • Jenkins 웹 콘솔은 인터넷을 통해 접근할 수 있어야합니다.
  • A Github account to which you’ll connect with the Jenkins CI CD pipeline.
  • Git SCM.이 튜토리얼은 윈도우용 최신(2.34.1) 64비트 버전의 Git을 사용합니다.

GitHub 저장소 준비

이 튜토리얼은 Jenkins CI CD 파이프라인을 GitHub 저장소와 통합하는 것을 포함합니다. 빈 프로젝트를 생성하는 대신 기존 저장소를 포크하는 것이 시작하는 데 더 빠릅니다.

1. 먼저 브라우저를 열고 GitHub 계정에 로그인합니다.

2. 다음으로, 예제 저장소 URL로 이동합니다(마이크로소프트 Connect 2016의 MyShuttle2 애플리케이션). 저장소 페이지에 도착하면 페이지 상단 오른쪽에있는 Fork 버튼을 클릭합니다.

Forking a repo

포킹 프로세스가 완료될 때까지 기다립니다. 마지막에, 귀하의 GitHub 계정에 액세스 권한이 있는 “사용자명/MyShuttle2”라는 이름의 저장소가 있게됩니다.

3. 이제 저장소에 Jenkinsfile이라는 새 파일을 추가합니다. Jenkinsfile은 Jenkins 파이프라인의 정의를 포함하는 텍스트 파일입니다. 이 파일은 소스 코드 저장소 내에 있어야합니다.

저장소 페이지에서 파일 추가 -> 새 파일 생성을 클릭합니다.

Adding a new file

4. 새 파일의 이름으로 Jenkinsfile을 입력하십시오. 다음으로 아래 코드를 복사하여 Jenkinsfile에 붙여넣으십시오.

  • 파이프라인은 지속적인 전달을 위해 코드로 작성된 일련의 명령문입니다.
  • A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
  • A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.

이 Jenkinsfile은 파이프라인 스크립트의 기본적인 예시에 불과합니다. 실제로는 파이프라인 스크립트가 더 복잡하며 하나 또는 모든 단계에서 여러 작업을 포함할 것입니다.

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

코드를 작성한 후 파일은 아래 스크린샷과 같아야 합니다.

Jenkinsfile pipeline script

5. 페이지 하단까지 스크롤하여 새 파일 커밋을 클릭하십시오.

Committing the new file

이제 리포지토리에 Jenkinsfile이 있습니다.

New Jenkinsfile on the GitHub repo

6. 마지막으로 리포지토리 URL을 복사하십시오. 이를 위해 Code를 클릭한 다음 Copy 버튼을 클릭하십시오. 이 URL은 Jenkins CI CD 파이프라인 생성 중 필요합니다.

Copying the repository URL

Jenkins CI CD 파이프라인 생성

기능 개발에는 많은 코드 변경이 필요합니다. 각 코드 변경 사이에는 수행해야 할 일련의 작업이 있습니다. 이러한 작업에는 변경 내용 커밋, 컴파일, 테스트 및 패키징이 포함될 수 있습니다.

Jenkins와 같은 자동화 서비스를 사용하면 이러한 단계를 빠르고 오류 없이 수행할 수 있습니다.

1. 브라우저를 열고 Jenkins URL로 이동하여 로그인합니다.

2. Jenkins 대시보드에서 왼쪽 메뉴의 New Item 옵션을 클릭합니다.

Creating a new item in Jenkins

3. 새 파이프라인의 이름을 입력하십시오. 이 튜토리얼에서는 demoPipeline이라고 이름을 지정하고 Pipeline 템플릿을 선택한 다음 OK를 클릭하여 완료합니다.

Creating a Pipeline project

4. 구성 페이지의 General 탭 아래에 있는 GitHub 프로젝트 확인란을 선택하세요. 그런 다음 이전에 복사한 저장소 URL을 Project URL 상자에 붙여넣으세요.

Specifying the GitHub repository URL

5. Build Triggers 섹션으로 스크롤하고 아래 스크린샷처럼 GitHub hook trigger for GITScm polling 확인란을 선택하세요.

Specifying the build trigger

6. 이제 Pipeline 섹션으로 더 내려가서 다음 값을 선택/지정하세요:

  • Definition: Pipeline script from SCM
  • SCM: Git
  • Repository URL: 귀하의 저장소 URL
Specifying the pipeline values

7. 페이지 하단으로 스크롤하여 Script Path 값이 Jenkinsfile임을 확인하세요. 이 값은 GitHub 저장소를 준비할 때 이전에 만든 Jenkinsfile을 참조합니다. 마지막으로 Save를 클릭하세요.

Saving the pipeline configuration

GitHub에서 Webhook 구성

Jenkins가 새 작업을 실행하려면 먼저 GitHub 저장소에 Webhook을 만들어야 합니다. 이 Webhook은 저장소에 새로운 푸시가 발생할 때 즉시 Jenkins에 통지됩니다.

아래 단계를 따라 Webhook을 만드세요.

1. Settings 페이지로 이동하고 GitHub 저장소의 Webhooks 탭을 클릭하세요. Webhooks 페이지에서 Add webhook을 클릭하세요.

Adding a webhook

2. Jenkins URL을 지정하고 /github-webhook/in the Payload URL 필드에 추가하십시오. 예를 들어, HTTP://jenkinsURLhere/github-webhook/.

또한, Content type 값을 application/json으로 변경하십시오.

Setting the webhook URL and content type

3. 어떤 이벤트에서 이 웹훅을 트리거하고 싶습니까? 선택에서 개별 이벤트를 선택하게 하겠습니다 옵션을 클릭하십시오.

Selecting individual events

4. 아래로 스크롤하여 PushesPull requests 확인란을 선택하십시오. 이러한 옵션들은 GitHub가 이 특정 이벤트 발생 시에 Jenkins로 페이로드를 전송하도록 보장합니다.

Enabling Pushes and Pull requests events

5. 하단에 있는 웹훅 추가 버튼을 클릭하여 웹훅을 유효성 검사하십시오. 웹훅 검증이 정상적으로 완료되면, 아래 스크린샷과 유사한 페이지 상단에 알림이 표시됩니다.

Webhook creation notification

Jenkins CI CD 파이프라인 작업 실행 및 트리거

이제 파이프라인을 생성하고 구성했으니, 이 파이프라인이 작동하는지 어떻게 알 수 있습니까? Jenkins는 파이프라인 스테이지 보기 플러그인을 제공하여 파이프라인 상태를 확인할 수 있도록 도와줍니다.

1. 파이프라인 상태를 열려면 Jenkins에서 파이프라인을 열고 Status를 클릭하십시오. 아래에서 볼 수 있듯이, Stage View 상태는 No data available를 표시합니다. 이는 파이프라인을 트리거할 이벤트가 발생하지 않았기 때문입니다.

Jenkins pipeline stage view

2. 초기 빌드 데이터를 생성하려면 지금 빌드를 클릭하고 빌드 프로세스가 완료될 때까지 기다리십시오. 아래에서 볼 수 있듯이, Stage View에는 이 빌드에 변경 사항이 없다는 항목이 하나 표시됩니다.

To generate initial build data, click Build Now

3. 이제 리포지토리에 새 더미 파일을 커밋하여 파이프라인을 테스트하십시오. 이를 위해 GitHub 리포지토리로 돌아가 파일 추가 -> 새 파일 생성을 클릭하십시오.

새 파일의 이름으로 더미를 입력하고 내용을 추가하는지 확인하십시오.

Creating a new file

마지막으로 페이지 하단의 새 파일 커밋을 클릭하십시오.

4. Jenkins 파이프라인 상태 페이지로 돌아가면 아래에 표시된 것처럼 새 빌드 항목과 하나의 커밋이 표시됩니다.

Jenkins pipeline build status

결론

이 튜토리얼을 통해 소프트웨어 개발 라이프사이클을 자동화하기 위해 Jenkins CI CD 파이프라인을 설정하는 방법을 배웠습니다. 또한 Jenkins를 사용하여 소프트웨어 프로젝트의 CI에 대한 일련의 작업 체인을 유지하는 방법을 배웠습니다.

당신의 프로젝트에 Jenkins CI CD 파이프라인을 적용할 것인지 생각하십니까? 아니면 이미 구축된 더 나은 CI/CD 솔루션이 있습니까?

Source:
https://adamtheautomator.com/jenkins-ci-cd/