This commit changes the way the build of manifests is triggered by making smarter use of the capabilities of Make. The result should be that the manifests are only regenerated if: 1. There is no `cmd/flux/manifests/` directory. 2. There have been made changes to the YAML files in the `manifests/` directory that are newer than the files in `cmd/flux/manifests/`. Signed-off-by: Hidde Beydals <hello@hidde.co>
36 lines
795 B
Makefile
36 lines
795 B
Makefile
VERSION?=$(shell grep 'VERSION' cmd/flux/main.go | awk '{ print $$4 }' | tr -d '"')
|
|
EMBEDDED_MANIFESTS_TARGET=cmd/flux/manifests
|
|
|
|
rwildcard=$(foreach d,$(wildcard $(addsuffix *,$(1))),$(call rwildcard,$(d)/,$(2)) $(filter $(subst *,%,$(2)),$(d)))
|
|
|
|
all: test build
|
|
|
|
tidy:
|
|
go mod tidy
|
|
|
|
fmt:
|
|
go fmt ./...
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
test: $(EMBEDDED_MANIFESTS_TARGET) tidy fmt vet docs
|
|
go test ./... -coverprofile cover.out
|
|
|
|
$(EMBEDDED_MANIFESTS_TARGET): $(call rwildcard,manifests/,*.yaml *.json)
|
|
./manifests/scripts/bundle.sh
|
|
|
|
build: $(EMBEDDED_MANIFESTS_TARGET)
|
|
CGO_ENABLED=0 go build -o ./bin/flux ./cmd/flux
|
|
|
|
install:
|
|
go install cmd/flux
|
|
|
|
.PHONY: docs
|
|
docs:
|
|
rm -rf docs/cmd/*
|
|
mkdir -p ./docs/cmd && go run ./cmd/flux/ docgen
|
|
|
|
install-dev:
|
|
CGO_ENABLED=0 go build -o /usr/local/bin ./cmd/flux
|