Skip to content

Commit b68cda4

Browse files
authored
Makefile: fix issues with repeated evaluations (#267)
1 parent cf384e4 commit b68cda4

File tree

2 files changed

+43
-31
lines changed

2 files changed

+43
-31
lines changed

.goreleaser.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ builds:
99
asmflags: "{{ .Env.GO_BUILD_ASMFLAGS }}"
1010
gcflags: "{{ .Env.GO_BUILD_GCFLAGS }}"
1111
ldflags: "{{ .Env.GO_BUILD_LDFLAGS }}"
12-
tags:
13-
- "{{ .Env.GO_BUILD_TAGS }}"
1412
mod_timestamp: "{{ .CommitTimestamp }}"
1513
goos:
1614
- linux

Makefile

Lines changed: 43 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1-
export IMAGE_REPO ?= quay.io/operator-framework/catalogd
2-
export IMAGE_TAG ?= devel
3-
IMAGE=$(IMAGE_REPO):$(IMAGE_TAG)
1+
ifeq ($(origin IMAGE_REPO), undefined)
2+
IMAGE_REPO := quay.io/operator-framework/catalogd
3+
endif
4+
export IMAGE_REPO
5+
6+
ifeq ($(origin IMAGE_TAG), undefined)
7+
IMAGE_TAG := devel
8+
endif
9+
export IMAGE_TAG
10+
11+
IMAGE := $(IMAGE_REPO):$(IMAGE_TAG)
412

513
# setup-envtest on *nix uses XDG_DATA_HOME, falling back to HOME, as the default storage directory. Some CI setups
614
# don't have XDG_DATA_HOME set; in those cases, we set it here so setup-envtest functions correctly. This shouldn't
@@ -11,17 +19,16 @@ export XDG_DATA_HOME ?= /tmp/.local/share
1119
include .bingo/Variables.mk
1220

1321
# Dependencies
14-
CERT_MGR_VERSION ?= v1.11.0
15-
ENVTEST_SERVER_VERSION = $(shell go list -m k8s.io/client-go | cut -d" " -f2 | sed 's/^v0\.\([[:digit:]]\{1,\}\)\.[[:digit:]]\{1,\}$$/1.\1.x/')
22+
export CERT_MGR_VERSION := v1.11.0
23+
ENVTEST_SERVER_VERSION := $(shell go list -m k8s.io/client-go | cut -d" " -f2 | sed 's/^v0\.\([[:digit:]]\{1,\}\)\.[[:digit:]]\{1,\}$$/1.\1.x/')
1624

1725
# Cluster configuration
18-
KIND_CLUSTER_NAME ?= catalogd
19-
CATALOGD_NAMESPACE ?= catalogd-system
20-
KIND_CLUSTER_IMAGE ?= kindest/node:v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31
21-
22-
# E2E configuration
23-
TESTDATA_DIR ?= testdata
26+
ifeq ($(origin KIND_CLUSTER_NAME), undefined)
27+
KIND_CLUSTER_NAME := catalogd
28+
endif
2429

30+
CATALOGD_NAMESPACE := catalogd-system
31+
KIND_CLUSTER_IMAGE := kindest/node:v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31
2532

2633
##@ General
2734

@@ -56,16 +63,18 @@ fmt: ## Run go fmt against code.
5663

5764
.PHONY: vet
5865
vet: ## Run go vet against code.
59-
go vet -tags '$(GO_BUILD_TAGS)' ./...
66+
go vet ./...
6067

6168
.PHONY: test-unit
6269
test-unit: generate fmt vet $(SETUP_ENVTEST) ## Run tests.
6370
eval $$($(SETUP_ENVTEST) use -p env $(ENVTEST_SERVER_VERSION)) && go test $(shell go list ./... | grep -v /test/e2e) -coverprofile cover.out
6471

6572
FOCUS := $(if $(TEST),-v -focus "$(TEST)")
66-
E2E_FLAGS ?= ""
73+
ifeq ($(origin E2E_FLAGS), undefined)
74+
E2E_FLAGS :=
75+
endif
6776
test-e2e: $(GINKGO) ## Run the e2e tests
68-
$(GINKGO) --tags $(GO_BUILD_TAGS) $(E2E_FLAGS) -trace -vv $(FOCUS) test/e2e
77+
$(GINKGO) $(E2E_FLAGS) -trace -vv $(FOCUS) test/e2e
6978

7079
e2e: KIND_CLUSTER_NAME=catalogd-e2e
7180
e2e: run image-registry test-e2e kind-cluster-cleanup ## Run e2e test suite on local kind cluster
@@ -91,24 +100,23 @@ BINARIES=manager
91100
LINUX_BINARIES=$(join $(addprefix linux/,$(BINARIES)), )
92101

93102
# Build info
94-
export VERSION_PKG ?= $(shell go list -m)/internal/version
103+
export VERSION_PKG := $(shell go list -m)/internal/version
95104

96-
export GIT_COMMIT ?= $(shell git rev-parse HEAD)
97-
export GIT_VERSION ?= $(shell git describe --tags --always --dirty)
98-
export GIT_TREE_STATE ?= $(shell [ -z "$(shell git status --porcelain)" ] && echo "clean" || echo "dirty")
99-
export GIT_COMMIT_DATE ?= $(shell TZ=UTC0 git show --quiet --date=format:'%Y-%m-%dT%H:%M:%SZ' --format="%cd")
105+
export GIT_COMMIT := $(shell git rev-parse HEAD)
106+
export GIT_VERSION := $(shell git describe --tags --always --dirty)
107+
export GIT_TREE_STATE := $(shell [ -z "$(shell git status --porcelain)" ] && echo "clean" || echo "dirty")
108+
export GIT_COMMIT_DATE := $(shell TZ=UTC0 git show --quiet --date=format:'%Y-%m-%dT%H:%M:%SZ' --format="%cd")
100109

101-
export CGO_ENABLED ?= 0
102-
export GO_BUILD_ASMFLAGS ?= all=-trimpath=${PWD}
103-
export GO_BUILD_LDFLAGS ?= -s -w \
110+
export CGO_ENABLED := 0
111+
export GO_BUILD_ASMFLAGS := all=-trimpath=${PWD}
112+
export GO_BUILD_LDFLAGS := -s -w \
104113
-X "$(VERSION_PKG).gitVersion=$(GIT_VERSION)" \
105114
-X "$(VERSION_PKG).gitCommit=$(GIT_COMMIT)" \
106115
-X "$(VERSION_PKG).gitTreeState=$(GIT_TREE_STATE)" \
107116
-X "$(VERSION_PKG).commitDate=$(GIT_COMMIT_DATE)"
108-
export GO_BUILD_GCFLAGS ?= all=-trimpath=${PWD}
109-
export GO_BUILD_TAGS ?=
117+
export GO_BUILD_GCFLAGS := all=-trimpath=${PWD}
110118

111-
BUILDCMD = go build -tags '$(GO_BUILD_TAGS)' -ldflags '$(GO_BUILD_LDFLAGS)' -gcflags '$(GO_BUILD_GCFLAGS)' -asmflags '$(GO_BUILD_ASMFLAGS)' -o $(BUILDBIN)/$(notdir $@) ./cmd/$(notdir $@)
119+
BUILDCMD = go build -ldflags '$(GO_BUILD_LDFLAGS)' -gcflags '$(GO_BUILD_GCFLAGS)' -asmflags '$(GO_BUILD_ASMFLAGS)' -o $(BUILDBIN)/$(notdir $@) ./cmd/$(notdir $@)
112120

113121
.PHONY: build-deps
114122
build-deps: generate fmt vet
@@ -170,11 +178,18 @@ wait:
170178
cert-manager:
171179
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/${CERT_MGR_VERSION}/cert-manager.yaml
172180
kubectl wait --for=condition=Available --namespace=cert-manager deployment/cert-manager-webhook --timeout=60s
181+
173182
##@ Release
174183

175-
export ENABLE_RELEASE_PIPELINE ?= false
176-
export GORELEASER_ARGS ?= --snapshot --clean
177-
export CERT_MGR_VERSION ?= $(CERT_MGR_VERSION)
184+
ifeq ($(origin ENABLE_RELEASE_PIPELINE), undefined)
185+
ENABLE_RELEASE_PIPELINE := false
186+
endif
187+
export ENABLE_RELEASE_PIPELINE
188+
189+
ifeq ($(origin GORELEASER_ARGS), undefined)
190+
GORELEASER_ARGS := --snapshot --clean
191+
endif
192+
178193
release: $(GORELEASER) ## Runs goreleaser for catalogd. By default, this will run only as a snapshot and will not publish any artifacts unless it is run with different arguments. To override the arguments, run with "GORELEASER_ARGS=...". When run as a github action from a tag, this target will publish a full release.
179194
$(GORELEASER) $(GORELEASER_ARGS)
180195

@@ -184,4 +199,3 @@ quickstart: $(KUSTOMIZE) generate ## Generate the installation release manifests
184199
.PHONY: demo-update
185200
demo-update:
186201
hack/scripts/generate-asciidemo.sh
187-

0 commit comments

Comments
 (0)