@@ -42,12 +42,21 @@ export DOCKER_CLI_EXPERIMENTAL := enabled
42
42
CURL_RETRIES =3
43
43
44
44
# Directories.
45
+ #
46
+ # Full directory of where the Makefile resides
45
47
ROOT_DIR: =$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST ) ) ) )
48
+ EXP_DIR := exp
49
+ BIN_DIR := bin
50
+ TEST_DIR := test
46
51
TOOLS_DIR := hack/tools
47
- TOOLS_BIN_DIR := $(abspath $(TOOLS_DIR ) /bin)
48
- PATH := $(TOOLS_BIN_DIR ) :$(PATH )
49
- BIN_DIR := $(abspath $(ROOT_DIR ) /bin)
50
- GO_INSTALL = ./scripts/go_install.sh
52
+ TOOLS_BIN_DIR := $(abspath $(TOOLS_DIR ) /$(BIN_DIR ) )
53
+ E2E_FRAMEWORK_DIR := $(TEST_DIR ) /framework
54
+ CAPD_DIR := $(TEST_DIR ) /infrastructure/docker
55
+ TEST_EXTENSION_DIR := $(TEST_DIR ) /extension
56
+ GO_INSTALL := ./scripts/go_install.sh
57
+ OBSERVABILITY_DIR := hack/observability
58
+
59
+ export PATH := $(abspath $(TOOLS_BIN_DIR ) ) :$(PATH )
51
60
52
61
REPO_ROOT := $(shell git rev-parse --show-toplevel)
53
62
# Set --output-base for conversion-gen if we are not within GOPATH
@@ -88,7 +97,8 @@ KUSTOMIZE := $(TOOLS_BIN_DIR)/$(KUSTOMIZE_BIN)-$(KUSTOMIZE_VER)
88
97
# Sync to github.com/onsi/ginkgo verison in https://github.com/kubernetes-sigs/cluster-api/blob/v{VERSION}/go.mod
89
98
GINKGO_VER := v2.6.0
90
99
GINKGO_BIN := ginkgo
91
- GINKGO := $(TOOLS_BIN_DIR ) /$(GINKGO_BIN ) -$(GINKGO_VER )
100
+ GINKGO := $(abspath $(TOOLS_BIN_DIR ) /$(GINKGO_BIN ) -$(GINKGO_VER ) )
101
+ GINKGO_PKG := github.com/onsi/ginkgo/v2/ginkgo
92
102
93
103
TIMEOUT := $(shell command -v timeout || command -v gtimeout)
94
104
@@ -136,19 +146,31 @@ help: ## Display this help
136
146
test : # # Run tests
137
147
source ./scripts/fetch_ext_bins.sh; fetch_tools; setup_envs; go test -v ./... -coverprofile cover.out
138
148
139
- # Allow overriding the e2e configurations
149
+ #
150
+ # Ginkgo configuration.
151
+ #
152
+ GINKGO_FOCUS ?=
153
+ GINKGO_SKIP ?=
140
154
GINKGO_NODES ?= 1
155
+ GINKGO_TIMEOUT ?= 6h
156
+ GINKGO_POLL_PROGRESS_AFTER ?= 60m
157
+ GINKGO_POLL_PROGRESS_INTERVAL ?= 5m
158
+ E2E_CONF_FILE ?= $(ROOT_DIR ) /$(TEST_DIR ) /e2e/config/packet-ci-envsubst.yaml
159
+ SKIP_RESOURCE_CLEANUP ?= false
160
+ USE_EXISTING_CLUSTER ?= false
141
161
GINKGO_NOCOLOR ?= false
142
- GINKGO_FOCUS ?= ""
143
- GINKGO_SKIP ?= ""
144
- GINKGO_FLAKE_ATTEMPTS ?= 2
162
+
163
+ # to set multiple ginkgo skip flags, if any
164
+ ifneq ($(strip $(GINKGO_SKIP ) ) ,)
165
+ _SKIP_ARGS := $(foreach arg,$(strip $(GINKGO_SKIP)),--skip="$(arg)")
166
+ endif
167
+
168
+ # Additinal GINKGO overrides
169
+ GINKGO_FLAKE_ATTEMPTS ?= 0
170
+ E2E_CONF_FILE_SOURCE ?= $(ROOT_DIR ) /$(TEST_DIR ) /e2e/config/packet-ci.yaml
171
+ SKIP_IMAGE_BUILD ?= false
172
+
145
173
ARTIFACTS ?= $(ROOT_DIR ) /_artifacts
146
- SKIP_CLEANUP ?= false
147
- SKIP_CREATE_MGMT_CLUSTER ?= false
148
- E2E_DIR ?= $(REPO_ROOT ) /test/e2e
149
- KUBETEST_CONF_PATH ?= $(abspath $(E2E_DIR ) /data/kubetest/conformance.yaml)
150
- E2E_CONF_FILE_SOURCE ?= $(E2E_DIR ) /config/packet-ci.yaml
151
- E2E_CONF_FILE ?= $(E2E_DIR ) /config/packet-ci-envsubst.yaml
152
174
153
175
.PHONY : $(E2E_CONF_FILE )
154
176
$(E2E_CONF_FILE ) : $(ENVSUBST ) $(E2E_CONF_FILE_SOURCE )
@@ -159,40 +181,38 @@ $(E2E_CONF_FILE): $(ENVSUBST) $(E2E_CONF_FILE_SOURCE)
159
181
run-e2e-tests : $(KUSTOMIZE ) $(GINKGO ) $(E2E_CONF_FILE ) e2e-test-templates $(if $(SKIP_IMAGE_BUILD ) ,,e2e-image) # # Run the e2e tests
160
182
$(MAKE ) set-manifest-image MANIFEST_IMG=$(REGISTRY ) /$(IMAGE_NAME ) MANIFEST_TAG=$(TAG )
161
183
$(MAKE ) set-manifest-pull-policy PULL_POLICY=IfNotPresent
162
- cd test/e2e; time $(GINKGO ) -v --trace --tags=e2e \
163
- --randomize-all -race $(GINKGO_ADDITIONAL_ARGS ) \
164
- --focus=$(GINKGO_FOCUS ) --skip=$(GINKGO_SKIP ) \
165
- --nodes=$(GINKGO_NODES ) --no-color=$(GINKGO_NOCOLOR ) \
166
- --output-dir=" $( ARTIFACTS) " --junit-report=" junit.e2e_suite.1.xml" \
167
- --flake-attempts=$(GINKGO_FLAKE_ATTEMPTS ) ./ -- \
184
+ $(GINKGO ) -v --trace --poll-progress-after=$(GINKGO_POLL_PROGRESS_AFTER ) \
185
+ --poll-progress-interval=$(GINKGO_POLL_PROGRESS_INTERVAL ) --tags=e2e --focus=" $( GINKGO_FOCUS) " \
186
+ $(_SKIP_ARGS ) --nodes=$(GINKGO_NODES ) --timeout=$(GINKGO_TIMEOUT ) --no-color=$(GINKGO_NOCOLOR ) \
187
+ --flake-attempts=$(GINKGO_FLAKE_ATTEMPTS ) \
188
+ --output-dir=" $( ARTIFACTS) " --junit-report=" junit.e2e_suite.1.xml" $(GINKGO_ARGS ) $(ROOT_DIR ) /$(TEST_DIR ) /e2e -- \
168
189
-e2e.artifacts-folder=" $( ARTIFACTS) " \
169
190
-e2e.config=" $( E2E_CONF_FILE) " \
170
- -e2e.skip-resource-cleanup=$(SKIP_CLEANUP ) \
171
- -e2e.use-existing-cluster=$(SKIP_CREATE_MGMT_CLUSTER )
191
+ -e2e.skip-resource-cleanup=$(SKIP_RESOURCE_CLEANUP ) -e2e.use-existing-cluster=$(USE_EXISTING_CLUSTER )
172
192
173
193
.PHONY : test-e2e-conformance
174
194
test-e2e-conformance :
175
195
$(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Conformance\]'"
176
196
177
197
.PHONY : test-e2e-management-upgrade
178
198
test-e2e-management-upgrade :
179
- $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Management Upgrade\]'"
199
+ $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Management- Upgrade\]'"
180
200
181
201
.PHONY : test-e2e-workload-upgrade
182
202
test-e2e-workload-upgrade :
183
- $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Workload Upgrade\]'"
203
+ $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Workload- Upgrade\]'"
184
204
185
205
.PHONY : test-e2e-quickstart
186
206
test-e2e-quickstart :
187
207
$(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[QuickStart\]'"
188
208
189
209
.PHONY : test-e2e-local
190
210
test-e2e-local :
191
- $(MAKE ) run-e2e-tests GINKGO_SKIP=" '\[QuickStart\]|\[Conformance\]|\[Needs Published Image\]|\[Management Upgrade\]|\[Workload Upgrade\]'"
211
+ $(MAKE ) run-e2e-tests GINKGO_SKIP=" '\[QuickStart\]|\[Conformance\]|\[Needs- Published- Image\]|\[Management- Upgrade\]|\[Workload- Upgrade\]'"
192
212
193
213
.PHONY : test-e2e-ci
194
214
test-e2e-ci :
195
- $(MAKE ) run-e2e-tests GINKGO_SKIP=" '\[QuickStart\]|\[Conformance\]|\[Management Upgrade\]|\[Workload Upgrade\]'"
215
+ $(MAKE ) run-e2e-tests GINKGO_SKIP=" '\[QuickStart\]|\[Conformance\]|\[Management- Upgrade\]|\[Workload- Upgrade\]'"
196
216
197
217
# # --------------------------------------
198
218
# # E2E Test Templates
@@ -241,8 +261,8 @@ $(CONTROLLER_GEN): ## Build controller-gen from tools folder.
241
261
$(CONVERSION_GEN ) : # # Build conversion-gen.
242
262
GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) k8s.io/code-generator/cmd/conversion-gen $(CONVERSION_GEN_BIN ) $(CONVERSION_GEN_VER )
243
263
244
- $(GINKGO ) : # # Build ginkgo.
245
- GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) github.com/onsi/ginkgo/v2/ginkgo $(GINKGO_BIN ) $(GINKGO_VER )
264
+ $(GINKGO ) : # Build ginkgo from tools folder .
265
+ GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) $( GINKGO_PKG ) $(GINKGO_BIN ) $(GINKGO_VER )
246
266
247
267
# # --------------------------------------
248
268
# # Linting
0 commit comments