* release version : if tag `v0.1.2` is exactly on the built commit : `0.1.2` (strip v when displaying `docker version`)
* dev version : if tag `v0.1.2` is 3 commits before, and we are on commit `xyz` : `0.1.2-3-xyz`
* will only match tags starting with `v[0-9]`
* `make` will build the cli with all backends exnabled
* `make cross` will cross build without the example and local backend
You can still cross compile with all backends by doing
```console
$ BUILD_TAGS=example,local make cross
```
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
* Make BINARY mutability explicit
* Default docker build output type is local so use this
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
* Run in parallel
* lint
* test/build/e2e test
* use cache for go
* do not use docker for building
* remove useless dependencies from the base image
Build time passes from 5 minutes to 1 minute 30 seconds
* add `make help` target
* remove unused variables
* add .exe to the binary name when on windows
* add ldflags to go build to strip the binary (smaller binary size)
* `make protos` must be executed manually when proto files change