是否有可在Google App Engine上运行的持续集成工具?
答案 0 :(得分:3)
我不这么认为。 Google App Engine安全沙箱环境似乎与我所知道的所有CI引擎的要求不兼容(写入文件系统是任何引擎检查源,编译它们,在测试期间记录,构建报告的基本需求等等。)
正如我在评论中所说,Amazon EC2 适合运行CI引擎,我知道有很多企业为此目的使用它。你应该真正研究这个方向。
答案 1 :(得分:3)
最近,Cloudbees带来了这个功能:
Google App Engine用户现在可以通过在appengine.cloudbees.com上注册来在云中运行Jenkins持续集成。 Jenkins将监控项目的源代码以进行任何更改,运行必要的构建和测试,并通知您的团队任何问题 - 或者如果一切正常,则自动将应用程序部署到Google App Engine。
答案 2 :(得分:2)
在一天结束时,app引擎应用程序只是python代码或java代码。您可以使用自己喜欢的CI工具来构建应用程序,运行单元测试,并部署到您想要的任何测试服务器,无论是本地使用开发服务器,还是部署到云,如果您真的想要...您正在寻找哪些额外功能为?
编辑:既然我明白问题是关于在应用引擎上运行的CI,而不是CI for 应用引擎,我上面的回答几乎没用。
答案 3 :(得分:1)
是的,您可以使用[当前实验性]流量分割功能, 使用cookie选项,用于将新客户端发送到新版本。
https://developers.google.com/appengine/docs/adminconsole/trafficsplitting
保留当前版本,将新版本部署到暂存,测试, 当您希望所有新客户端访问该版本时, 只需要一个请求过滤器,为所有新客户设置一个短期重定向cookie。
只要在设置之前检查此cookie, 所有现有客户端都将看到旧版本,所有新客户端都将获得新版本。
如果您在memcached-backed-by-ds中保留最新的cookie值{使用到期日期!},您可以实现与单个请求过滤器的持续集成;只需将数据存储单例设置为新的流量分割cookie,就可以了。
答案 4 :(得分:0)
直接使用app引擎我不认为这是可能的。我对AppEngine如何工作的理解(我承认相当有限)表明,有可能有一系列服务可以共同完成这项工作。基本上,您需要一个服务,它是您的存储系统的代理服务器,也是构建服务的代理服务器(这两个服务都不能在AppEngine上)。然后,AppEngine可以监视执行相关副本和构建隐喻的这些服务。
如果正在构建的东西本身就是一个应用程序,您可以自动部署它,然后使用AppEngine服务连接到它并进行测试。
我认为这不会比拥有本地CI实例更有效,而且至少在短期内更难以设置和维护。
同样,我目前对AppEngine的理解仅限于我使用Google Wave和其他一些小项目。