我想使用Travis-CI和Github基于分支机构进行部署.
即 - 如果我们使用develop- 然后/deploy.rb使用DEV env主机名执行构建,如果master- 然后./deploy.rb使用PROD主机名,依此类推.
我发现只有一个想法 - 检查$TRAVIS_BRANC变量然后执行脚本,如:
language: php
install:
- true
script:
- test $TRAVIS_BRANCH = "develop" && ./ci/deploy.rb envdev.tld
- test $TRAVIS_BRANCH = "master" && ./ci/deploy.rb envprod.tld
Run Code Online (Sandbox Code Playgroud)
但对我来说,这个解决方案看起来有点奇怪.还有其他可能的事情吗?
任何提示/链接赞赏.
Hol*_*ust 25
Travis-CI总是根据.travis.yml您正在推动的分支创建构建.作为一种解决方案,您可以.travis.yml在不同的分支中维护不同的文件.
如果您经常在分支之间进行合并,则可能会导致分支之间的无意更改(如果将.travis.yml一个分支的更改合并到另一个分支).如果这是一个问题,您的解决方案可能更安全.
为了确保只构建特定的分支(例如develop和master),您可以将您的分支列入白名单.travis.yml.
使用现有解决方案时,您可以简化travis.yml脚本.将选择正确的部署目标的逻辑移动到ci/deploy.rb脚本中可能是有意义的(甚至可以添加一个单独的包装脚本,您可以从中调用.travis.yml).这样,如果您更改部署目标,那么您只有script一行.travis.yml甚至不需要更改.
或者,为了确保您的现有结构没有失败的测试,您甚至可以使用以下内容:
script:
- if [ "$TRAVIS_BRANCH" = "develop" ]; then ./ci/deploy.rb envdev.tld; fi
- if [ "$TRAVIS_BRANCH" = "master" ]; then ./ci/deploy.rb envprod.tld; fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5262 次 |
| 最近记录: |