From d5a1e027c014100f0efa712a636f61aa9e0d5eb5 Mon Sep 17 00:00:00 2001 From: Andrew Weiss Date: Thu, 6 Dec 2018 20:35:57 -0500 Subject: [PATCH] improved versioning output and Makefile --- .goreleaser.yml | 2 +- Dockerfile | 5 ++++- Makefile | 17 ++++++++++------- cli/cmd/cmd.go | 6 ++++-- cli/version/version.go | 2 +- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 8ead6e99..dcde5167 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,7 +1,7 @@ builds: - binary: oscalkit main: ./cli/main.go - ldflags: -s -w -X github.com/opencontrol/oscalkit/cli/version.Version={{.Version}} -X github.com/opencontrol/oscalkit/cli/version.Commit={{.Commit}} -X github.com/opencontrol/oscalkit/cli/version.Date={{.Date}} + ldflags: -s -w -X github.com/opencontrol/oscalkit/cli/version.Version={{.Version}} -X github.com/opencontrol/oscalkit/cli/version.Build={{.ShortCommit}} -X github.com/opencontrol/oscalkit/cli/version.Date={{.Date}} env: - CGO_ENABLED=0 goos: diff --git a/Dockerfile b/Dockerfile index 217e28d2..a3e06772 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,9 +10,12 @@ FROM golang:1.11-alpine AS builder WORKDIR /go/src/github.com/opencontrol/oscalkit +ARG VERSION +ARG BUILD +ARG DATE COPY . . WORKDIR /go/src/github.com/opencontrol/oscalkit/cli -RUN CGO_ENABLED=0 go build -o oscalkit -v -ldflags="-s -w" +RUN CGO_ENABLED=0 go build -o oscalkit -v -ldflags "-s -w -X github.com/opencontrol/oscalkit/cli/version.Version=${VERSION} -X github.com/opencontrol/oscalkit/cli/version.Build=${BUILD} -X github.com/opencontrol/oscalkit/cli/version.Date=${DATE}" FROM alpine:3.7 RUN apk --no-cache add ca-certificates libxml2-utils diff --git a/Makefile b/Makefile index 560dc5b7..7ce65279 100644 --- a/Makefile +++ b/Makefile @@ -8,12 +8,14 @@ # You should have received a copy of the CC0 Public Domain Dedication along with this software. # If not, see . -GOOS ?= darwin -GOARCH ?= amd64 -LDFLAGS=-ldflags "-s -w" -NAMESPACE ?= opencontrolorg -REPO ?= oscalkit -BUILD ?= dev +GOOS := darwin +GOARCH := amd64 +VERSION := 0.1.0 +BUILD := $(shell git rev-parse --short HEAD)-dev +DATE := $(shell date "+%Y-%m-%d") +LDFLAGS=-ldflags "-s -w -X github.com/opencontrol/oscalkit/cli/version.Version=$(VERSION) -X github.com/opencontrol/oscalkit/cli/version.Build=$(BUILD) -X github.com/opencontrol/oscalkit/cli/version.Date=$(DATE)" +NAMESPACE := opencontrolorg +REPO := oscalkit BINARY=oscalkit_$(GOOS)_$(GOARCH) .DEFAULT_GOAL := $(BINARY) @@ -27,6 +29,7 @@ generate: sh -c "go generate" test: generate + docker container run \ -v $$PWD:/go/src/github.com/opencontrol/oscalkit \ -w /go/src/github.com/opencontrol/oscalkit \ @@ -34,7 +37,7 @@ test: generate sh -c "go test \$$(go list ./... | grep -v /vendor/)" build-docker: - docker image build -t $(NAMESPACE)/$(REPO):$(BUILD) . + docker image build --build-arg VERSION=$(VERSION) --build-arg BUILD=$(BUILD) --build-arg DATE=$(DATE) -t $(NAMESPACE)/$(REPO):$(VERSION)-$(BUILD) . push: build-docker docker image push $(NAMESPACE)/$(REPO):$(BUILD) diff --git a/cli/cmd/cmd.go b/cli/cmd/cmd.go index 76c6404e..08e38fc9 100644 --- a/cli/cmd/cmd.go +++ b/cli/cmd/cmd.go @@ -22,13 +22,15 @@ import ( // Execute ... func Execute() error { + appVersion := fmt.Sprintf("%s-%s (Built: %s)\n", version.Version, version.Build, version.Date) + cli.VersionPrinter = func(c *cli.Context) { - fmt.Printf("oscal-proxy version %s, build %s, date %s\n", c.App.Version, version.Version, version.Date) + fmt.Println(appVersion) } app := cli.NewApp() app.Name = "oscalkit" - app.Version = version.Version + app.Version = appVersion app.Usage = "OSCAL toolkit" app.Flags = []cli.Flag{ cli.BoolFlag{ diff --git a/cli/version/version.go b/cli/version/version.go index 1551c65f..a002e61b 100644 --- a/cli/version/version.go +++ b/cli/version/version.go @@ -3,6 +3,6 @@ package version // Build details var ( Version string - Commit string + Build string Date string )