[JENKINS] Submitter Parameter
[JENKINS] Submitter Parameter
Jenkins의 input
스텝에서 사용되는 submitterParameter
는 입력을 제출한 사용자의 정보를 저장하는 파라미터이다.
이 파라미터는 Jenkins 파이프라인이 실행 중일 때, 특정 사용자나 그룹만이 입력을 승인할 수 있도록 제어하고, 입력을 실제로 누가 제출했는지 추적하는 용도로 활용된다.
submitterParameter
를 설정하면, 입력을 승인한 사용자의 이름이 해당 파라미터에 저장되며, 이후 파이프라인의 다음 단계에서 이를 사용할 수 있다.
SubmitterParameter의 기본 용도
승인자 추적
- 누가 입력을 승인했는지 확인
- 예를 들어, 관리자만이 배포를 승인해야 하는 파이프라인의 경우,
submitterParameter
를 통해 실제로 승인을 한 사용자의 이름을 저장하고 나중에 참조할 수 있다.
- 예를 들어, 관리자만이 배포를 승인해야 하는 파이프라인의 경우,
다음 단계에서 사용자 정보 활용
- 입력을 승인한 사용자의 이름을 저장하고, 파이프라인의 다음 단계에서 이 정보를 활용하여 다른 로직을 처리할 수 있다.
SubmitterParameter 사용 방법
파이프라인에서 submitterParameter
설정
submitterParameter
는input
스텝에서 승인자가 입력을 제출했을 때, 그 사용자의 이름을 특정 파라미터에 저장- 이 파라미터는 이후 파이프라인에서 사용 할 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
pipeline {
agent any
stages {
stage('Approval Stage') {
steps {
script {
// 입력을 승인한 사용자의 이름을 'approver'라는 파라미터에 저장
input message: 'Do you approve the deployment?',
ok: 'Proceed',
submitter: 'admin',
submitterParameter: 'approver'
} // script
} // steps
} // stage
stage('Deploy') {
steps {
script {
// 'approver' 파라미터에 저장된 사용자의 이름 출력
echo "Deployment approved by: ${approver}"
} // script
} // steps
} // stage
} // stages
} // pipeline
코드 설명
submitter
- 입력을 승인할 수 있는 사용자나 그룹을 지정
- 예를 들어
admin
또는dev-team
처럼 특정 사용자나 그룹만이 승인할 수 있도록 설정 가능
submitterParameter
- 입력을 승인한 사용자의 이름을 저장할 파라미터 이름
- 이 파라미터는 이후 파이프라인의 다른 단계에서 사용 할 수 있음
SubmitterParameter 동작 과정
입력 요청
파이프라인이 실행 중일 때,
input
스텝에서 승인을 요청여기서 승인할 수 있는 사용자는
submitter
에 설정된 사용자 또는 그룹으로 제한
- 입력 제출
- 지정된 승인자가 입력을 제출하면, 해당 승인자의 이름이
submitterParameter
로 지정된 변수에 저장
- 지정된 승인자가 입력을 제출하면, 해당 승인자의 이름이
다음 단계에서 활용
이후 파이프라인 단계에서, 입력을 승인한 사용자의 정보를 활용할 수 있음
예를 들어, 승인자의 이름을 로그에 기록하거나, 다른 작업의 조건으로 사용할 수 있음
Rest API 응답 받기 위한 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
stage("APPROVAL WAITNG"){
steps{
script{
try{
timeout(time: 60, unit: 'MINUTES'){ // 입력을 60분 동안 대기
def APPROVE_RESULT = input message: "DEPLOY APPROVAL ANSWER",
ok: 'APPROVAL', // 승인을 OK할 버튼의 메시지
id: 'Deployvalue',
submitterParameter: 'approval', // 입력을 승인한 사용자의 이름을 `approval`라는 파라미터에 저장장
parameters: [choice(name: 'APPROVERESULT', choices: 'yes\nno', description: 'APPROVAL?')]
echo "RESPONSE : ${APPROVE_RESULT}"
}
}catch(error){
print(error)
env.APPROVAL = false
currentBuild.result = "FAILURE"
}
} // script
} // steps
} // stage
This post is licensed under CC BY 4.0 by the author.