CircleCI에서 빌드 결과를 슬랙으로 알립니다. 5분만에 가능합니다.

CircleCI의 작업 결과를 슬랙에 알립니다.



본 기사에서는 무언가의 자동 테스트나 자동 배포의 결과를 slack에 통지하는 방법 기사로 하고 있습니다. 쉽게 알기 쉽게, 그리고 빨리 할 수 ​​있도록 정리했으므로, 곧 끝내서 다른 작업을 합시다! !

환경


CircleCI 2.1
orbs: slack: circleci/slack@3.4.2

조건


  • 벌써 어떠한 job를 작성이 끝났다.
  • 정상적으로 빌드가 가능하다.
  • slack 사용

  • 이러한 조건에 해당하는 경우 절차대로 처음 시작하십시오.
    해당되지 않는 경우 오류가 발생하면 혼란을 일으킬 수 있으므로주의하시기 바랍니다!

    공정



    1. webhook 취득
    2. CircleCI에서 환경 변수 설정
    3. config.yml 파일에 필요한 소스를 기술

    1. Webhook 받기



    ⬆️⬆️ 위의 URL에서 환경 변수로 설정하기위한 URL을 가져옵니다.
    지정한 계정에 로그인하고 알림할 채널을 지정하면 URL이 발급됩니다.


    로그인하면 위 사진에서 채널을 선택하는 화면이 나오므로 선택.
    다음 화면에서 URL이 나오므로 복사하여 삼가하십시오.

    2.CircleCI에서 환경 변수 설정



    CircleCI에서 환경 변수를 설정합니다.
    프로젝트 설정 화면에서 환경 변수 등록하기
    프로젝트를 선택하고 가져오기


    이름은 SLACK_WEBHOOK로
    Value는 이전에 삼킨 URL을 복사합니다.

    3. /.circleci/config.yml 파일에 알림 매개변수 설정



    config.yml
    
    orbs:
      slack: circleci/[email protected]
    
    
    # 省略
    
        - 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}'
    

    이 2 종류의 기술을한다

    내 경우

    config.yml
    version: 2.1
    
    orbs:
      slack: circleci/[email protected]
    
    jobs:
      build:
        docker:
        - image: circleci/ruby:2.6.5-node-browsers
          environment:
            - BUNDLER_VERSION: 2.2.3
            - RAILS_ENV: 'test'
        - image: circleci/mysql:5.7
          environment:
            - MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
            - MYSQL_ROOT_HOST: '127.0.0.1'
    
        working_directory: **
    
    
        steps:
        - checkout
    
        - restore_cache:
            keys:
            - v1-dependencies-{{ checksum "Gemfile.lock" }}
            - v1-dependencies-
    
        - run:
            name: install dependencies
            command: |
              gem install bundler -v 2.2.0
              bundle install --jobs=4 --retry=3 --path vendor/bundle
    
        - save_cache:
            paths:
            - ./vendor/bundle
            key: v1-dependencies-{{ checksum "Gemfile.lock" }}
    
        # Database setup
        - run: mv ./config/database.yml.ci ./config/database.yml
    
        # Database setup
        - run:
            name: DatabaseSetup
            command: |
               bundle exec rake db:create
               bundle exec rake db:schema:load
    
        # yarn install
        - run:
            name: yarn Install
            command: yarn install
    
    
        - run: bundle exec bin/webpack
    
        # run tests!
        - run:
            name: RSpec 並列実行
            command: |
              mkdir /tmp/test-results
              TEST_FILES="$(circleci tests glob " **/spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
    
              bundle exec rspec --format progress \
                              --out /tmp/test-results/rspec.xml \
                              --format progress \
                              $TEST_FILES
    
        # collect reports
        - store_test_results:
            path: /tmp/test-results
        - store_artifacts:
            path: /tmp/test-results
            destination: test-results
    
              #ssh接続
        - add_ssh_keys:
            fingerprints:
              - "**"
    
          #デプロイ
        - deploy:
            name: Capistrano deploy
            command: |
              if [ "${CIRCLE_BRANCH}" != "master" ]; then
                exit 0
              fi
                bundle exec cap production deploy
    
        - 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}'
    

    이제 job을 달려보고 통지가 오면 성공입니다.


    이 알림이 오면 완성입니다.
    수고하셨습니다! !

    좋은 웹페이지 즐겨찾기