有条件地执行after_success操作?

时间:2015-03-16 17:08:29

标签: travis-ci

我正在开发一个部署到Travis当前不支持的提供程序的项目,因此我在after_success块中编写了部署步骤。但是,我想将Travis配置为仅部署在新标签上。我知道使用deploy:块时可以添加

deploy:
  # ...
  on:
    tags: true

deploy:区块。

after_success中是否可以相同?如果没有,是否还有另一种方法可以在after_success中执行某些操作,如果我使用的是新标记?

如果Travis不支持这个,我可以写一个shell脚本在所有成功后运行,检查是否在新标签上,然后有条件地进行部署,但我更喜欢能够使用Travis自动完成。

谢谢!

1 个答案:

答案 0 :(得分:23)

是的!我需要完全相同的事情并通过以下方式解决:

after_success:
  if ([ "$TRAVIS_BRANCH" == "master" ] || [ ! -z "$TRAVIS_TAG" ]) && 
      [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
    echo "This will deploy!"
  else
    echo "This will not deploy!"
  fi

我希望他们为after_success事件引入on:tags:功能,它会让事情变得更容易,并使构建脚本更清晰。