Pages

Sunday, 6 August 2017

Cloud-Gox: A Go Cross-Compiler in the cloud


  • Uses latest Go
  • Embedded realtime front-end
  • Automatic multi-platform Github releases
  • Compile your favourite command-line tools from the browser

Demo

https://gox.jpillora.com/

Install

Binaries
See the latest release
Source
$ go get -v github.com/jpillora/cloud-gox

Deploy

  1. Click this button to deploy cloud-gox for free on Heroku
    Deploy
  2. Optionally add HTTP authentication
  3. Optionally add your Github authentication
    Github web-hooks sent from the specified user to cloud-gox will create a new Github release inside the source repository for specified tag and then each of the compiled binaries will be uploaded as release assets. Once you've set GH_USER/GH_PASS or GH_TOKEN environment variables, you can setup any of your repositories for automatic releases:
    1. Go to https://github.com/<username>/<repo>/settings/hooks
    2. Click the Add Webhook button
    3. Set the Payload URL to http://<cloud-gox-location>/hook (see optional params below)
    4. Again, click the Add Webhook button
    5. Now, pushing git tags will trigger a new release and your app will be cross-compiled and uploaded to Github
    You can customize your web-hook using query parameters (e.g. /hook?foo=bar). You can set:
    • a versionvar parameter to change the ldflags variable (defaults to main.VERSION)
    • a osarch parameter which provides a comma separated list of build platforms, each platform must be in the form os/arch
    • a target parameter which provides a comma separated list of each command-line tool within your package (e.g. target=cmd/foo will build <repo>/cmd/foo)

Todo

  • Run parallel builds
  • Verify Github signed web-hooks

Notes

I've forked Heroku's Go buildpack in order to keep the local copy of the Go tools (Heroku's version keeps them only in the build cache).

from https://github.com/jpillora/cloud-gox

No comments:

Post a Comment