Server/DevOps

Jenkins Pipeline 사용법

mean-ji 2022. 8. 25. 10:58
728x90
공식 문서를 보고 공부한 내용입니다 :)

 

Using a Jenkinsfile

젠킨스 파일은 젠킨스 파이프라인에 대한 정의와 source control이 있는지를 체크한다.

pipeline {
	agent any
    
    stages {
    	stage('Build') {
        	steps {
            	echo '🔨 Building...'
            }
        }
        stage('Test') {
        	steps {
            	echo '🧪 Testing...'
            }
        }
        stage('Deploy') {
        	steps {
            	echo '🧐 Deploying...'
            }
        }
    }
}

모든 파이프라인이 이 세 단계를 포함하는 건 아니지만 대부분의 프로젝트에서 세 단계가 포함되면 좋다.

파일을 만들 때 Groovy syntax가 이상적이라고 한다.

프로젝트의 루트 디렉토리에 젠킨스 파일을 만들어야 된다

 

Build

code가 assembled, compiled, 혹은 packaged되는 시점. 젠킨스 파일은 GNU/Make, Maven, Gradle 등의 빌드툴로 대체될 수 없다고 한다. 이를 위한 많은 플러그인이 있는데, 예제에서는 sh를 이용한다. sh step은 Unix/Linux-based인 경우에 사용할 수 있고, Window-based라면 bat을 사용하면 된다고 한다.

 

pipline {
	agent any
    
	stages {
    	stage('Build') {
        	steps {
            	// make command를 유발
            	sh 'make'
                // 해당 패턴에 매칭되는 파일을 캡쳐하고 젠킨스 컨트롤러에 저장
                archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
            }
        }
        stage('Test') {
        	steps {
            	// junit을 이용하기 위해 두 단계가 필요한 것 같다.
            	sh 'make check || true'
                // junit plugin을 통해 junit test를 할 수 있는 것 같다.
                junit '**/target/*.xml'
            }
        }
        stage('Deploy') {
        	when {
            	expression {
                	currentBuild.result == null || currentBuild.result == 'SUCCESS'
                }
            }
            steps {
            	sh 'make publish'
            }
        }
    }
}

 

이 외에도 엄청 많은 것 같은데 사용한 문법은 계속 추가해 나가야겠다 : )

728x90