Improve build process embedded manifests
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>
This commit is contained in:
11
Makefile
11
Makefile
@@ -1,4 +1,7 @@
|
||||
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
|
||||
|
||||
@@ -11,13 +14,13 @@ fmt:
|
||||
vet:
|
||||
go vet ./...
|
||||
|
||||
test: build-manifests tidy fmt vet docs
|
||||
test: $(EMBEDDED_MANIFESTS_TARGET) tidy fmt vet docs
|
||||
go test ./... -coverprofile cover.out
|
||||
|
||||
build-manifests:
|
||||
$(EMBEDDED_MANIFESTS_TARGET): $(call rwildcard,manifests/,*.yaml *.json)
|
||||
./manifests/scripts/bundle.sh
|
||||
|
||||
build:
|
||||
build: $(EMBEDDED_MANIFESTS_TARGET)
|
||||
CGO_ENABLED=0 go build -o ./bin/flux ./cmd/flux
|
||||
|
||||
install:
|
||||
@@ -25,7 +28,7 @@ install:
|
||||
|
||||
.PHONY: docs
|
||||
docs:
|
||||
rm docs/cmd/*
|
||||
rm -rf docs/cmd/*
|
||||
mkdir -p ./docs/cmd && go run ./cmd/flux/ docgen
|
||||
|
||||
install-dev:
|
||||
|
||||
Reference in New Issue
Block a user