Jack
Jack

Reputation: 5434

Travis CI testing branches with corresponding set of environment variables

I have a project that I'm trying to automate tests using Travis CI. I have a dev branch and a test branch, and they have different environment variables. For example, on the dev branch, I need to connect to a different API than the test branch, specified by an environment variable. So, when I run the build on the dev branch on Travis, how do I set it up so that it only tests with the dev set of environment variables, and likewise for build on test branch?

Upvotes: 9

Views: 3254

Answers (2)

joshua-anderson
joshua-anderson

Reputation: 4466

There is no great way to do this right now, but you can write a shell script that checks the Travis environmental variable TRAVIS_BRANCH (Which returns the branch that Travis is testing) and sets respective environmental variables in response. Here is a short example (Please note that I'm not a expert in shell scripting so if I screwed this up or did something silly let me know and I'll fix it):

if [ ${TRAVIS_BRANCH} == development ]; then
    TEST_MODE=dev stuff
else
    TEST_MODE=master stuff
fi

export TEST_MODE

Upvotes: 9

user2288008
user2288008

Reputation:

Travis can have different .travis.yml configs for each branch. So modifying .travis.yml on branch test doesn't affect .travis.yml on develop or master branch:

  • develop branch .travis.yml:

    env:
      - DEVELOP_BRANCH_VARIABLE=FOO
    script:
      - ./run-develop-branch ${DEVELOP_BRANCH_VARIABLE}
    
  • test branch .travis.yml:

    env:
      - TEST_BRANCH_VARIABLE=BOO
    script:
      - ./run-test-branch ${TEST_BRANCH_VARIABLE}
    

Upvotes: 4

Related Questions