@@ -42,12 +42,21 @@ export DOCKER_CLI_EXPERIMENTAL := enabled
4242CURL_RETRIES =3
4343
4444# Directories.
45+ #
46+ # Full directory of where the Makefile resides
4547ROOT_DIR: =$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST ) ) ) )
48+ EXP_DIR := exp
49+ BIN_DIR := bin
50+ TEST_DIR := test
4651TOOLS_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 )
5160
5261REPO_ROOT := $(shell git rev-parse --show-toplevel)
5362# Set --output-base for conversion-gen if we are not within GOPATH
@@ -88,7 +97,8 @@ KUSTOMIZE := $(TOOLS_BIN_DIR)/$(KUSTOMIZE_BIN)-$(KUSTOMIZE_VER)
8897# Sync to github.com/onsi/ginkgo verison in https://github.com/kubernetes-sigs/cluster-api/blob/v{VERSION}/go.mod
8998GINKGO_VER := v2.6.0
9099GINKGO_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
92102
93103TIMEOUT := $(shell command -v timeout || command -v gtimeout)
94104
@@ -136,19 +146,31 @@ help: ## Display this help
136146test : # # Run tests
137147 source ./scripts/fetch_ext_bins.sh; fetch_tools; setup_envs; go test -v ./... -coverprofile cover.out
138148
139- # Allow overriding the e2e configurations
149+ #
150+ # Ginkgo configuration.
151+ #
152+ GINKGO_FOCUS ?=
153+ GINKGO_SKIP ?=
140154GINKGO_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
141161GINKGO_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+
145173ARTIFACTS ?= $(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
152174
153175.PHONY : $(E2E_CONF_FILE )
154176$(E2E_CONF_FILE ) : $(ENVSUBST ) $(E2E_CONF_FILE_SOURCE )
@@ -159,40 +181,38 @@ $(E2E_CONF_FILE): $(ENVSUBST) $(E2E_CONF_FILE_SOURCE)
159181run-e2e-tests : $(KUSTOMIZE ) $(GINKGO ) $(E2E_CONF_FILE ) e2e-test-templates $(if $(SKIP_IMAGE_BUILD ) ,,e2e-image) # # Run the e2e tests
160182 $(MAKE ) set-manifest-image MANIFEST_IMG=$(REGISTRY ) /$(IMAGE_NAME ) MANIFEST_TAG=$(TAG )
161183 $(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 -- \
168189 -e2e.artifacts-folder=" $( ARTIFACTS) " \
169190 -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 )
172192
173193.PHONY : test-e2e-conformance
174194test-e2e-conformance :
175195 $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Conformance\]'"
176196
177197.PHONY : test-e2e-management-upgrade
178198test-e2e-management-upgrade :
179- $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Management Upgrade\]'"
199+ $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Management- Upgrade\]'"
180200
181201.PHONY : test-e2e-workload-upgrade
182202test-e2e-workload-upgrade :
183- $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Workload Upgrade\]'"
203+ $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[Workload- Upgrade\]'"
184204
185205.PHONY : test-e2e-quickstart
186206test-e2e-quickstart :
187207 $(MAKE ) run-e2e-tests GINKGO_FOCUS=" '\[QuickStart\]'"
188208
189209.PHONY : test-e2e-local
190210test-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\]'"
192212
193213.PHONY : test-e2e-ci
194214test-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\]'"
196216
197217# # --------------------------------------
198218# # E2E Test Templates
@@ -241,8 +261,8 @@ $(CONTROLLER_GEN): ## Build controller-gen from tools folder.
241261$(CONVERSION_GEN ) : # # Build conversion-gen.
242262 GOBIN=$(TOOLS_BIN_DIR ) $(GO_INSTALL ) k8s.io/code-generator/cmd/conversion-gen $(CONVERSION_GEN_BIN ) $(CONVERSION_GEN_VER )
243263
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 )
246266
247267# # --------------------------------------
248268# # Linting
0 commit comments