이번편에서는 docker image가 docker hub에 업로드 되면 텔레그램으로 알림을 받을 수 있게 설정하겠다.
1. 텔레그램 token 및 chnl_id 조회
텔레그램을 github action에서 사용하기 위해서는 텔레그램 token과 해당 채널 id를 조회해야한다.
token을 구하기 위해서는 먼저 BotFather을 이용하여 bot을 생성해야한다.
https://web.telegram.org/k/ 에 접속해서 BotFather을 검색하자
우측 대화창 부분에 아래와 같이 대화를 시작할 수 있는 창이 보이는데 여기서 START 를 눌러 대화를 시작한다. 아래와 같이 사용할 수 있는 명령어들이 쭉 나열된다.
이제 봇의 name 과 username 을 입력한다.
- name 은 봇을 부르는 이름이다.
- username 은 일종의 id 와 같은 개념으로 반드시 bot 으로 끝나야하며 기존에 텔레그램에 등록되어있는 username 은 사용할 수 없다.
bot 이름까지 만들면 token id를 보여준다.
브라우저 주소 입력창에 https://api.telegram.org/bot봇Token값/getUpdates 를 입력한다.
https://api.telegram.org/bot802131984:AAHH6QL4TmvYwaUhgZheTNg9vteSVzeTKPQ/getUpdates
앞에서 만든 봇과 대화를 시작한다. 아무 텍스트나 보내본다. 그리고 나서 다시 url로 접속해보면 아래 처럼 result에 값이 생기는데 이게 봇의 chat id이다.
{"ok":true,"result":[{"update_id":178332702, "message":{"message_id":1,"from":{"id":879500000,"is_bot":false,"first_name"
그리고 나서 텔레그램에서 새로운 채널을 만들고 bot을 거기에 추가한다. 그리고 다시 url을 접속해서 보면 해당 bot이 접속해있는 채팅방 목록을 볼 수 있다. 내가 만든 스프링 템플릿 방의 아이디는 "-1001460523052"인 것이다.
"chat": {
"id": -1001460523052,
"title": "스프링 템플릿",
"type": "channel"
},
2. Git Repository secrets 추가 및 Github action yml 파일 수정
이제 토큰 아이디와 채팅방 아이디를 얻었으니 git repository의 settings -> Secrets에서 해당 값을 추가한다.
마지막으로 "send custom message with args" 부분을 추가해준다.
name: Java CI with Gradle
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{secrets.DOCKERHUB_USERNAME}}
password: ${{secrets.DOCKERHUB_TOKEN}}
- name: build and release to DockerHub
env:
NAME: goohoon # 계정 명
REPO: spring-template # 레포 이름
run: |
docker build -t $REPO .
docker tag $REPO:latest $NAME/$REPO:latest
docker push $NAME/$REPO:latest
- name: send custom message with args
uses: appleboy/telegram-action@master
with:
to: ${{ secrets.TELEGRAM_TO_ID }}
token: ${{ secrets.TELEGRAM_TOKEN }}
args: ${{ github.actor }} 님의 소스 코드가 반영 됐습니다.
빌드가 완료되면 텔레그램으로 메세지가 오는 것을 볼 수 있다.
'DevOps' 카테고리의 다른 글
AWS Elastic Beanstalk (1) - 구축 (0) | 2021.12.12 |
---|---|
Elastic Stack(ELK Stack) 설치 (0) | 2021.11.28 |
CI/CD 구축하기(4) - 애플리케이션 배포 (0) | 2021.09.01 |
CI/CD 구축하기(2) - Docker Hub (1) | 2021.08.25 |
CI/CD 구축하기(1) - Github Action 이란? (3) | 2021.08.25 |