Команда условной сборки Maven на Travis CI с использованием Regex - PullRequest
3 голосов
/ 23 мая 2019

В моем скрипте 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 ответвления. Так что я думаю, что эта дополнительная проверка ветвей здесь избыточна.

Итак, правила сборки, которые я пытаюсь реализовать:

  1. Если это фиксация push из локальных веток в удаленные, то запустите профиль default с mvn clean install.
  2. Если это новый запрос на получение или запрос на выборку объединить , тогда запустите профиль test с mvn clean install -P test

Какими будут правильные проверки для достижения этого в скрипте Travis CI?

...