diff --git a/scripts/circleci/notify-slack-job-failure.js b/scripts/circleci/notify-slack-job-failure.js index 81620cc39a8c..3b4ef45cd29c 100644 --- a/scripts/circleci/notify-slack-job-failure.js +++ b/scripts/circleci/notify-slack-job-failure.js @@ -5,12 +5,17 @@ * will be a noop when running for forked builds (i.e. PRs). */ +const { + isVersionBranch, + getConfig, + assertValidGithubConfig, +} = require('@angular/dev-infra-private/ng-dev'); + if (process.env.CIRCLE_PR_NUMBER) { console.info('Skipping notifications for pull requests.'); process.exit(0); } -const {echo, set} = require('shelljs'); const { CIRCLE_JOB: jobName, CIRCLE_BRANCH: branchName, @@ -18,6 +23,17 @@ const { SLACK_COMPONENTS_CI_FAILURES_WEBHOOK_URL: webhookUrl, } = process.env; +const {github} = getConfig([assertValidGithubConfig]); +const isPublishBranch = isVersionBranch(branchName) || branchName === github.mainBranchName; + +// We don't want to spam the CI failures channel with e.g. Renovate branch failures. +if (isPublishBranch === false) { + console.info('Skipping notifications for non-publish branches.'); + process.exit(0); +} + +const {echo, set} = require('shelljs'); + const text = `\`${jobName}\` failed in branch: ${branchName}: ${jobUrl}`; const payload = {text}; const [channelName] = process.argv.slice(2);