Study/Jenkins
Jenkins Pipeline Parallel 실행 하기 (젠킨스 파이프라인 병렬 실행)
Zeromk2
2023. 9. 8. 06:00
테스트 자동화 병렬 이야기를 지난 포스팅에 했었어서 실제로 어떻게 사용하는지 이야기를 해보려고 합니다.
물론 초기 스크립트는 ChatGPT가 자세히 알려주어 참고했습니다~
대략적인 구조는 이렇습니다.
pipeline
ㄴ stages
ㄴ stage
ㄴ parallel
ㄴ stage
ㄴ steps
ㄴ stage
ㄴ steps
- jenkins parameter를 쓸 때에는 ' ' 나 " "로 묶는 것이 아니라 """ """로 해줘야 인식이 되기에 jenkins parameter를 넣는 부분은 """ """로 되어있습니다.
- dir( ) { } 부분은 ( ) 위치로 가서 { } 을 실행하라는 내용입니다.
- post에 slacksend부분은 slack notification 플러그인이 설치되어있어야 사용할 수 있습니다.
pipeline {
agent none
stages {
stage('Stage 1') {
agent {
label 'your_agent_label' // 여기에 실행하길 원하는 노드의 레이블을 지정하세요
}
steps {
echo 'Running Stage 1'
}
}
stage('Parallel Stages') {
parallel {
stage('Stage 2') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE'){
dir('path/path/path'){
sh """python test.py ${jenkins_parameter}"""
}
}
}
}
stage('Stage 3') {
steps {
echo 'Running Stage 3'
}
}
stage('Stage 4') {
steps {
echo 'Running Stage 4'
}
}
stage('Stage 5') {
steps {
echo 'Running Stage 5'
}
}
}
}
}
post {
success {
slackSend (channel: '#channel_name', color: '#2EB67D', message: """SUCCESSFUL: Job ${env.JOB_NAME} <${env.BUILD_URL}|(Jenkins)> <@slack_user_id>""")
}
failure {
slackSend (channel: '#channel_name', color: '#E01E5A', message: """FAILED: ${env.JOB_NAME} <${env.BUILD_URL}|(Jenkins)> <@slack_user_id>""")
}
}
}
728x90