CircleCI Orbs에서 job의 결과를 슬랙에 알립니다.
TL;DR
CircleCI Orbs
를 사용하여 slack으로 작업 결과를 쉽게 알리기 환경
CircleCI 2.1
orbs: slack: circleci/[email protected]
CircleCI 2.1
orbs: slack: circleci/[email protected]
Circleci Orbs이란?
Orbs는 간단히 말해서 CircleCI에 제공된 패키지를 사용하는 것입니다 (공식 CircleCI Orbs란?)
Orbs를 사용하면 설명을 줄이고 쉽게 CI 구현할 수 있습니다
흐름
.circleci/config.yml
설정 1. webhook 취득
아래 URL에서 결과를 흐르고 싶은 슬랙 채널을 선택하여 webhook을 취득
이런 URL을 얻을 수 있기 때문에 복사해 둡시다.
↓
https://hooks.slack.com/services/hoge/huga
2. CircleCI 환경 변수에 webhook URL을 설정
CircleCI 설정 화면 (기어 ⚙ 같은 사람)
↓
Environment Variables
↓
「Add Variable」을 포치🐶
↓SLACK_WEBHOOK
라는 변수 이름으로 추가
↓
실제 값은 xxxx로 표시되어 등록 완료되었습니다
3. .circleci/config.yml 설정
어쨌든 최소한의 코드에서
circleci/config.ymlversion: 2.1
orbs:
slack: circleci/[email protected]
jobs:
deploy-and-notify:
executor: container
steps:
- checkout
- run: ./deploy.sh
- slack/status:
success_message: ':circleci-pass: $CIRCLE_BRANCH のデプロイが完了しました\n:github_octocat: User:$CIRCLE_USERNAME'
failure_message: ':circleci-fail: $CIRCLE_BRANCH のデプロイが失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
webhook: '${SLACK_WEBHOOK}'
포인트
https://hooks.slack.com/services/hoge/huga
CircleCI 설정 화면 (기어 ⚙ 같은 사람)
↓
Environment Variables
↓
「Add Variable」을 포치🐶
↓
SLACK_WEBHOOK
라는 변수 이름으로 추가↓
실제 값은 xxxx로 표시되어 등록 완료되었습니다
3. .circleci/config.yml 설정
어쨌든 최소한의 코드에서
circleci/config.ymlversion: 2.1
orbs:
slack: circleci/[email protected]
jobs:
deploy-and-notify:
executor: container
steps:
- checkout
- run: ./deploy.sh
- slack/status:
success_message: ':circleci-pass: $CIRCLE_BRANCH のデプロイが完了しました\n:github_octocat: User:$CIRCLE_USERNAME'
failure_message: ':circleci-fail: $CIRCLE_BRANCH のデプロイが失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
webhook: '${SLACK_WEBHOOK}'
포인트
version: 2.1
orbs:
slack: circleci/[email protected]
jobs:
deploy-and-notify:
executor: container
steps:
- checkout
- run: ./deploy.sh
- slack/status:
success_message: ':circleci-pass: $CIRCLE_BRANCH のデプロイが完了しました\n:github_octocat: User:$CIRCLE_USERNAME'
failure_message: ':circleci-fail: $CIRCLE_BRANCH のデプロイが失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
webhook: '${SLACK_WEBHOOK}'
success_message
가 흐른다 failure_message
가 흐른다 :circleci-pass:
, :circleci-fail:
등의 이모티콘을 사용할 수 있습니다 4. 완료
↓ 성공시의 메시지는 이런 느낌입니다 (모자이크 많아서 미안해)
↓실패시의 메세지는 이런 느낌입니다(모자이크 많이 테리벤처럼 죄송합니다)
실패 시에만 알림
통지 까다로워지고, 실패시에만 통지시키고 싶을 때는 아래와 같이 파라미터 설정하면 OK입니다
circleci/config.ymlorbs:
slack: circleci/[email protected]
test:
executor: container
steps:
- checkout
- attach_workspace:
at: .
- run: npm test
- slack/status:
fail_only: true #これを設定する
failure_message: ':circleci-fail: テスト失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
webhook: '${SLACK_WEBHOOK}'
후기
circleci에서 기본적으로 사용할 수 있는 환경 변수 또한 slack 메시지에 포함될 수 있기 때문에
통지 까다로워지고, 실패시에만 통지시키고 싶을 때는 아래와 같이 파라미터 설정하면 OK입니다
circleci/config.yml
orbs:
slack: circleci/[email protected]
test:
executor: container
steps:
- checkout
- attach_workspace:
at: .
- run: npm test
- slack/status:
fail_only: true #これを設定する
failure_message: ':circleci-fail: テスト失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
webhook: '${SLACK_WEBHOOK}'
후기
circleci에서 기본적으로 사용할 수 있는 환경 변수 또한 slack 메시지에 포함될 수 있기 때문에
Orbs에서 제공하는 패키지를 사용하면 CircleCI에서의 설명이 줄어들므로 Orbs에서 제공되는 패키지를 적극적으로 사용하고 싶습니다
사용할 수 있는 Orbs 목록은 이쪽
다음은 ECR, ECS 배포를 Orbs로 구현한 기사는 여기입니다
참고
CircleCI Orbs란?
Reference
이 문제에 관하여(CircleCI Orbs에서 job의 결과를 슬랙에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k_bobchin/items/11f0d778de09502de1f3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(CircleCI Orbs에서 job의 결과를 슬랙에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k_bobchin/items/11f0d778de09502de1f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)