From 83ab70ffb61241ef7b6467927de56ee96daf1334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A5=96=E5=BB=BA?= Date: Thu, 2 Mar 2023 12:17:12 +0800 Subject: [PATCH] e2e: double parallel test nodes in ci (#2411) --- .github/workflows/build-x86-image.yaml | 10 ++++----- Makefile.e2e | 28 ++++++++++++++++++-------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-x86-image.yaml b/.github/workflows/build-x86-image.yaml index 9fae787c76f..2985815d261 100644 --- a/.github/workflows/build-x86-image.yaml +++ b/.github/workflows/build-x86-image.yaml @@ -267,7 +267,7 @@ jobs: - build-kube-ovn - build-e2e-binaries runs-on: ubuntu-22.04 - timeout-minutes: 60 + timeout-minutes: 15 strategy: fail-fast: false matrix: @@ -627,7 +627,7 @@ jobs: - build-kube-ovn - build-e2e-binaries runs-on: ubuntu-22.04 - timeout-minutes: 30 + timeout-minutes: 20 strategy: fail-fast: false matrix: @@ -719,7 +719,7 @@ jobs: - build-kube-ovn - build-e2e-binaries runs-on: ubuntu-22.04 - timeout-minutes: 30 + timeout-minutes: 15 steps: - uses: actions/checkout@v3 @@ -947,7 +947,7 @@ jobs: - build-vpc-nat-gateway - build-e2e-binaries runs-on: ubuntu-22.04 - timeout-minutes: 30 + timeout-minutes: 10 steps: - uses: actions/checkout@v3 @@ -1161,7 +1161,7 @@ jobs: - build-kube-ovn - build-e2e-binaries runs-on: ubuntu-22.04 - timeout-minutes: 30 + timeout-minutes: 10 strategy: fail-fast: false matrix: diff --git a/Makefile.e2e b/Makefile.e2e index c77b852165e..41fe029681b 100644 --- a/Makefile.e2e +++ b/Makefile.e2e @@ -8,6 +8,8 @@ K8S_NETPOL_E2E_FOCUS = "sig-network.*Feature:NetworkPolicy" K8S_NETPOL_E2E_SKIP = "sig-network.*NetworkPolicyLegacy" K8S_NETPOL_LEGACY_E2E_FOCUS = "sig-network.*NetworkPolicyLegacy" +GINKGO_PARALLEL_MULTIPLIER = $(shell echo $${GINKGO_PARALLEL_MULTIPLIER:-2}) + ifeq ($(shell echo $(E2E_BRANCH) | grep -o ^release-),release-) VERSION_NUM = $(subst release-,,$(E2E_BRANCH)) VER_MAJOR = $(shell echo $(VERSION_NUM) | cut -f1 -d.) @@ -32,6 +34,11 @@ ifeq ($(E2E_IP_FAMILY),dual) K8S_CONFORMANCE_E2E_FOCUS += "sig-network.*Feature:IPv6DualStack" endif +GINKGO_PARALLEL_OPT = -p +ifeq ($(shell echo $${CI:-false}),true) +GINKGO_PARALLEL_OPT = --procs $$(($$(nproc) * $(GINKGO_PARALLEL_MULTIPLIER))) +endif + define ginkgo_option --$(1)=$(shell echo '$(2)' | sed -E 's/^[[:space:]]+//' | sed -E 's/"[[:space:]]+"/" --$(1)="/g') endef @@ -51,7 +58,7 @@ e2e-build: .PHONY: k8s-conformance-e2e k8s-conformance-e2e: ginkgo build ./test/e2e/k8s-network - ginkgo -p --randomize-all --timeout=1h \ + ginkgo $(GINKGO_PARALLEL_OPT) --randomize-all --always-emit-ginkgo-writer --timeout=1h \ $(call ginkgo_option,focus,$(K8S_CONFORMANCE_E2E_FOCUS)) \ $(call ginkgo_option,skip,$(K8S_CONFORMANCE_E2E_SKIP)) \ ./test/e2e/k8s-network/k8s-network.test @@ -59,14 +66,14 @@ k8s-conformance-e2e: .PHONY: k8s-netpol-legacy-e2e k8s-netpol-legacy-e2e: ginkgo build ./test/e2e/k8s-network - ginkgo -p --randomize-all --timeout=2h \ + ginkgo -p --randomize-all --always-emit-ginkgo-writer --timeout=2h \ $(call ginkgo_option,focus,$(K8S_NETPOL_LEGACY_E2E_FOCUS)) \ ./test/e2e/k8s-network/k8s-network.test .PHONY: k8s-netpol-e2e k8s-netpol-e2e: ginkgo build ./test/e2e/k8s-network - ginkgo -p --randomize-all --timeout=2h \ + ginkgo -p --randomize-all --always-emit-ginkgo-writer --timeout=2h \ $(call ginkgo_option,focus,$(K8S_NETPOL_E2E_FOCUS)) \ $(call ginkgo_option,skip,$(K8S_NETPOL_E2E_SKIP)) \ ./test/e2e/k8s-network/k8s-network.test @@ -91,7 +98,8 @@ kube-ovn-conformance-e2e: E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ginkgo -p --randomize-all --focus=CNI:Kube-OVN ./test/e2e/kube-ovn/kube-ovn.test + ginkgo $(GINKGO_PARALLEL_OPT) --randomize-all --always-emit-ginkgo-writer \ + --focus=CNI:Kube-OVN ./test/e2e/kube-ovn/kube-ovn.test .PHONY: kube-ovn-ic-conformance-e2e kube-ovn-ic-conformance-e2e: @@ -99,7 +107,8 @@ kube-ovn-ic-conformance-e2e: E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ginkgo -p --randomize-all --focus=CNI:Kube-OVN ./test/e2e/ovn-ic/ovn-ic.test + ginkgo $(GINKGO_PARALLEL_OPT) --randomize-all --always-emit-ginkgo-writer \ + --focus=CNI:Kube-OVN ./test/e2e/ovn-ic/ovn-ic.test .PHONY: kube-ovn-lb-svc-conformance-e2e kube-ovn-lb-svc-conformance-e2e: @@ -107,7 +116,8 @@ kube-ovn-lb-svc-conformance-e2e: E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ginkgo -p --randomize-all --focus=CNI:Kube-OVN ./test/e2e/lb-svc/lb-svc.test + ginkgo $(GINKGO_PARALLEL_OPT) --randomize-all --always-emit-ginkgo-writer \ + --focus=CNI:Kube-OVN ./test/e2e/lb-svc/lb-svc.test .PHONY: kube-ovn-eip-conformance-e2e kube-ovn-eip-conformance-e2e: @@ -115,7 +125,8 @@ kube-ovn-eip-conformance-e2e: E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ginkgo -p --randomize-all --focus=CNI:Kube-OVN ./test/e2e/ovn-eip/ovn-eip.test + ginkgo $(GINKGO_PARALLEL_OPT) --randomize-all --always-emit-ginkgo-writer \ + --focus=CNI:Kube-OVN ./test/e2e/ovn-eip/ovn-eip.test .PHONY: kube-ovn-security-e2e kube-ovn-security-e2e: @@ -123,4 +134,5 @@ kube-ovn-security-e2e: E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ginkgo -p --randomize-all --focus=CNI:Kube-OVN ./test/e2e/security/security.test + ginkgo $(GINKGO_PARALLEL_OPT) --randomize-all --always-emit-ginkgo-writer \ + --focus=CNI:Kube-OVN ./test/e2e/security/security.test