CircleaCI를 통한 알림 처리 사용자 정의
6779 단어 CircleCICircleCI2.1
개시하다
현재 참여 중인 프로젝트에서는 한 창고로 여러 모듈의 코드(단일 보고 구조)를 관리합니다.
모든 모듈은 lint과 단일 테스트 등 임무를 수행한다. 모든 임무는 성공 여부를 알리는 설정이 있기 때문에 대량의 알림에서 채팅 도구의 시간선이 곧 흘러나오기 때문에 나는 매우 괴롭다.
따라서 작업이 실패했을 때, 또는 모든 작업이 성공했다는 형식만 알려주지만, 일반적인 설정만 대응할 수 없습니다.Orb
(확장 기능 등)을 사용하면 슬랙의 알림을 사용자 정의할 수 있지만 현재 사용하는 채팅이 지원되지 않기 때문에 명령을 정의하고 자체적으로 처리를 만들었습니다.
(제작시 슬랙용 Orb소스 코드 참조
이 설정에는 명령 정의에 사용할 수 있는 CircleaCI 버전 2.1이 필요합니다.
절차.
단계 1: 명령 정의
통지할 처리를 명령으로 정의합니다.여기에 조개껍질이 bash인 상황을 예로 들어 설명한다.
최초의 두 단계 (steps) 는 작업의 성공 여부입니다. 그 중 하나를 실행합니다.작업이 성공하면Success
, 실패하면Failure
환경 변수CI_JOB_STATUS
에 저장됩니다.
마지막 3단계(성공 여부와 상관없이)에서 전처리에 저장된CI_JOB_STATUS
을 참조하여 통지가 필요한지 판단한다.
이 예에서는 생략되었지만 # ここで通知を実施
와 리뷰가 적힌 곳에서는 알림용 API 등을 호출하여 실제 알림 처리를 한다.
알림에 필요한 정보는 환경 변수를 통해 얻을 수 있습니다.자세한 내용은 참고 자료를 참조하십시오.commands:
notify-result:
description: ジョブの処理結果通知処理
parameters:
event:
description: |
通知条件("Always": 常に通知, "Success": 成功時のみ, "Failure": 失敗時のみ)
enum:
- Always
- Success
- Failure
type: enum
steps:
- run:
name: ジョブのステータス検知(失敗)
command: |
echo 'export CI_JOB_STATUS="Failure"' >> $BASH_ENV
when: on_fail
- run:
name: ジョブのステータス検知(成功)
command: |
echo 'export CI_JOB_STATUS="Success"' >> $BASH_ENV
when: on_success
- run:
name: 通知処理の呼び出し
command: |
if [ "${CI_JOB_STATUS}" = "${NOTIFY_PARAM_EVENT}" ] || [ "${NOTIFY_PARAM_EVENT}" = "Always" ]; then
source $BASH_ENV
# ここで通知を実施
else
echo "Notification skipped."
echo "Job status: ${CI_JOB_STATUS}, Parameters(event: ${NOTIFY_PARAM_EVENT})"
exit 0
fi
environment:
NOTIFY_PARAM_EVENT: <<parameters.event>>
when: always
단계 2: 작업 정의
1단계에서 생성한 명령을 작업에 포함합니다.
다음 예에서 lint에서 오류가 발견되면 알림을 합니다.jobs:
exec-lint:
description: lintの実行
executor: sample-executor
steps:
- run:
name: lintコマンドの実行
command: yarn lint
- notify-result:
event: Failure
3단계: 워크플로우 포함
작업흐름에 작성된 작업을 포함합니다.
다음 예에서 임무에 별명을 붙이도록 지정하십시오.workflows:
version: 2
workflow-sample:
jobs:
- build
- exec-lint:
name: lint-backend
requires:
- build
- exec-ut:
name: ut-backend
requires:
- lint-backend
덤
구성 파일의 유효성 검사
CircleaCI의 CLI가 설치된 경우 설정 파일을 확인할 수 있습니다.
MacOS에서 Homebrew를 사용할 수 있는 경우 다음 명령을 사용하여 CLI를 설치할 수 있습니다.brew install circleci
창고의 루트 디렉터리 ((name
디렉터리가 있는 위치) 에서 명령을 실행합니다.결과가 정상이면 출력은 다음과 같다.$ circleci config validate
Config file at .circleci/config.yml is valid.
Reference
이 문제에 관하여(CircleaCI를 통한 알림 처리 사용자 정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-kubodera/items/46664568810979172053
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
단계 1: 명령 정의
통지할 처리를 명령으로 정의합니다.여기에 조개껍질이 bash인 상황을 예로 들어 설명한다.
최초의 두 단계 (steps) 는 작업의 성공 여부입니다. 그 중 하나를 실행합니다.작업이 성공하면
Success
, 실패하면Failure
환경 변수CI_JOB_STATUS
에 저장됩니다.마지막 3단계(성공 여부와 상관없이)에서 전처리에 저장된
CI_JOB_STATUS
을 참조하여 통지가 필요한지 판단한다.이 예에서는 생략되었지만
# ここで通知を実施
와 리뷰가 적힌 곳에서는 알림용 API 등을 호출하여 실제 알림 처리를 한다.알림에 필요한 정보는 환경 변수를 통해 얻을 수 있습니다.자세한 내용은 참고 자료를 참조하십시오.
commands:
notify-result:
description: ジョブの処理結果通知処理
parameters:
event:
description: |
通知条件("Always": 常に通知, "Success": 成功時のみ, "Failure": 失敗時のみ)
enum:
- Always
- Success
- Failure
type: enum
steps:
- run:
name: ジョブのステータス検知(失敗)
command: |
echo 'export CI_JOB_STATUS="Failure"' >> $BASH_ENV
when: on_fail
- run:
name: ジョブのステータス検知(成功)
command: |
echo 'export CI_JOB_STATUS="Success"' >> $BASH_ENV
when: on_success
- run:
name: 通知処理の呼び出し
command: |
if [ "${CI_JOB_STATUS}" = "${NOTIFY_PARAM_EVENT}" ] || [ "${NOTIFY_PARAM_EVENT}" = "Always" ]; then
source $BASH_ENV
# ここで通知を実施
else
echo "Notification skipped."
echo "Job status: ${CI_JOB_STATUS}, Parameters(event: ${NOTIFY_PARAM_EVENT})"
exit 0
fi
environment:
NOTIFY_PARAM_EVENT: <<parameters.event>>
when: always
단계 2: 작업 정의
1단계에서 생성한 명령을 작업에 포함합니다.
다음 예에서 lint에서 오류가 발견되면 알림을 합니다.
jobs:
exec-lint:
description: lintの実行
executor: sample-executor
steps:
- run:
name: lintコマンドの実行
command: yarn lint
- notify-result:
event: Failure
3단계: 워크플로우 포함
작업흐름에 작성된 작업을 포함합니다.
다음 예에서 임무에 별명을 붙이도록 지정하십시오.
workflows:
version: 2
workflow-sample:
jobs:
- build
- exec-lint:
name: lint-backend
requires:
- build
- exec-ut:
name: ut-backend
requires:
- lint-backend
덤
구성 파일의 유효성 검사
CircleaCI의 CLI가 설치된 경우 설정 파일을 확인할 수 있습니다.
MacOS에서 Homebrew를 사용할 수 있는 경우 다음 명령을 사용하여 CLI를 설치할 수 있습니다.brew install circleci
창고의 루트 디렉터리 ((name
디렉터리가 있는 위치) 에서 명령을 실행합니다.결과가 정상이면 출력은 다음과 같다.$ circleci config validate
Config file at .circleci/config.yml is valid.
Reference
이 문제에 관하여(CircleaCI를 통한 알림 처리 사용자 정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-kubodera/items/46664568810979172053
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
brew install circleci
$ circleci config validate
Config file at .circleci/config.yml is valid.
Reference
이 문제에 관하여(CircleaCI를 통한 알림 처리 사용자 정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t-kubodera/items/46664568810979172053텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)