Golang cross-compile on Heroku
Go
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
CHANGELOG.md
Dockerfile
LICENSE
Procfile
README.md
main.go
platform.go
platform_test.go

README.md

gox-server

GitHub release MIT License Go Documentation

Golang cross compile on Heroku.

Just request GitHub repository name, you can get compiled binary for your platform without golang runtime on your local PC. Currently request target repository must be go build-able. Support platform is Darwin/Linux/Windows, 386/amd64.

This is just POC and playing with Heroku with Docker. Don't depend on this service for production tooling, you should prepare your own build environment. And if repository owner provides binary as release, you should use it.

Demo

Demo application is hosted on https://gox-server.herokuapp.com/.

For example, to get github.com/Soulou/curl-unix-socket compiled binary,

$ curl -A "`uname -sp`" https://gox-server.herokuapp.com/Soulou/curl-unix-socket > curl-unix-socket
$ chmod a+x curl-unix-socket

Or access from your browser https://gox-server.herokuapp.com/Soulou/curl-unix-socket.

Usage

To get binary hosted on github.com/owner/repo,

$ curl -A "`uname -sp`" https://gox-server.herokuapp.com/owner/repo

To create binary gox-server just runs go build, so github.com/owner/repo need to be able to run go build. If it needs some extra build or command (e.g., make), you can not get binary.

Development

You can run this on local dev environment. You need to prepare docker and heroku docker plugin.

$ heroku docker:start

Release

You can create your own compile server on Heroku. After create account on Heroku, run below,

$ heroku create
$ herocku docker:release

Contribution

  1. Fork (https://github.com/tcnksm/gox-server/fork)
  2. Create a feature branch
  3. Commit your changes
  4. Rebase your local changes against the master branch
  5. Run test suite with the make test command and confirm that it passes
  6. Run gofmt -s
  7. Create new Pull Request

Author

Taichi Nakashima