gpt4 book ai didi

travis-ci - 特拉维斯 : different `script` for different branch?

转载 作者:行者123 更新时间:2023-12-03 11:27:14 27 4
gpt4 key购买 nike

我想使用 Travis-CI 和 Github 基于分支设置部署。

IE。 - 如果我们从 develop 构建- 然后执行 /deploy.rb使用 DEV 环境主机名,如果 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

但是这个解决方案对我来说看起来有点奇怪。还有其他可能实现这一点吗?

任何提示/链接表示赞赏。

最佳答案

Travis-CI 总是基于 .travis.yml 创建构建在你插入的分支中。作为解决方案,您可以因此维护不同的 .travis.yml不同分支中的文件。

如果您定期在分支之间合并,那么这可能会导致分支之间的无意更改(如果您将一个分支的 .travis.yml 的更改合并到另一个分支)。如果这是一个问题,您的解决方案可能更安全。

为确保仅构建特定分支(例如 developmaster ),您可以 whitelist您的 .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

关于travis-ci - 特拉维斯 : different `script` for different branch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com