Slack에서 CircleCI에서 커버리지 보고서 알림을 받는 구성 단계

소개



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
  • channel은 임의의 채널명을 지정해 주세요.
  • username은 알면 무엇이든 좋습니다.
  • :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에 알립니다.

    좋은 웹페이지 즐겨찾기