有条件地执行 after_success 个操作?

Perform after_success actions conditionally?

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

deploy:
  # ...
  on:
    tags: true

deploy:块。

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

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

谢谢!

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

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: 功能,这将使事情变得更容易并使构建脚本更清晰。