code.ivysaur.me

godist

A template shell script for building golang binaries for distribution.

There are a number of nonobvious steps involved when building release archives for a golang binary. This template build script is intended to be copied into your own repository as a base.

  • Build for mulitple platforms
  • Archive in platform native format
  • Always rebuild dependencies
  • Strip sensitive symbol information (ldflags '-s -w')
  • Strip sensitive path information (remove baked $GOPATH)
  • Strip sensitive user information (tar --owner=0 --group=0)
  • ISC license
  • “Works on my machine” (go 1.7 win64 with cygwin)

Changelog

2017-02-11 1.2

2016-10-08 1.1

2016-05-01 1.0