Continuous integration Travis CI部署拉请求
在寻找这方面的信息时遇到了一些困难,不确定我会如何搜索它,所以我想我会在这里抛出一个问题 Travis上的GitHub pull请求已经准备就绪,但是……我对将每个PR部署到一个独立的URL(staging.example.com/pull-request-01或类似的东西)感兴趣。这可能是非常简单的,并且在特拉维斯的文档中有概述,但我很难找到它Continuous integration Travis CI部署拉请求,continuous-integration,travis-ci,Continuous Integration,Travis Ci,在寻找这方面的信息时遇到了一些困难,不确定我会如何搜索它,所以我想我会在这里抛出一个问题 Travis上的GitHub pull请求已经准备就绪,但是……我对将每个PR部署到一个独立的URL(staging.example.com/pull-request-01或类似的东西)感兴趣。这可能是非常简单的,并且在特拉维斯的文档中有概述,但我很难找到它 有人有这样的CI设置吗 想出了一个很酷的方法!这里有一个非常自解释的要点,可以帮助尝试在Ember项目中执行此操作的人,它也可能会通知任何其他代码堆栈
有人有这样的CI设置吗 想出了一个很酷的方法!这里有一个非常自解释的要点,可以帮助尝试在Ember项目中执行此操作的人,它也可能会通知任何其他代码堆栈
使用和也可以这样做。如果您使用的是Docker,那么您也可以使用我创建的Docker。Travis CI的一些文档,我发现这些文档可能有助于整理完整答案
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:“……加密数据……”
)复制到项目的\u travis.yml
文件中
我没有看到任何关于DigitalOcean的东西,但是没有多少东西可以阻止任何人为这些东西编写自己的脚本,而且对于S3部署来说,Travis CI似乎有一些现成的魔法可以用来阅读(上面的第三个链接)
你的问题没有更多的答案了 有人有这样的CI设置吗 我不。。。然而但我已经研究了Travis CI文档一段时间,将来可能会编辑此答案,以包含更多参考资料 我对将每个PR部署到一个独立的URL(staging.example.com/pull-request-01或类似的东西)很感兴趣。这可能非常简单,并且在Travis的文档中有概述,但我很难找到它 除了前面建议的阅读材料之外,您可能还需要在
运行on\u pull\u请求
脚本中做一些定制工作
此时我能想到的最简单的方法是解析提交散列,这样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
考虑让我们都知道您是否陷入困境或完全解决问题。您打算使用哪个部署提供商?最有可能是Digital Ocean或s3。可能是s3,因为它看起来比它好一点(容易一点)。但是,可以使用类似Heroku的东西作为临时服务器。。。
printf 'pull-request-%s' "$(git rev-parse --short HEAD)"
_url="staging.example.com/pull-request-$(git rev-parse --short HEAD)"