This is an automated email from the ASF dual-hosted git repository. dmsolr pushed a commit to branch fix/7478-cluster-e2e-resolution in repository https://gitbox.apache.org/repos/asf/shenyu.git
commit 7275812aeec32281a488101fc5a1d4858fa1c152 Author: Luke Haochao Zhuang <[email protected]> AuthorDate: Mon Oct 12 10:38:59 2026 +0800 fix(ci): include cluster suites in e2e matrix --- .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" } }[.];
