【问题标题】:Perform after_success actions conditionally?有条件地执行 after_success 操作?
【发布时间】:2015-03-19 01:15:57
【问题描述】:

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

deploy:
  # ...
  on:
    tags: true

deploy: 块。

after_success 也可以这样吗?如果没有,如果我在新标签上,是否有另一种方法只在after_success 中执行某些操作?

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

谢谢!

【问题讨论】:

    标签: travis-ci


    【解决方案1】:

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

    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: 功能,它会让事情变得更容易并保持构建脚本更干净。

    【讨论】:

    • 太好了,非常感谢。我不知道你可以在.travis.yml 中嵌入一个 bash 脚本 - 我打算编写一个单独的脚本文件并让 Travis 运行它。
    • 不客气! Travis 很棒,它超级灵活!
    • 当然,这是一项很棒的服务!再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多