mirror of
https://github.com/TECHNOFAB11/jsonnet-bundler.git
synced 2025-12-11 23:50:05 +01:00
The go-modules approach is a bit broken: https://github.com/golang/go/issues/29228 To resolve that, we now compute that version using `git describe` and set it using `ldflags`. While this is not as nice/builtin as the other approach, it at least works all the time and across go versions. Furthermore, I did refactor the Makefile in preparation for an AUR package that builds from source and for building release artifacts in CI.
59 lines
1.4 KiB
Makefile
59 lines
1.4 KiB
Makefile
.PHONY: all check-license crossbuild build install test generate embedmd
|
|
|
|
GITHUB_URL=github.com/jsonnet-bundler/jsonnet-bundler
|
|
VERSION := $(shell git describe --tags --dirty --always)
|
|
OUT_DIR=_output
|
|
BIN?=jb
|
|
PKGS=$(shell go list ./... | grep -v /vendor/)
|
|
|
|
all: check-license build generate test
|
|
|
|
|
|
# Binaries
|
|
LDFLAGS := '-s -w -extldflags "-static" -X main.Version=${VERSION}'
|
|
cross: clean
|
|
CGO_ENABLED=0 gox \
|
|
-output="$(OUT_DIR)/jb-{{.OS}}-{{.Arch}}" \
|
|
-ldflags=$(LDFLAGS) \
|
|
-arch="amd64 arm64 arm" -os="linux" \
|
|
-osarch="darwin/amd64" \
|
|
./cmd/$(BIN)
|
|
|
|
static:
|
|
CGO_ENABLED=0 go build -ldflags=${LDFLAGS} -o $(OUT_DIR)/$(BIN) ./cmd/$(BIN)
|
|
|
|
build:
|
|
CGO_ENABLED=0 go build ./cmd/$(BIN)
|
|
|
|
install: static
|
|
@echo ">> copying $(BIN) into $(GOPATH)/bin/$(BIN)"
|
|
cp $(OUT_DIR)/$(BIN) $(GOPATH)/bin/$(BIN)
|
|
|
|
# Tests
|
|
test:
|
|
@echo ">> running all unit tests"
|
|
go test -v $(PKGS)
|
|
|
|
test-integration:
|
|
@echo ">> running all integration tests"
|
|
go test -v -tags=integration $(PKGS)
|
|
|
|
# Documentation
|
|
generate: embedmd
|
|
@echo ">> generating docs"
|
|
@./scripts/generate-help-txt.sh
|
|
@$(GOPATH)/bin/embedmd -w `find ./ -path ./vendor -prune -o -name "*.md" -print`
|
|
|
|
check-license:
|
|
@echo ">> checking license headers"
|
|
@./scripts/check_license.sh
|
|
|
|
embedmd:
|
|
pushd /tmp && GO111MODULES=on go get github.com/campoy/embedmd && popd
|
|
|
|
# Other
|
|
clean:
|
|
rm -rf $(OUT_DIR) $(BIN)
|
|
|
|
drone:
|
|
drone jsonnet --format
|