[젠킨스 구축] 5. 자동 테스트 파이프라인 구축 - f-lab-edu/jshop GitHub Wiki

테스트코드를 자동으로 실행시키기 위한 파이프라인이다.

테스트를 실행하기 위해선 젠킨스에서 깃헙의 소스코드를 가져와, 벡엔드 디렉토리로 이동후 ./gradlew clean test 명령을 수행하면 된다.

파이프라인에서 소스코드 디렉토리 이동

테스트를 진행하기에 한가지 문제가 있었다.

현재 프로젝트 디렉토리는 아래 사진과 같이 fe, be 디렉토리로 나뉘어져 있는 상태다.

스크린샷 2024-06-07 22 40 21

테스트를 진행할 디렉토리는 be 디렉토리 이므로, 파이프라인에서 디렉토리를 이동하는 방법이 필요했다.

디렉토리를 이동하는 방법을 찾아 정말 삽질을 많이 했다.

스크린샷 2024-06-07 22 41 17

삽질끝에 찾은 방법은 아래 코드와 같이 스크립트를 수행할 디렉토리를 dir(){} 블럭으로 감싸주는 것이였다.

stage('Test') {
    steps {
        script {
            dir('be') {
                sh 'ls -al'
                sh './gradlew clean test'
            }
        }
    }
}

테스트 진행

./gradlew clean test

해당 명령으로 테스트를 수행한다.

테스트를 끝내고 나면, build 디렉토리에서 테스트 결과또한 확인할 수 있다.

아래는 테스트 리포트를 웹서버에 띄워 확인해본 결과다.

스크린샷 2024-06-07 22 44 24

정리

테스트 수행은 큰 어려움은 없었다.

깃헙에서 이벤트가 발생하면 웹훅으로 젠킨스로 이벤트를 전송하고, 젠킨스에서 저장소의 소스코드를 체크아웃해 테스트를 진행하기만 하면 됐다.

지금까지 만든 Jenkinsfile 은 이렇다.

pipeline {
    agent any
    
    stages {
        stage('Test') {
            steps {
                script {
                    dir('be') {                
                       echo 'Test'
                        sh './gradlew clean test'
                    }
                }
            }
        }
    }
}