add goreleaser (#49)

* add goreleaser

Add a goreleaser configuration file that builds binaries for Linux,
MacOS and Windows, for 32bit (x86/386) and 64bit (x64/amd64). The
binaries will be archived into a tar.gz/zip file along with the LICENSE
file.

The `dist/` directory will be written to by goreleaser with the binaries
during the build process, so it's also been added to .gitignore.

To build all the binaries and release them to GitHub:
1. Tag the release. e.g. `git tag -a v1.0.0 -m 'First release'`
2. Generate a GitHub Personal Access Token. See https://github.com/settings/tokens.
3. Push the release to GitHub. e.g. `git push origin v1.0.0`
4. Make the release, which will publish binaries to the GitHub "Releases" page. e.g.  `GITHUB_TOKEN=xxxxxxx... make release`

* add -version flag

Run `grpcurl -version` to see the release version. Use `make install` to build a binary that shows the version based on current git hash (which will show a version number if HEAD is a release tag and otherwise uses `git describe` to summarize the version).
This commit is contained in:
Leigh McCulloch
2018-09-25 06:34:02 -07:00
committed by Joshua Humphries
parent d4d048fade
commit 79a550b858
5 changed files with 46 additions and 2 deletions

View File

@@ -30,6 +30,8 @@ import (
"github.com/fullstorydev/grpcurl"
)
var version = "dev build <no version set>"
var (
exit = os.Exit
@@ -37,6 +39,8 @@ var (
help = flag.Bool("help", false,
`Print usage instructions and exit.`)
printVersion = flag.Bool("version", false,
`Print version.`)
plaintext = flag.Bool("plaintext", false,
`Use plain-text HTTP/2 when connecting to server (no TLS).`)
insecure = flag.Bool("insecure", false,
@@ -146,6 +150,10 @@ func main() {
usage()
os.Exit(0)
}
if *printVersion {
fmt.Fprintf(os.Stderr, "%s %s\n", os.Args[0], version)
os.Exit(0)
}
// Do extra validation on arguments and figure out what user asked us to do.
if *plaintext && *insecure {