使用Regex在Travis CI上执行条件Maven构建命令

时间:2019-05-23 02:25:15

标签: regex maven github build travis-ci

在Github上的Travis CI脚本中,我有以下条件,如果将提交推送到远程分支,则default配置文件将运行。 test配置文件(如果是请求请求)。

script:
  - 'if [ "$TRAVIS_EVENT_TYPE" == "push" ]; then
      mvn clean install;
  else
      mvn clean install -P test;
  fi'

现在我面临的问题是,当从featuredevelop分支的合并(我不想合并)时, if 条件也会运行。我希望 if 条件仅在从本地featurebugfix分支到远程的推送时才运行。为了解决这个问题,我添加了正则表达式来匹配如下所示的分支。

script:
  - 'if [ "$TRAVIS_EVENT_TYPE" == "push" && "$TRAVIS_BRANCH" =~ ^(feature|bugfix)]; then
      mvn clean install;
  else
      mvn clean install -P test;
  fi'

但是会出现以下错误:

  

命令“如果[如果[“ $ TRAVIS_EVENT_TYPE” ==“ push” &&“ $ TRAVIS_BRANCH” =〜^(功能|错误修正)];则mvn clean install;否则mvn clean install -P test; fi以1退出

编辑:我认为匹配分支条件将无助于实现我在此处试图做的事情。由于合并将从feature-*bugfix-*develop分支。因此,我认为此额外的分支检查在这里是多余的。

所以我要实现的构建规则是:

  1. 如果这是从本地分支到远程分支的 commit push ,则使用default运行mvn clean install配置文件。
  2. 如果它是新的 pull请求或拉动请求 ,则使用test
  3. 运行mvn clean install -P test配置文件

在Travis CI脚本中实现此目标的正确检查是什么?

0 个答案:

没有答案