This is the Heroku buildpack for Go.
Follow the guide at http://mmcgrana.github.com/2012/09/getting-started-with-go-on-heroku.html.
There's also a hello world sample app at https://github.com/kr/go-heroku-example.
$ ls -A1
.git
Godeps
Procfile
web.go
$ heroku create -b https://github.com/heroku/heroku-buildpack-go.git
Creating polar-waters-4785...
...
$ git push heroku master
...
-----> Fetching custom git buildpack... done
-----> Go app detected
-----> Installing go1.4.1... done
-----> Running: godep go install -tags heroku ./...
-----> Discovering process types
Procfile declares types -> web
-----> Compressing... done, 1.6MB
-----> Launching... done, v4
https://polar-waters-4785.herokuapp.com/ deployed to Heroku
This buildpack will detect your repository as Go if it contains a .go file.
This buildpack adds a heroku build constraint, to enable
heroku-specific code. See the App Engine build constraints
article for more.
To change this buildpack, fork it on GitHub. Push changes to your fork, then
create a test app with --buildpack YOUR_GITHUB_GIT_URL and push to it. If you
already have an existing app you may use heroku config:add BUILDPACK_URL=YOUR_GITHUB_GIT_URL instead of --buildpack.
This buildpack supports the use of godep, which will be used to
install the project and it's vendored dependencies if a Godeps/Godep.json
file exists. Otherwise this buildpack requires a file named .godir in the
root of your project to determine the name of the project and will use the
go toolchain to download dependencies.
This buildpack supports building with C dependencies via
cgo. You can set config vars to specify CGO flags
to, e.g., specify paths for vendored dependencies. E.g., to build
gopgsqldriver, add the config var
CGO_CFLAGS with the value -I/app/code/vendor/include/postgresql and include
the relevant Postgres header files in vendor/include/postgresql/ in your app.
This buildpack supports the go linker's ability (-X symbol value) to set the value of a string at link time. This can be done by setting
GO_LINKER_SYMBOL and GO_LINKER_VALUE in the application's config before
pushing code. If GO_LINKER_SYMBOL is set, but GO_LINKER_VALUE isn't set
then GO_LINKER_VALUE defaults to $SOURCE_VERSION.
This can be used to embed the commit sha, or other build specific data directly into the compiled executable.