Golang应用程式部署

I am about to finish my app and I want to deploy it on a private server. I want to be able to do the following things automatically:

  • run the go tests
  • package the app
  • deploy it in the server
  • have the ability to roll back

How do I accomplish this easily for a go app?

Personally I'm using Fabric (python based) for app deployments, and Chef for server management. The thing is, since Go's artifacts are just one big binary, the deployer doesn't matter much, the build process is more important.

I'm just packing Go binaries as tar.gz's and sending them to the server with Fabric. I've never used Capistrano but from what I've read it looks perfect for deploying Go apps.