Luan Fonseca
Luan Fonseca

Reputation: 1517

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

I have a open-source project and i want to deploy the code just if the code is in the master branch, i already tried many approachs, like:

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

Or something like:

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.")

But this not work, even in the other peoples branches, the fab deploy command was triggered.

Upvotes: 8

Views: 3433

Answers (1)

Dominic Jodoin
Dominic Jodoin

Reputation: 2538

I'm not sure why your first approach doesn't work but I would suggest using the deploy: directive in your .travis.yml file with a custom deployment script like this:

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

Here is the documentation.

Hope this helps.

Upvotes: 12

Related Questions