Jenkins pipeline 이용하기

: 이번에는 GitHub 프로젝트에 Jenkinsfile을 생성하고, 여기에 기술된 작업 절차들을 Jenkins에서 수행하도록 하는 방법으로 pipeline을 사용할 수 있습니다. 이전에 Web에서 Job들을 일일이 적용하는 작업들은 매우 번거로울 뿐 아니라, Job이 추가/변경되는 경우 Website의 해당 Item에 들어가 일일이 수정해야하므로 여간 번거로운 일이 아닐 수 없습니다. 이를 Jenkinsfile에 기술해 놓으면 수정 또한 commit을 통해 할 수 있으므로 개발자 친화적인? 작업이라 할 수 있습니다. 그럼 적용하는 방법을 살펴보겠습니다.

저는 이전의 Jenkins 시작하기에서와 같이 https://github.com/JaehongParkYS/calculator_CICD 이 프로젝트를 사용하였습니다.


Manage Plugin에 들어가 위 그림처럼 Pipeline: Declarative Agent API을 설치해 줍니다.
저는 declarative 문법을 사용할 것이므로 해당 플러그인을 설치하였습니다.


New item을 선택해 줍니다.


Pipeline을 선택해 주고 이름은 아무 이름이나 설정해 줍니다.



위 그림처럼 프로젝트 주소와 Git 주소를 설정해 주고 Credential은 이전에 만든 것을 동일하게 사용해 줍니다.
그리고 Script Path에 GitHub 프로젝트에 추가해 준 Jenkinsfile의 이름(저는 Jenkinsfile로 했습니다.)을 적어 줍니다.
Build할 branch는 모든 브랜치를 대상으로 할 것이므로 /으로 하였습니다.


Item을 정의하고 난 후 Build Now를 선택하면 위 그림과 같이 Pipeline 형태의 기술된 작업들이 수행되는 것을 볼 수 있습니다.


세부 항목을 선택해 해당 로그를 보면, Test 작업에서 수행한 작업들의 결과(저는 Gtest를 이용해 테스트를 수행해 보았습니다.)를 볼 수 있습니다.

제가 작성한 Jenkinsfile은

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                sh '''
                echo "Start Build"
                g++ -o main main.cpp calculator.cpp -lgtest -lpthread
                '''
            }
        }
        stage('Test') {
            steps {
                sh '''
                echo "Start Test"
                ./main
                '''
            }
        }
        stage('Archive') {
            steps {
                sh '''
                echo "Start Archiving"
                mv ./main ./artifact/
                '''
                archiveArtifacts artifacts: 'artifact/*', fingerprint: true 
            }
        }
    }
}

입니다.
위 기술된 항목들에 대한 설명은 다음 페이지에서 이어나가겠습니다.

'CICD > Jenkins' 카테고리의 다른 글

Jenkins - 환경변수 사용  (0) 2021.02.24
Jenkins pipeline - Declarative pipeline 기술  (1) 2020.11.17
Jenkins - GitHub 연결(2)  (0) 2020.11.12
Jenkins - 젠킨스 설정(1)  (0) 2020.11.12

+ Recent posts