comment-added.sh 파일 작성에 대해 조금 더 자세히 살펴보자.
이 쉘 스크립트가 해야 할 일은 크게 3가지다.
1. 슬랙에 포스트 해야하는 조건을 만들고
2. 메시지를 만들어서
3. 슬랙에 post 를 날려야 한다.
1. 포스트 조건
조건은 일관되게 젠킨스 빌드가 성공한 상황이다.
이 상황은 verified+1 커멘트가 달린것과 이 커멘트의 주인의 조합으로 완성 가능하다.
Verified+1 은 대충 알아낸것 같다.
모든 커멘트가 달릴때마다 comment-added hook 이 트리거 되는데, 이때 아래 커멘트만 적당히 조건을 걸어주면 될것같다.
comment : Patch Set 1: Verified+1
Build Successful
http://jenkins.aribio.net/job/BioStream_DoQu_AriJenkins/8/ : SUCCESS
이제 저 커멘트를 단게 Jenkins 형님일때만으로 한정해야 할거 같다.
Jenkins 형님의 게릿 아이디는 AriJenkins 니, 최종적으로 아래와 같이 조건 완성
if echo "$author_username" | grep -q "AriJenkins"; then # author 가 AriJenkins 일때로 한정
if echo "$comment" | grep -q "Verified+1"; then # comment 내용중에 "Verified+1" 이 포함되어 있는지 확인
...
2. 메시지 만들기
이건 내용이 기니 다음장에서 자세히 다루자.
3. 슬랙에 post 날리기
post 를 날리는것은 이미 앞에서 살펴봤다. ([Gerrit/Gerrit <-> Slack 연동] - 슬랙 채널에 포스팅 하기)
저짓을 sh 에서 해야 한다.
이건 의외로 쉽다. 앞에서 테스트했던 sample 구문을 sh 파일에 그대로 써주고 여기에 text 만 내가 원하는 text 로 바꿔주면 된다.
#!/bin/bash
change=$2
change_url=$4
change_owner=$6
change_owner_username=$8
project=${10}
branch=${12}
topic=${14}
author=${16}
author_username=${18}
commit=${20}
comment=${22}
if echo "$author_username" | grep -q "AriJenkins"; then
if echo "$comment" | grep -q "Verified+1"; then
# 변수 선언
message="Hello World!"
# 테스트를 위한 private 채널로 포스트 (디버깅, 구현시에는 이 채널을 활성화하고 평상시에는 위 채널 활성화)
curl -X POST -H 'Content-type: application/json' --data '{"text":"'"$message"'"}' https://hooks.slack.com/services/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
슬랙 결과!!
아싸봉~~~
성공!!!!
이제 이 Hello, World 만 내가 원하는 포맷으로 바꾸면 된다. (위에서 스킵했던 2번)
'Gerrit > Gerrit <-> Slack 연동' 카테고리의 다른 글
2. 생각의 흐름 (1) | 2023.10.18 |
---|---|
3. 슬랙 채널에 포스팅 하기 (4) | 2023.10.18 |
4. 게릿 리뷰 웹훅 (1/3) (0) | 2023.10.18 |
6. 게릿 리뷰 웹훅 (3/3) (0) | 2023.10.18 |
7. Hook 할때 커밋 메시지 가져오기 (1) | 2023.10.18 |