mc9
mc9

Reputation: 6349

TravisCI: Run after_success on a specific branch

I would like to know how to run an after_success script only for a specific branch.

I am using a custom script to deploy the app after build passes. I would only like to run this when on prod branch.

So far, I have tried the following:

#1

after_success:
  - # some deployment script
  on: prod

#2

branches:
  only:
    - prod
    after_success:
      - # some deployment script
#3

after_success:
  branches:
    only:
      - prod
  - # some deployment script

Any suggestions?

Upvotes: 24

Views: 9841

Answers (2)

ProjectFrank
ProjectFrank

Reputation: 642

You can also do this by using the script provider in the deploy phase of your build. This approach is a bit cleaner but only allows one command, unlike after_success.

deploy:
  provider: script
  script: # some deployment script
  on:
    branch: prod

Upvotes: 18

mc9
mc9

Reputation: 6349

I solved it by writing a simple script using TRAVIS_BRANCH environment variable and executed the script in after_success

.travis.yml

after_success:
- ./deploy.sh

deploy.sh

#!/bin/bash
if [ "$TRAVIS_BRANCH" == "prod" ]; then
  // do the deploy
fi

Upvotes: 32

Related Questions