fix: add app version (#153)

* fix: add app version

version is returned by executing clusterlint --version

* inject version as build time variable
master
Moritz Rieger 2022-10-14 17:22:49 +02:00 committed by GitHub
parent 813049225d
commit efbdc716e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 8 deletions

View File

@ -12,8 +12,9 @@ COPY kube/ kube/
COPY checks checks/ COPY checks checks/
# Build # Build
ARG version
RUN GOFLAGS="-mod=vendor" CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on \ RUN GOFLAGS="-mod=vendor" CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on \
go build -a -o clusterlint main.go go build -ldflags="-X main.Version=$version" -a -o clusterlint main.go
# Use distroless as minimal base image to package the clusterlint binary # Use distroless as minimal base image to package the clusterlint binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details # Refer to https://github.com/GoogleContainerTools/distroless for more details

View File

@ -4,7 +4,7 @@ TAG ?= dev
# Build the docker image # Build the docker image
docker-build: docker-build:
docker build . -t ${IMG}:${TAG} docker build . -t ${IMG}:${TAG} --build-arg version=${TAG}
# Push the docker image # Push the docker image
docker-push: docker-push:
@ -12,12 +12,12 @@ docker-push:
# Build all binaries and sha sums for release # Build all binaries and sha sums for release
build-binaries: build-binaries:
GOOS=linux GOARCH=amd64 go build -mod=vendor -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-linux-amd64.tar.gz ./clusterlint GOOS=linux GOARCH=amd64 go build -mod=vendor -ldflags="-X main.Version=${TAG}" -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-linux-amd64.tar.gz ./clusterlint
GOOS=linux GOARCH=386 go build -mod=vendor -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-linux-386.tar.gz ./clusterlint GOOS=linux GOARCH=386 go build -mod=vendor -ldflags="-X main.Version=${TAG}" -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-linux-386.tar.gz ./clusterlint
GOOS=darwin GOARCH=amd64 go build -mod=vendor -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-darwin-amd64.tar.gz ./clusterlint GOOS=darwin GOARCH=amd64 go build -mod=vendor -ldflags="-X main.Version=${TAG}" -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-darwin-amd64.tar.gz ./clusterlint
GOOS=darwin GOARCH=arm64 go build -mod=vendor -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-darwin-arm64.tar.gz ./clusterlint GOOS=darwin GOARCH=arm64 go build -mod=vendor -ldflags="-X main.Version=${TAG}" -o clusterlint ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-darwin-arm64.tar.gz ./clusterlint
GOOS=windows GOARCH=amd64 go build -mod=vendor -o clusterlint.exe ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-windows-amd64.tar.gz ./clusterlint GOOS=windows GOARCH=amd64 go build -mod=vendor -ldflags="-X main.Version=${TAG}" -o clusterlint.exe ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-windows-amd64.tar.gz ./clusterlint
GOOS=windows GOARCH=386 go build -mod=vendor -o clusterlint.exe ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-windows-386.tar.gz ./clusterlint GOOS=windows GOARCH=386 go build -mod=vendor -ldflags="-X main.Version=${TAG}" -o clusterlint.exe ./cmd/clusterlint; tar -czvf clusterlint-${TAG}-windows-386.tar.gz ./clusterlint
sha256sum clusterlint-${TAG}-linux-amd64.tar.gz >> clusterlint-${TAG}-checksums.sha256 sha256sum clusterlint-${TAG}-linux-amd64.tar.gz >> clusterlint-${TAG}-checksums.sha256
sha256sum clusterlint-${TAG}-linux-386.tar.gz >> clusterlint-${TAG}-checksums.sha256 sha256sum clusterlint-${TAG}-linux-386.tar.gz >> clusterlint-${TAG}-checksums.sha256
sha256sum clusterlint-${TAG}-darwin-amd64.tar.gz >> clusterlint-${TAG}-checksums.sha256 sha256sum clusterlint-${TAG}-darwin-amd64.tar.gz >> clusterlint-${TAG}-checksums.sha256

View File

@ -36,10 +36,13 @@ import (
const delimiter = ":" const delimiter = ":"
var Version string
func main() { func main() {
app := cli.NewApp() app := cli.NewApp()
app.Name = "clusterlint" app.Name = "clusterlint"
app.Usage = "Linter for k8s objects from a live cluster" app.Usage = "Linter for k8s objects from a live cluster"
app.Version = Version
app.Flags = []cli.Flag{ app.Flags = []cli.Flag{
cli.StringFlag{ cli.StringFlag{
Name: "kubeconfig", Name: "kubeconfig",