我如何让heroku Scheduler Addon更新我的github存储库并进行部署?

时间:2019-06-08 14:22:16

标签: heroku heroku-ci

我在heroku上设置了此cron作业,以删除特定文件夹中的某些文件,然后使用新数据再次创建它们。我的代码在Github上并连接到heroku。在ceroku上运行此cron后,如何实现更新github分支?

1 个答案:

答案 0 :(得分:0)

您真的不想这样做。如果您要更改的文件应将其存储在S3或数据库或其他外部存储中。

Heroku dynos具有临时文件系统,heroku至少每24小时重新启动一次您的dynos。重新启动后,对本地文件系统的任何更改都将丢失。

这意味着如果您更改文件,并且在将文件推送到github之前heroku重新启动,则会丢失更改。

这也意味着每当您推送到github存储库时,都需要重新部署。因此,如果您不停地进行推送,则会不断进行重新部署。

理论上这是一种方法。

  • 安装heroku-apt-buildpack
  • 配置它以安装git。
  • 生成SSH密钥对。将私钥放在heroku应用程序的config var中。在github上安装公钥,以便您的dyno可以推送到github。
  • 使用config var中的ssh私钥,将cron作业配置为从git中提取,进行本地文件系统更改,并在进行任何本地文件系统更改后推送至git。
  • 如果您希望“最后一次推送获胜”语义强制推送。否则,您将需要处理推送失败的情况:“拉,可能解决冲突,推送”
  • 配置heroku在每次推送到master分支时从github自动部署。

但实际上-不要这样做。将文件放在某个外部存储服务上。