我有一个项目,我正在尝试使用Travis CI自动化测试。我有一个dev分支和一个测试分支,它们有不同的环境变量。例如,在dev分支上,我需要连接到不同于环境变量指定的测试分支的API。因此,当我在Travis上的dev分支上运行构建时,如何设置它以便它只使用dev环境变量集进行测试,同样用于在测试分支上构建?
答案 0 :(得分:8)
现在没有很好的方法可以做到这一点,但是您可以编写一个shell脚本来检查Travis环境变量TRAVIS_BRANCH
(返回Travis正在测试的分支)并设置相应的环境变量作为响应。这是一个简短的例子(请注意,我不是shell脚本的专家,所以如果我搞砸了或做了些傻事让我知道,我会解决它):
if [ ${TRAVIS_BRANCH} == development ]; then
TEST_MODE=dev stuff
else
TEST_MODE=master stuff
fi
export TEST_MODE
答案 1 :(得分:4)
Travis可以为每个分支设置不同的.travis.yml
配置。
因此,修改分支.travis.yml
上的test
不会影响.travis.yml
或develop
分支上的master
:
develop
分支.travis.yml
:
env:
- DEVELOP_BRANCH_VARIABLE=FOO
script:
- ./run-develop-branch ${DEVELOP_BRANCH_VARIABLE}
test
分支.travis.yml
:
env:
- TEST_BRANCH_VARIABLE=BOO
script:
- ./run-test-branch ${TEST_BRANCH_VARIABLE}