仅当 travis-ci 中的 master 分支时,如何 运行 命令?

How to run a command only if is the master branch in travis-ci?

我有一个开源项目,如果代码在 master 分支中,我想部署代码,我已经尝试了很多方法,例如:

- if [[ $TRAVIS_BRANCH == 'master' ]]; then fab deploy; fi

或类似的东西:

BRANCH = "master"

def _get_local_branch():
    return local("git rev-parse --abbrev-ref HEAD", capture=True)

def deploy():
    local_branch = _get_local_branch()
    if local_branch == BRANCH:
        print green("Deploy succefully done!")

    print yellow("Deploy allowed just in the master branch.")

但是这不行,即使在其他人的分支中,也触发了fab deploy命令。

我不确定为什么你的第一种方法不起作用,但我建议在你的 .travis.yml 文件中使用 deploy: 指令和自定义部署脚本,如下所示:

deploy:
  provider: script
  script: scripts/deploy.sh
  on:
    branch: master

这里是 documentation.

希望这对您有所帮助。