GitLab을 사용한 CI 구축과 Slack과의 협력

4726 단어 슬랙GitLab

CI 환경 구축



조금 느려졌지만 앱의 CI 환경이 어느 정도 갖추어져 있으므로 정리합니다.
이전까지 작성한 Unit, Widget, Integration의 테스트 코드를 .gitlab-ci.yaml 에 기재하는 것으로, git에 push했을 때나 Merge했을 때에 테스트가 움직이도록(듯이) 설정합니다.

gitlab-ci.yaml
image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "28"
  ANDROID_BUILD_TOOLS: "28.0.2"
  ANDROID_SDK_TOOLS: "4333796"


stages:
  - build
  - test
  - deploy


UnitTests:
  stage: build
  script:
    - pwd
    - ./unit_test.sh
  tags:
    - mac-ci-runner

WidgetTests:
  stage: test
  script:
    - ./widget_test.sh
  tags:
    - mac-ci-runner

IntegrationTests:
  stage: deploy
  script:
    - ./test.sh
  tags:
    - mac-ci-runner


이때, .gitlab-ci.yaml 를 실행하는 Runner 를 실행하지 않으면, 실행했을 때에 flutter : command not found 가 되어 버리기 때문에, Runner 를 flutter 명령이 인스톨 되고 있는 Mac 상에 구축할 필요가 있습니다.
이 방법은 GitLab CI Runner를 Mac에 구축 문서를 참조하십시오.

이상의 설정을 완료하면 CICD > Pipelines에서는 다음과 같이 되어, 테스트가 실행되고 있는 것을 알 수 있습니다.
(실제는 Push, Merge, tag push 때 등에서 실행하는 테스트를 나누고 싶었지만, 그것은 다음에 캡처합니다)



테스트 결과를 Slack에 알리기



다음으로 Gitlab과 Slack의 협력을 수행합니다.

슬랙 측 설정


  • Slack API로 이동하여 Messaging의 Incoming Webhooks를 선택합니다.
  • Create your Slack app로 전환하고 アプリ名를 설정하고 通知させたいチャンネル名를 선택합니다.
    (아직 Slack 앱 등에서 작업 공간을 만들지 않은 경우이 단계에서 만들어 둡니다)
  • 작성이 완료되면 해당 앱의 화면으로 전환되므로 Activate Incoming Webhooks를 ON으로 설정하고 Webhook URL을 복사해 둔다. 여기에서 Slack 측 설정 완료

  • GitLab 측 설정


  • 대상 프로젝트의 Settings의 Integrations로 천이한다.
  • 전환 대상 페이지의 Slack notifications로 전환합니다.
  • 페이지내에서 통지의 대상으로 하고 싶은 계기를 선택한다.

  • Test settings and save changes를 선택하면 무사 설정 완료입니다. 이 단계에서 전항에서 설정한 Slack 채널에 통지합니다.



  • 요약



    이것으로 앱의 CI 설정이 완료되었습니다.
    테스트가 실패했을 때도 통지가 가기 때문에, 테스트 실행에 시간이 걸려, 다른 작업에 걸려 있을 때 등은 편리하네요.
    자신이 참여하고 있는 프로젝트의 퀄리티에는 아직 도착하지 않지만 일련의 흐름은 일단 이해할 수 있었을까...
    다음은 CD 환경의 구축을 실시합니다.

    좋은 웹페이지 즐겨찾기