在找到这方面的信息时遇到一些麻烦,不确定我是如何搜索它的,所以我想在这里提出一个问题...
对Travis的GitHub拉取请求已经准备好开箱即用,但是......我有兴趣将每个PR部署到一个独立的URL(staging.example.com/pull-request-01或类似的东西......)。这可能是超级简单的,并在Travis' docs,但我找不到它。
有人有这样的CI设置吗?
答案 0 :(得分:0)
想出一个很酷的方法来做到这一点!这是一个非常自我解释的Gist,它可以帮助某人尝试在Ember项目中执行此操作,它也可能会通知任何其他代码堆栈。
https://gist.github.com/ChristopherJohnson25/7350169203a2ecfa9193785bede52bd3
答案 1 :(得分:0)
Heroku Review Apps和Gitlab Review Apps也可以这样做。如果您使用的是Docker,则还可以使用我构建的this tool。
答案 2 :(得分:0)
我可以发现Travis CI的一些文档可能对整理出完整答案很有用
加密的变量仅可用于从同一存储库发出的拉取请求。需要测试触发Travis CI的环境变量和Git交互...
script:
- if [ "$TRAVIS_PULL_REQUEST" == true ]; then bash ./travis/run_on_pull_requests; fi
登录Travis CI命令行界面后,对环境变量进行加密的过程看起来就像...
travis encrypt -r owner/project --pro SOMEVAR="secretvalue"
...,然后将上方(secure: ".... encrypted data ...."
)的输出复制到项目的_travis.yml
文件中。
对于DigitalOcean,我什么都没看到,但是并没有阻止任何人编写自己的脚本来进行此类事情,对于S3部署来说,Travis CI看起来已经有一些现成的 magics 要阅读的内容(上面的第三个链接)...
deploy:
provider: s3
access_key_id: "YOUR AWS ACCESS KEY"
secret_access_key: "YOUR AWS SECRET KEY"
bucket: "S3 Bucket"
skip_cleanup: true
on:
branch: release
condition: $MY_ENV = super_awesome
有人有这样的CI设置吗?
我还没有。但是一段时间以来,我一直在浏览Travis CI文档,并且将来可能会编辑此答案以包含更多参考。
我有兴趣将每个PR部署到一个独立的URL(staging.example.com/pull-request-01之类的东西。)这可能是非常简单的,并在Travis的文档中进行了概述,但是我找不到它。
除了先前建议的阅读材料之外,您可能还想在run_on_pull_requests
脚本中进行一些自定义操作。
我现在可以想到的最简单的方法是解析提交哈希,以使URL看起来像staging.example.com/pull-request-4d3adbe3f
。
有关如何在Bash脚本中构造这样的字符串的提示...
printf 'pull-request-%s' "$(git rev-parse --short HEAD)"
_url="staging.example.com/pull-request-$(git rev-parse --short HEAD)"
我建议使用提交哈希路由,因为这样,任何有权打开(从给定存储库中的)“拉取请求”的人都可以在其末端构建URL。
考虑让所有人知道您是被卡住还是完全解决。