使推送部署工作,配置“发布管道”

3 投票
2 回答
971 浏览
提问于 2025-04-18 05:37

上周开始,突然间用 git push origin master 这个命令就不能再用来“推送部署”了。虽然这个命令确实把代码推送到了谷歌的远程仓库,代码也在那儿,但就是不再自动部署了。你可以在这里了解更多信息:GAE: 推送部署的问题

看起来谷歌那边的事情在变化,这周在谷歌开发者控制台的“云开发/发布”部分有了新东西;就是“配置发布管道”。

这里有三个设置:管道名称、管道任务,还有一个可选的设置,可以选择通过邮件发送部署通知。

我随便输入了一个名字,比如“mydevpipeline”,选择“仅部署源代码”,然后勾选了邮件通知的选项。但我却收到了这个错误:“创建管道失败。”我还试着不勾选邮件选项,结果还是同样的错误。反复尝试了好几次。

就没有其他办法了……有没有人成功创建这个管道并让它正常工作?

看起来这个管道配置必须完成,才能从现在开始实现推送部署。我没有看到任何关于这个变化的新闻或通知……

顺便说一下,文档 https://developers.google.com/appengine/docs/push-to-deploy 上并没有提到管道的内容。可能是过时了吧。

更新:

你猜怎么着……我继续尝试在实际的GAE项目上配置这个管道(上面提到的是我用的开发GAE项目)……结果成功了。我可以顺利配置一个管道。之后,我又可以进行推送部署了,不过目前只在实际版本上能用。我可能会尝试创建一个新的开发项目,似乎现有的项目有时会“坏掉”……我之前也遇到过类似的问题,创建一个新项目确实能解决问题……

2 个回答

0

我花了很长时间才让这个在PHP上正常工作,经过与谷歌的多次沟通,最后我才明白,在你的app.yaml文件里需要有这么一行:

threadsafe: false

为了让这个流程能够成功识别并部署你的git推送(我用的是sourcetree,但命令行git的效果是一样的),这行代码必须存在。如果这行代码被省略掉或者设置为true,流程就无法进行部署。

我想把这个答案放在这里,以防有人在这个讨论串里寻找帮助。我的一个项目“随机坏掉”了,在成功使用我的发布流程进行多次提交的三个月后,它突然在我推送时不再部署。最终给出的错误信息是“无法获取部署状态”——现在我的任何更改都无法应用到在线网站上。复制整个源代码,改个应用名称,然后推送到一个新的GAE项目,发布流程都能正常工作,但我需要原来的站点重新开始工作。

0

Google App Engine 的管道不太喜欢 .gitignore 文件。你可以试试看去掉这个文件是否能解决问题。这对我来说是有效的。

撰写回答