팀시티에서 slack으로 알람을 보내는 방법은 두 가지가 있습니다.
- slack의 webhook url 사용
- slack의 bot 사용
현재 teamcity 에서 공식적으로 안내하고 있는 방식은 bot을 사용하는 방식 이구요
안내 동영상 내용을 보면 힘들지 않게 설정할 수 있을 것 같습니다.
- Notifications - team city docs
- Tutorial - youtube
근래에 url로 webhook을 설정했던 내용에 대해서 정리 합니다.
webhook 설정해보면서 느낀점은…
(사용하지 못할정도는 아니지만 bot 을 사용하는 쪽이 더 깔끔한 것 같습니다.)
- 빌드에는 webhook 설정이 안되고 프로젝트 단위로만 설정이 됩니다.
- notification을 수신할 channel 설정이 따로 없고 webhook template 본문에 작성해야 합니다.
Slack Webhook API 생성
teamcity에 webhook 설정하기 전에 slack에 webhook api를 먼저 생성해야 합니다.
Slack의 Webhook api 생성 과정은 생략하고, 대신 방법에 대해 검색하면 많이 나올 테지만 쉽게 따라할 수 있는 링크 하나 남깁니다.
- Slack Webhook 생성 - 기억보단 기록을
webhook api 생성 후 꼭 postman 같은 도구로 ok 떨어지는지 확인하는것이 좋습니다.
Teamcity Webhook Plugin 설치
teamcity 페이지에서 Administration > Server Administration > Plugins 로 이동 합니다.
저는 이미 Webhook plugin이 설치되어 있는데요 최종적으로 노란색의 두 개 플러그인을 설치 해야 합니다.
Brose plugins repositor를 클릭해서 Jet Brain Marketplace로 이동합니다.
검색창에서 tcWebHooks 을 입력하고,
검색된 두 개의 플러그인을 모두 설치해야 하지만, 먼저 Web Hooks를 선택 합니다.
플러그인 개요 페이지에 Get 버튼을 클릭하면 두 가지 설치 방식이 보여집니다.
- Install to 해서 teamcity서버에 곧장 설치하거나
- download 받은 후 teamcity server에 업로드 하여 설치 하거나
저는 다운로드 받고 손수 설치를 선택 했습니다. -0-
같은 수순으로 Web Hooks REST API도 설치해 줍니다. (생략)
다운로드 한 두 개 plugin의 모습입니다.
이제 Teamcity 관리자 페이지로 되돌아 가서 Upload plugin zip 버튼을 클릭합니다.
다운로드 받은 파일중 tcWebhook을 먼저 업로드 하고
곧 바로 tcWebHooks-REST-API 파일도 업로드 합니다.
업로드를 마치고 나면 업로드한 plugin에 대해 적용할 것인지를 묻는데요
두 개 플러그인 모두 Enable uploaded plugins 버튼을 클릭해서 활성화 시켜 줍니다.
Teamcity Webhook 설정
webhook을 추가 할 프로젝트의 설정으로 들어갑니다.
WebHooks 메뉴에서 Add project WebHooks를 클릭 합니다.
Wehhook 생성 문구를 클릭 합니다.
내용들을 채워주고 Save Web Hook 버튼을 클릭하여 저장합니다.
- webhook url을 입력하고
- Slack.com JSON templates (JSON) 선택하고
- 어떤 이벤트를 보낼 건지 선택할 수 있는데 저는 매 빌드 성공 때마다 보냈도록 했습니다.
여기까지는 심심치 않게 검색해서 확인이 가능한 내용인데요
Webhook api의 기본 채널이 아닌 다른 채널로 notification을 보내기 위해 추가 설정이 필요했습니다.
Teamcity Webhook slack channel
위에서 notification 추가할 때
Slack.com JSON templates (JSON) 선택했는데요
저 template 본문에 channel 정보를 추가 해야 합니다.
slack channel id 얻기
우선 slack channel에서 channel id를 챙깁니다.
teamcity channel id 설정
Administration > Server Administration > WebHooks > WebHook Templates wiki pages
수정할 template을 선택합니다.
자 여기서 개인적으로 아쉬운 점으로 느껴지는 부분인데요
channel 설정하는 곳이 따로 노출되어 있지 않고 template본문에 추가해야 하는 점과,
이벤트마다 template이 나뉘어 있어서 모든 템플릿들에 채널정보를 추가 해야 한다는 점입니다.
하지만 저는 빌드 성공때만 알람을 받도록 하면되니까 Build Successful만 수정합니다.
(다 삭제하고 하나의 template로 통일하셔도 될 것 같고, 필요에 따라 수정하셔도 좋을 것 같습니다.)
template 본문에 앞서 챙겨온 slack의 channel id를 추가 합니다.
끝
'IT > 개발환경' 카테고리의 다른 글
NSIS로 응용프로그램 설치파일 만들기 - 1/4 설치 (1) | 2023.04.10 |
---|---|
Teamcity Mac Agent 추가 -망함 (0) | 2023.04.08 |
Teamcity Mac Agent 추가 (0) | 2023.04.08 |
AWS GameList Test (0) | 2023.04.08 |
AWS GameLift 알아보기 (0) | 2023.04.08 |