Я хочу запретить Vercel создавать предварительные развертывания для запросов на вытягивание зависимых ботов.
В Vercel на этапе игнорируемой сборки я пробовал это:
bash vercel.sh
и в моем репо файл vercel.sh выглядит так:
#!/bin/bash
echo "VERCEL_ENV: $VERCEL_ENV"
# check branch name
BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "BRANCH: $BRANCH"
# check if branch name does not contain "Bump" (every dependabot PR starts with this)
if [[ $BRANCH != *"Bump"* ]]; then
exit 1
fi
exit 0
Что мне не хватает? Развертывание все же прошло.
Также пытался записать это право на шаг игнорируемой сборки.
if [ "$VERCEL_GIT_COMMIT_AUTHOR_LOGIN" == "dependabot" ]; then exit 0; else exit 1; fi
Еще создал развертывание.
if (process.env.VERCEL_GIT_COMMIT_AUTHOR_LOGIN === "dependabot") {
process.exit(0);
} else {
process. Exit(1);
}
а затем вызывая его как node ignore-nuild.js
на шаге игнорируемой сборки, но это тоже не помогло.
Моя беда, это был «зависимый бот [бот]», а не просто «зависимый бот».
Во-первых, всегда заключайте в кавычки переменную, которую хотите отобразить. Таким образом, вы можете поймать невидимое пространство, которое может испортить его значение:
echo "BRANCH: '${BRANCH}'"
^^^ ^^^
Во-вторых, вы можете добавить echo
перед выходом, чтобы отличать exit 1
от exit 0
.
echo "continue"
exit 0
В-третьих, вы можете попробовать для тестирования:
if [[ "${BRANCH#Bump}" != "${BRANCH}" ]]; then ...
Если $BRANCH
начинается с Bump
, то условие будет истинным.
ОП предлагает:
if (process.env.VERCEL_GIT_COMMIT_AUTHOR_LOGIN === "dependabot[bot]") {
process.exit(0);
} else {
process. Exit(1);
}