Jenkins를 사용해 CI/CD 환경 구축해 보기(1)

dominic·2022년 5월 16일
0
post-thumbnail

이 글은 소모임을 클론한 프로젝트의 진행에 CI/CD 환경을 적용하기 위한 과정을 기록한 글입니다.

툴은 Jenkins를 사용하며 Docker를 이용해 Jenkins 이미지를 구동하여 환경을 구성합니다.

※ Docker를 통해 Jenkins를 구동하는 과정은 이 글에서는 다루지 않습니다.


Jenkins 시작하기

Jenkins를 구동하고 최초로 페이지에 접속을 하면 다음과 같은 화면이 나타납니다.

안내대로 나타난 경로의 파일을 확인하면 관리자 비밀번호를 확인할 수 있습니다.

비밀번호를 입력 후 플러그인 구성과 사용자 계정을 생성하면 Jenkins의 Dashboard를 볼 수 있습니다.


Pipeline 프로젝트 만들고 빌드하기

먼저 Dashboard에서 새로운 item을 선택하고 Pipeline 프로젝트를 만들어줍니다. 프로젝트가 생성되면 설정 화면이 나타나고 General 탭에서 필요한 설정을 진행합니다.

GitHub project에 체크 후 프로젝트의 url을 넣어줍니다.

Build Triggers 항목에서 GitHub hook trigger for GITScm polling 항목에 체크합니다. 이 항목을 설정하면 Github의 Webhook 기능을 통해 Jenkins가 프로젝트의 변경을 감지해 CI를 진행할 수 있습니다.

Pipeline 항목에서 Definition을 Pipeline script from SCM으로 선택하고 Repository URL과 원하는 Branch 정보를 채워줍니다. Github 프로젝트에서 Jenkinsfile을 가져와 적용할 수 있습니다.

Jenkinsfile을 간단히 설정하여 Repository에 추가합니다.

pipeline {
    agent any

    stages {
        stage('Test') {
            steps {
                sh './gradlew test'  // Test 단계에서 test를 실행합니다.
            }
        }

        stage('Build') {
            steps {
                sh './gradlew clean build' // Build 단계에서 빌드를 진행합니다.
            }
        }
    }
}

이제 Jenkins에서 빌드를 할 수 있습니다. 지금 빌드를 선택하면 Jenkins에서 빌드를 진행하게 됩니다.

첫 빌드 시도에서 Test 과정이 실패했습니다. 실패한 항목에 마우스를 올리면 Log를 확인할 수 있습니다.

로그 내용을 보면 gradlew를 실행하는데 권한이 없다고 나옵니다.

git ls-tree HEAD

위 명령을 사용해서 gradlew의 권한을 확인하면 644로 실행 권한이 빠져 있습니다.

권한을 부여하기 위해 다음 명령을 실행하고 커밋, 푸시를 진행합니다.

git update-index --add --chmod=+x gradlew

다시 빌드를 진행하면 성공적으로 완료되는 것을 확인할 수 있습니다.


여기까지 Jenkins Pipeline을 통해 빌드를 진행해 봤습니다. 편의상 포스팅의 내용을 나눠 다음 포스팅에서 Github Webhook을 적용해 Pull Request가 발생하면 Jenkins에서 빌드를 진행하도록 해보겠습니다.

0개의 댓글