Travis CI testing branches with corresponding set of environment variables

匿名 (未验证) 提交于 2019-12-03 08:42:37

问题:

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?

回答1:

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 


回答2:

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} 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!