| #!/bin/bash |
| # We want to make sure all PRs are targeting the right branch when they're |
| # opened, otherwise we risk (for example) to land a beta-specific change to the |
| # master branch. This script ensures the branch of the PR matches the channel. |
| |
| set -euo pipefail |
| IFS=$'\n\t' |
| |
| source "$(cd "$(dirname "$0")" && pwd)/../shared.sh" |
| |
| if isCiBranch auto || isCiBranch try || isCiBranch try-perf || isCiBranch automation/bors/try; then |
| echo "channel verification is only executed on PR builds" |
| exit |
| fi |
| |
| channel=$(cat "$(ciCheckoutPath)/src/ci/channel") |
| case "${channel}" in |
| nightly) |
| channel_branch="master" |
| ;; |
| beta) |
| channel_branch="beta" |
| ;; |
| stable) |
| channel_branch="stable" |
| ;; |
| *) |
| echo "error: unknown channel defined in src/ci/channel: ${channel}" |
| exit 1 |
| esac |
| |
| branch="$(ciBaseBranch)" |
| if [[ "${branch}" != "${channel_branch}" ]]; then |
| echo "error: PRs changing the \`${channel}\` channel should be sent to the \ |
| \`${channel_branch}\` branch!" |
| |
| exit 1 |
| fi |