This is an automated email from the ASF dual-hosted git repository.
dengliming pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 2f83f9a438 fix(ci): include cluster suites in e2e matrix (#7552)
2f83f9a438 is described below
commit 2f83f9a4389fdc6471361a3530dba056f6d15714
Author: Daming <[email protected]>
AuthorDate: Mon Oct 12 14:04:09 2026 +0800
fix(ci): include cluster suites in e2e matrix (#7552)
Co-authored-by: Luke Haochao Zhuang <[email protected]>
---
.github/scripts/resolve-test-case-matrix-test.sh | 12 ++++++++++--
.github/scripts/resolve-test-case-matrix.sh | 20 ++++++++++++++++++++
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/.github/scripts/resolve-test-case-matrix-test.sh
b/.github/scripts/resolve-test-case-matrix-test.sh
index 4c56b27470..ce49d871f4 100644
--- a/.github/scripts/resolve-test-case-matrix-test.sh
+++ b/.github/scripts/resolve-test-case-matrix-test.sh
@@ -116,6 +116,7 @@ assert_file_output "k8s-examples-http"
"shenyu-bootstrap/pom.xml" "run_k8s_examp
assert_file_output "k8s-examples-http" "pom.xml" "run_k8s_examples" "true"
readonly
E2E_GRPC="shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-grpc/compose/script/e2e-grpc-sync-compose.sh"
+readonly
E2E_CLUSTER="shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/compose/script/e2e-cluster-jdbc-compose.sh"
readonly
E2E_RABBITMQ="shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-logging-rabbitmq/compose/script/e2e-logging-rabbitmq-compose.sh"
readonly
E2E_RABBITMQ_CASE="shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-logging-rabbitmq/src/test/java/org/apache/shenyu/e2e/testcase/logging/rabbitmq/DividePluginCases.java"
readonly
IT_GRPC="shenyu-integrated-test/shenyu-integrated-test-grpc/src/test/java/GrpcPluginTest.java"
@@ -123,8 +124,13 @@ readonly
IT_K8S_GRPC="shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-
readonly
PROD_GRPC="shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml"
readonly
ADMIN_REGISTER="shenyu-admin/src/main/java/org/apache/shenyu/admin/service/register/AbstractShenyuClientRegisterServiceImpl.java"
readonly
ADMIN_SERVICE="shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/PluginServiceImpl.java"
+readonly
CLUSTER_SERVICE="shenyu-admin/src/main/java/org/apache/shenyu/admin/mode/cluster/filter/ClusterForwardFilter.java"
readonly
ALL_K8S_INGRESS_MATRIX='{"include":[{"case":"shenyu-integrated-test-k8s-ingress-http"},{"case":"shenyu-integrated-test-k8s-ingress-apache-dubbo"},{"case":"shenyu-integrated-test-k8s-ingress-websocket"},{"case":"shenyu-integrated-test-k8s-ingress-grpc"}]}'
+readonly
CLUSTER_E2E_MATRIX='{"include":[{"script":"e2e-cluster-jdbc-compose","case":"shenyu-e2e-case-cluster","example_projects":":shenyu-examples-http"},{"script":"e2e-cluster-zookeeper-compose","case":"shenyu-e2e-case-cluster","example_projects":":shenyu-examples-http"}]}'
readonly
ADMIN_REGISTER_E2E_MATRIX='{"include":[{"script":"e2e-http-sync-compose","case":"shenyu-e2e-case-http","example_projects":":shenyu-examples-http"},{"script":"e2e-springcloud-sync-compose","case":"shenyu-e2e-case-spring-cloud","example_projects":":shenyu-examples-eureka,:shenyu-examples-springcloud"},{"script":"e2e-apache-dubbo-sync-compose","case":"shenyu-e2e-case-apache-dubbo","example_projects":":shenyu-examples-apache-dubbo-service"},{"script":"e2e-grpc-sync-compose","case":"
[...]
+readonly ALL_E2E_MATRIX="$(jq -c '.include +=
[{script:"e2e-logging-rocketmq-compose",case:"shenyu-e2e-case-logging-rocketmq",example_projects:":shenyu-examples-http"},{script:"e2e-cluster-jdbc-compose",case:"shenyu-e2e-case-cluster",example_projects:":shenyu-examples-http"},{script:"e2e-cluster-zookeeper-compose",case:"shenyu-e2e-case-cluster",example_projects:":shenyu-examples-http"}]'
<<< "${ADMIN_REGISTER_E2E_MATRIX}")"
+readonly CLUSTER_SERVICE_E2E_MATRIX="$(jq -cn --argjson cluster
"${CLUSTER_E2E_MATRIX}" --argjson all "${ALL_E2E_MATRIX}" \
+ '{include: ($cluster.include + ($all.include | map(select(.case !=
"shenyu-e2e-case-cluster"))))}')"
readonly
ADMIN_REGISTER_IT_MATRIX='{"include":[{"case":"shenyu-integrated-test-apache-dubbo"},{"case":"shenyu-integrated-test-grpc"},{"case":"shenyu-integrated-test-http"},{"case":"shenyu-integrated-test-https"},{"case":"shenyu-integrated-test-spring-cloud"},{"case":"shenyu-integrated-test-websocket"},{"case":"shenyu-integrated-test-sdk-apache-dubbo"},{"case":"shenyu-integrated-test-sdk-http"}]}'
# Non-code PRs still run required workflows, but must not schedule builds or
E2E.
@@ -148,12 +154,14 @@ assert_output "e2e" "$(jq -cn --arg file
"${ADMIN_SERVICE}" '["README.md", $file
assert_ci_ignored "${E2E_GRPC}"
assert_file_output "e2e" "${E2E_GRPC}" "e2e_matrix" \
'{"include":[{"script":"e2e-grpc-sync-compose","case":"shenyu-e2e-case-grpc","example_projects":":shenyu-examples-grpc"}]}'
+assert_ci_ignored "${E2E_CLUSTER}"
+assert_file_output "e2e" "${E2E_CLUSTER}" "e2e_matrix" "${CLUSTER_E2E_MATRIX}"
+assert_file_output "e2e" "${CLUSTER_SERVICE}" "e2e_matrix"
"${CLUSTER_SERVICE_E2E_MATRIX}"
assert_file_output "e2e" "${E2E_RABBITMQ}" "e2e_matrix" \
'{"include":[{"script":"e2e-logging-rocketmq-compose","case":"shenyu-e2e-case-logging-rocketmq","example_projects":":shenyu-examples-http"}]}'
assert_file_output "e2e" "${E2E_RABBITMQ_CASE}" "e2e_matrix" \
'{"include":[{"script":"e2e-logging-rocketmq-compose","case":"shenyu-e2e-case-logging-rocketmq","example_projects":":shenyu-examples-http"}]}'
-assert_file_output "e2e" "pom.xml" "e2e_matrix" \
- "$(jq -c '.include +=
[{script:"e2e-logging-rocketmq-compose",case:"shenyu-e2e-case-logging-rocketmq",example_projects:":shenyu-examples-http"}]'
<<< "${ADMIN_REGISTER_E2E_MATRIX}")"
+assert_file_output "e2e" "pom.xml" "e2e_matrix" "${ALL_E2E_MATRIX}"
assert_file_output "integration" "${E2E_GRPC}" "run_integration" "false"
assert_file_output "k8s-ingress" "${E2E_GRPC}" "run_k8s_ingress" "false"
diff --git a/.github/scripts/resolve-test-case-matrix.sh
b/.github/scripts/resolve-test-case-matrix.sh
index 5a442bf54e..c6efba0b5e 100644
--- a/.github/scripts/resolve-test-case-matrix.sh
+++ b/.github/scripts/resolve-test-case-matrix.sh
@@ -61,6 +61,8 @@ add_e2e_all() {
add_unique e2e_cases "e2e-grpc-sync-compose"
add_unique e2e_cases "e2e-websocket-sync-compose"
add_unique e2e_cases "e2e-logging-rocketmq-compose"
+ add_unique e2e_cases "e2e-cluster-jdbc-compose"
+ add_unique e2e_cases "e2e-cluster-zookeeper-compose"
}
add_integration_all() {
@@ -264,6 +266,10 @@ map_direct_case_path() {
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-logging-rocketmq/*)
add_unique e2e_cases "e2e-logging-rocketmq-compose"
;;
+ shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-cluster/*)
+ add_unique e2e_cases "e2e-cluster-jdbc-compose"
+ add_unique e2e_cases "e2e-cluster-zookeeper-compose"
+ ;;
esac
else
case "${file}" in
@@ -358,6 +364,12 @@ map_domain_path() {
add_unique integration_cases "shenyu-integrated-test-http"
fi
;;
+ *cluster*|*Cluster*)
+ if [[ "${mode}" == "e2e" ]]; then
+ add_unique e2e_cases "e2e-cluster-jdbc-compose"
+ add_unique e2e_cases "e2e-cluster-zookeeper-compose"
+ fi
+ ;;
*rewrite*)
if [[ "${mode}" == "e2e" ]]; then
add_unique e2e_cases "e2e-http-sync-compose"
@@ -461,6 +473,14 @@ e2e_matrix="$(printf '%s\n' "${e2e_cases[@]}" | jq -R . |
jq -cs '
"e2e-logging-rocketmq-compose": {
case: "shenyu-e2e-case-logging-rocketmq",
example_projects: ":shenyu-examples-http"
+ },
+ "e2e-cluster-jdbc-compose": {
+ case: "shenyu-e2e-case-cluster",
+ example_projects: ":shenyu-examples-http"
+ },
+ "e2e-cluster-zookeeper-compose": {
+ case: "shenyu-e2e-case-cluster",
+ example_projects: ":shenyu-examples-http"
}
}[.];