젠킨스 파이프 라인이란 연속적인 작업들을 젠킨스에서 하나의 파이프라인(작업)으로 묶어서 관리할 수 있게 만드는 플러그인을 말합니다.
저희 개발팀은 docker 이미지로 개발환경을 구축해놓고 사용하고 있으므로 jenkins에서 docker 컨테이너를 띄우고 그 내부에서 빌드 스크립트를 실행해야 합니다.
관련 자료들이 많지 않아 직접 여러 자료들을 조합해서 성공하여 내용을 기록합니다.
pipeline {
agent any
stages {
stage('[CLONE] src') {
steps {
sh 'rm -rf *'
git branch: 'main', credentialsId: '{설정된Credential-Id입력}', url : 'http://{깃주소입력}.git'
}
}
stage('[BUILD] src') {
agent {
docker {
image '{레지스트리접속정보}/{컨테이너명}:{태그}'
args '-v /var/jenkins_home:/data'
reuseNode true
}
}
steps {
sh '. ~/.profile; mkdir -p build; cd build; cmake ..; make'
}
}
stage('[ULOAD]') {
steps {
sh 'sshpass -p {NAS패스워드} scp -r -o StrictHostKeyChecking=no {컴파일된 파일명} {UserID}@{NAS접속정보}:/volume1/BuildModules'
}
}
}
post {
success {
slackSend (channel: '#build', color: '#00FF00', message: ":tada: Build Succeeded: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
failure {
slackSend (channel: '#build', color: '#FF0000', message: ":cold_sweat: Build Failed: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
}
}