В моем скрипте Travis CI на Github у меня есть следующее условие, при котором запускается профиль default
, если коммиты передаются в удаленную ветку. И test
профиль, если это пул-запрос.
script:
- 'if [ "$TRAVIS_EVENT_TYPE" == "push" ]; then
mvn clean install;
else
mvn clean install -P test;
fi'
Теперь проблема, с которой я сталкиваюсь, заключается в том, что условие , если также выполняется, когда происходит слияние с ветки feature
в develop
, которое мне не нужно. Я хочу, чтобы условие if выполнялось только тогда, когда происходит переход от локальной ветви feature
или bugfix
к удаленной. Чтобы справиться с этим, я добавил регулярное выражение для соответствия ветвям, как показано ниже.
script:
- 'if [ "$TRAVIS_EVENT_TYPE" == "push" && "$TRAVIS_BRANCH" =~ ^(feature|bugfix)]; then
mvn clean install;
else
mvn clean install -P test;
fi'
Но выдает следующую ошибку:
Команда "if [" $ TRAVIS_EVENT_TYPE "==" push "&&" $ TRAVIS_BRANCH "= ~ ^ (feature | bugfix)]; затем mvn clean install; в противном случае mvn clean install -P test; fi" завершена с 1 .
Редактировать : Я думаю, что соответствие условию ветвления не поможет в достижении того, что я пытаюсь сделать здесь. Так как слияние будет от feature-*
или bugfix-*
до develop
ответвления. Так что я думаю, что эта дополнительная проверка ветвей здесь избыточна.
Итак, правила сборки, которые я пытаюсь реализовать:
- Если это фиксация push из локальных веток в удаленные, то запустите профиль
default
с mvn clean install
.
- Если это новый запрос на получение или запрос на выборку объединить , тогда запустите профиль
test
с mvn clean install -P test
Какими будут правильные проверки для достижения этого в скрипте Travis CI?