仅当 CircleCI 中的特定分支失败时,如何才能收到通知?
How can I get notification only if a specific branch fails in CircleCI?
如果 master
分支在 CircleCI 中失败,我希望收到通知。
有一个user request to add this feature, but it was closed without comment - 所以我不知道Circle是否添加了这个功能。
我可以看到有 filter
in the Configuration Reference,但这些似乎只存在于整个工作流程中 - 我想 filter
只是 notify
部分。
config.yml
包含在下面。
version: 2.1
orbs:
node: circleci/node@4.0.0
slack: circleci/slack@4.0
executors:
docker-node-12:
docker:
- image: cimg/node:12.19
full-app:
resource_class: 2xlarge
docker:
- image: cimg/node:12.19
- image: elasticsearch:6.4.3
- image: circleci/postgres:10-ram
- image: circleci/redis:6
jobs:
install npm packages:
executor: docker-node-12
steps:
- checkout
- node/install-packages
- persist_to_workspace:
root: /home/circleci/project
paths:
- .
run tests:
description: Run App's tests
# https://circleci.com/docs/reference-2-1/#docker
parameters:
filter:
description: "Test filter for jest"
default: ""
type: string
executor: full-app
steps:
- attach_workspace:
at: /home/circleci/project
- run:
name: Run tests
command: |
cd /home/circleci/project; set -o allexport; cp .env.circleci .env; source .env
npx jest --passWithNoTests --runInBand --logHeapUsage << parameters.filter >>
notify:
docker:
- image: "cimg/base:stable"
steps:
- slack/notify:
custom: |
{
"blocks": [
{
"type": "section",
"fields": [
{
"type": "plain_text",
"text": "Oh no, master failed!",
"emoji": true
}
]
}
]
}
event: always
workflows:
install_and_test:
jobs:
- install npm packages
- run tests:
requires:
- install npm packages
matrix:
parameters:
filter:
- --testPathPattern='a'
- --testPathPattern='b'
- notify:
context: slack-secrets
您可以根据 documentation 使用 branch_pattern
。
steps:
- slack/notify:
channel: $SLACK_CHANNEL
event: fail
template: basic_fail_1
branch_pattern: main
如果 master
分支在 CircleCI 中失败,我希望收到通知。
有一个user request to add this feature, but it was closed without comment - 所以我不知道Circle是否添加了这个功能。
我可以看到有 filter
in the Configuration Reference,但这些似乎只存在于整个工作流程中 - 我想 filter
只是 notify
部分。
config.yml
包含在下面。
version: 2.1
orbs:
node: circleci/node@4.0.0
slack: circleci/slack@4.0
executors:
docker-node-12:
docker:
- image: cimg/node:12.19
full-app:
resource_class: 2xlarge
docker:
- image: cimg/node:12.19
- image: elasticsearch:6.4.3
- image: circleci/postgres:10-ram
- image: circleci/redis:6
jobs:
install npm packages:
executor: docker-node-12
steps:
- checkout
- node/install-packages
- persist_to_workspace:
root: /home/circleci/project
paths:
- .
run tests:
description: Run App's tests
# https://circleci.com/docs/reference-2-1/#docker
parameters:
filter:
description: "Test filter for jest"
default: ""
type: string
executor: full-app
steps:
- attach_workspace:
at: /home/circleci/project
- run:
name: Run tests
command: |
cd /home/circleci/project; set -o allexport; cp .env.circleci .env; source .env
npx jest --passWithNoTests --runInBand --logHeapUsage << parameters.filter >>
notify:
docker:
- image: "cimg/base:stable"
steps:
- slack/notify:
custom: |
{
"blocks": [
{
"type": "section",
"fields": [
{
"type": "plain_text",
"text": "Oh no, master failed!",
"emoji": true
}
]
}
]
}
event: always
workflows:
install_and_test:
jobs:
- install npm packages
- run tests:
requires:
- install npm packages
matrix:
parameters:
filter:
- --testPathPattern='a'
- --testPathPattern='b'
- notify:
context: slack-secrets
您可以根据 documentation 使用 branch_pattern
。
steps:
- slack/notify:
channel: $SLACK_CHANNEL
event: fail
template: basic_fail_1
branch_pattern: main