自动go app部署

Jac*_*cob 4 deployment go

我想知道是否有任何方便的方法可以自动将代码部署到GO中的实时服务器,无论是标准内置方法还是其他方法.

我想要谷歌应用程序引擎的东西,我只是运行命令,它上传到服务器并触发重启.

(最终我想要一个git提交来触发重建和重新部署,但这将是未来的轨道)

Fab*_*mes 5

我推荐Travis CI + Heroku.

您只需使用git push就可以直接部署到heroku,但我希望在此之前使用Travis构建并运行测试.

网上有一些指南,但我会尝试直接指向这一点:

你需要什么?

  • Github帐号
  • Travis帐户(与github链接,如果是开源免费)
  • Heroku应用程序(免费dyno工作很棒)

建立

在您的github仓库中,创建以下文件:

之后转到Travis帐户,添加您的存储库并为其启用构建.

这是一个示例最小配置文件内容(基于我部署到heroku的应用程序):

.travis.yml

language: go
go:
  - tip
deploy:
  provider: heroku
  buildpack: https://github.com/kr/heroku-buildpack-go.git
  api_key:
    secure: <your heroku api key encripted with travis encrypt>
  on: master 
Run Code Online (Sandbox Code Playgroud)

Procfile

worker: your-app-binary
Run Code Online (Sandbox Code Playgroud)

.去-DIR

your-app-binary
Run Code Online (Sandbox Code Playgroud)

Procfile和.go-dir是heroku配置,所以如果你正在部署一个web应用程序,它会有所不同,你可以在heroku文档中阅读更多内容

一个重要且容易遗漏的点是构建包,没有它,部署将无法工作.

阅读Travis文档,了解如何加密heroku密钥

这个怎么运作?

基本上,每次推送到您的存储库都会触发Travis CI构建,如果它通过它会将应用程序部署到heroku,所以你设置一次,构建+部署只是一个推动;)

Travis还将自动构建和更新所有Pull请求的状态到您的存储库.

要查看我的配置和构建,请使用我的工作配置查看我的Travis构建我的存储库