【发布时间】:2020-02-06 14:08:20
【问题描述】:
我可以使用 travis-ci settings 为分支创建特定变量。 有没有办法使用 .travis.yml 实现相同的行为?
之前的答案是否定的 (see the answer)。但现在看来它可能已经过时了。
【问题讨论】:
标签: git github continuous-integration travis-ci
我可以使用 travis-ci settings 为分支创建特定变量。 有没有办法使用 .travis.yml 实现相同的行为?
之前的答案是否定的 (see the answer)。但现在看来它可能已经过时了。
【问题讨论】:
标签: git github continuous-integration travis-ci
阅读documentation on environment variables,似乎答案是否定的。
他们说:
请记住,Travis UI 中的环境变量定义(与.travis.yml 相对)旨在保护不存储在源代码管理中的机密。
您似乎至少有两个选择:
.travis.yml 文件。before_script 中的sourceed 的shell 脚本来完成,并让此脚本根据$TRAVIS_BRANCH 设置不同的变量环境变量(或任何其他逻辑,或任何其他travis environment variable)。类似的东西(未经测试,但我相信它的变体应该可以):
# .travis.yml
before_script: source env-vars.sh
# env-vars.sh
if [[ "$TRAVIS_BRANCH" == "master" ]]; then
export MY_VAR=master
else
export MY_VAR=not-master
fi
【讨论】:
source 在某种运行时文件夹中运行,但这有效:before_script: source $TRAVIS_BUILD_DIR/set-ci-environment-based-on-branch.sh(因此该脚本位于 git repo 根目录,在.travis.yml 旁边)。
DannyB is saying 的内容当然是有道理的,您应该熟悉它。但是,在我的设置中,我目前正在这样做,利用 .travis.yml 文件中的 env 部分:
env:
- PATH_TO_MY_BINARY=/tmp/bin
正如目前在my repo的开发/夜间版本中看到的那样
我希望这会有所帮助,尽管这篇文章已经起死回生。
【讨论】: