Slack에서 CircleCI에서 커버리지 보고서 알림을 받는 구성 단계
4037 단어 CircleCI슬랙CircleCI2.0
소개
Slack과 CircleCI를 함께 사용하여 커버리지 보고서를 slack에서 쉽게 볼 수 있도록 설정 절차를 요약했습니다.
단순히 CircleCI의 Artifacts에 커버리지 보고서를 올리는 것만으로는 아무도 볼 수 없으므로 누군가가 푸시 할 때마다 Slack에서 커버리지 보고서 링크를 알립니다.
덧붙여서, 단순히 GitHub 리포지토리의 평균적인 커버리지수만을 볼 수 있게 하고 싶다면, Codecov등을 사용해 배지를 붙이는 것이라도 좋다고 생각합니다.
전제
이미 CircleCI의 Artifacts에서 아래와 같이 coverage.html을 낼 수 있다고 가정합니다.
작동 확인한 CircleCI 버전은 2.0입니다.
설정 절차
①Slack의 Webhook URL 취득
이 기사 를 참고로 취득해 주세요.
기본적으로는 "설정 추가 → 대상 채널 선택 → Webhook URL을 삼가 → 설정 저장"이라는 흐름입니다.
이미지라든지 바꾸면 멋집니다.
②CircleCI와 Slack을 연계
CircleCI 관리 화면에서 NOTIFICATIONS > Chat Notifications로 이동하여 방금 검색한 Webhook URL을 붙여넣고 저장합니다.
이제 GitHub에 푸시되면 빌드 결과 등이 자동으로 통지됩니다. (커버리지 리포트는 아직)
③CircleCI 환경 변수 추가
CircleCI 관리 화면에서 BUILD SETTINGS > Environment Variables로 이동하여 다음 환경 변수를 추가합니다.
Key: SLACK_NOTICE_HOOK
Value: 先ほど取得したWebhook URL
④ config.yaml 편집
예를 들면 이런 느낌으로 store_artifacts
되고 있다고 합니다.
- store_artifacts:
path: coverage.html
destination: coverage.html
그 직후에 POST 요청할 작업을 추가합니다.
- run:
name: coverage report
command: |
curl -s -S -X POST \
-d "{'channel': '#your_channel', 'username': 'coverage-report', 'text': ':circleci: coverage report: <https://$CIRCLE_BUILD_NUM-000000000-gh.circle-artifacts.com/0/coverage.html|open report :earth_asia: >(build $CIRCLE_BUILD_NUM)' }" \
$SLACK_NOTICE_HOOK >/dev/null
이미 CircleCI의 Artifacts에서 아래와 같이 coverage.html을 낼 수 있다고 가정합니다.
작동 확인한 CircleCI 버전은 2.0입니다.
설정 절차
①Slack의 Webhook URL 취득
이 기사 를 참고로 취득해 주세요.
기본적으로는 "설정 추가 → 대상 채널 선택 → Webhook URL을 삼가 → 설정 저장"이라는 흐름입니다.
이미지라든지 바꾸면 멋집니다.
②CircleCI와 Slack을 연계
CircleCI 관리 화면에서 NOTIFICATIONS > Chat Notifications로 이동하여 방금 검색한 Webhook URL을 붙여넣고 저장합니다.
이제 GitHub에 푸시되면 빌드 결과 등이 자동으로 통지됩니다. (커버리지 리포트는 아직)
③CircleCI 환경 변수 추가
CircleCI 관리 화면에서 BUILD SETTINGS > Environment Variables로 이동하여 다음 환경 변수를 추가합니다.
Key: SLACK_NOTICE_HOOK
Value: 先ほど取得したWebhook URL
④ config.yaml 편집
예를 들면 이런 느낌으로 store_artifacts
되고 있다고 합니다.
- store_artifacts:
path: coverage.html
destination: coverage.html
그 직후에 POST 요청할 작업을 추가합니다.
- run:
name: coverage report
command: |
curl -s -S -X POST \
-d "{'channel': '#your_channel', 'username': 'coverage-report', 'text': ':circleci: coverage report: <https://$CIRCLE_BUILD_NUM-000000000-gh.circle-artifacts.com/0/coverage.html|open report :earth_asia: >(build $CIRCLE_BUILD_NUM)' }" \
$SLACK_NOTICE_HOOK >/dev/null
Key: SLACK_NOTICE_HOOK
Value: 先ほど取得したWebhook URL
- store_artifacts:
path: coverage.html
destination: coverage.html
- run:
name: coverage report
command: |
curl -s -S -X POST \
-d "{'channel': '#your_channel', 'username': 'coverage-report', 'text': ':circleci: coverage report: <https://$CIRCLE_BUILD_NUM-000000000-gh.circle-artifacts.com/0/coverage.html|open report :earth_asia: >(build $CIRCLE_BUILD_NUM)' }" \
$SLACK_NOTICE_HOOK >/dev/null
:circleci:
는 slack 측에서 emoji 등록되어 있어야 합니다. emoji는 없어도 괜찮습니다. $CIRCLE_BUILD_NUM
는 CircleCI의 미리 정의된 환경 변수입니다. 특별히 설정할 필요는 없습니다. 000000000
는 프로젝트 별 ID입니다. 커버리지 파일 링크를 열어 URL을 확인합니다. https://$CIRCLE_BUILD_NUM-000000000-gh.circle-artifacts.com/0/coverage.html
는 커버리지 파일을 어떤 경로로 배치하고 있는지에 따라 달라지므로 적절히 수정해 주십시오. SLACK_NOTICE_HOOK
거의 CircleCI의 관리 화면에 등록한 환경 변수입니다. 완성
이런 식으로 통지됩니다.
open report
를 클릭하면 적용 범위 보고서를 볼 수 있습니다.했어!
사이고에게
이것 만들었는데 좋지만 결국 아무도 봐주지 않을 것 같다. . .
필요할 때 쉽게 볼 수 있게 되었다고 해서 좋을까.
참고 자료
Circle CI에서 SimpleCov 커버리지 보고서를 출력하고 출력 결과 링크를 Slack에 알립니다.
Reference
이 문제에 관하여(Slack에서 CircleCI에서 커버리지 보고서 알림을 받는 구성 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gold-kou/items/24a1d68a65d641115b9e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Circle CI에서 SimpleCov 커버리지 보고서를 출력하고 출력 결과 링크를 Slack에 알립니다.
Reference
이 문제에 관하여(Slack에서 CircleCI에서 커버리지 보고서 알림을 받는 구성 단계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gold-kou/items/24a1d68a65d641115b9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)