테스트 자동화 병렬 이야기를 지난 포스팅에 했었어서 실제로 어떻게 사용하는지 이야기를 해보려고 합니다.
물론 초기 스크립트는 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
'Study > Jenkins' 카테고리의 다른 글
Jenkins JSONObject["scm"] is not a JSONObject 에러 해결하기 (0) | 2024.03.20 |
---|---|
jq를 사용해서 JSON 값 변경하기 (0) | 2023.06.23 |
jenkins pipeline 결과 fail일 때 멈추지 않고 실행되도록 처리하기 & fail 이면 멈추기 (0) | 2022.03.02 |
Jenkins 원격 빌드 하기 - cURL 사용해보기 (3) | 2021.05.20 |
Jenkins Pipeline 스크립트 작성해보기 - Job 일괄 실행하기 (0) | 2021.05.20 |
댓글