Как запустить скрипт при каждом коммите - PullRequest
0 голосов
/ 17 мая 2018

Я хочу запускать скрипт локально всякий раз, когда кто-то в RepoA делает коммит на ветке

currentBranch=$(git rev-parse --abbrev-ref HEAD)

if [[ $currentBranch = *"my-"* ]]; then
  echo "contains my"
else
  echo "Hold on there! you need to rename your branch before you commit!
  "
fi

У меня работает этот запуск, который работает, когда я запускаю npm run test:script, он запускает> "test:script": "./branchname.sh"

однако у меня есть некоторые проблемы.один, как я могу запустить это каждый раз, когда кто-то совершает коммит?

Я пытался поместить его в свой пакет. json

  "pre-commit": [
    "lint",
    "test:script"
  ],

, но он не запускается на каждый commit

также, как я могу заставить сам коммит прервать работу в случае сбоя скрипта, т.е. перейти в блок else

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете воспользоваться git-хуками. В папке .git/hooks есть папка, в которой находится папка проекта.

Вот полная документация: https://git -scm.com / book / gr / v2 / Customizing-Git-Git-Hooks

Обратите внимание, что вам нужно дать exec разрешения для перехвата файлов.

Хуки могут быть в основном bash-файлами, поэтому вы можете прервать коммит, выходя со значением! = 0.

Вот пример: https://github.com/xyzale/my-stuff/blob/master/git/hooks/pre-commit

Чтобы поделиться хуками со своими соавторами, вы можете добавить папку hooks/ в свой репозиторий и связать ее с .git/hooks или отредактировать git config о местоположении хуков с помощью команды

git config core.hooksPath hooks
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...