This is an automated email from the ASF dual-hosted git repository.

Aias00 pushed a commit to branch fix/e2e-required-check-infra-unblock
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to 
refs/heads/fix/e2e-required-check-infra-unblock by this push:
     new 02f722a92b fix(ci): gate e2e required check on e2e-case; make 
build-docker-images/e2e-storage non-blocking
02f722a92b is described below

commit 02f722a92be33800a857eb4ecc8fdcbcb58f05b2
Author: aias00 <[email protected]>
AuthorDate: Thu Oct 15 19:22:55 2026 -0700

    fix(ci): gate e2e required check on e2e-case; make 
build-docker-images/e2e-storage non-blocking
---
 .github/workflows/e2e-k8s.yml | 48 ++++++++++++++++++++++++++++++-------------
 1 file changed, 34 insertions(+), 14 deletions(-)

diff --git a/.github/workflows/e2e-k8s.yml b/.github/workflows/e2e-k8s.yml
index c0b6775f8b..2baaa9ef63 100644
--- a/.github/workflows/e2e-k8s.yml
+++ b/.github/workflows/e2e-k8s.yml
@@ -134,17 +134,29 @@ jobs:
       - name: Build with Maven
         shell: bash
         run: |
-          if mvnd --version > /dev/null 2>&1; then
-            echo "Using mvnd for build"
-            mvnd -B clean install -Prelease,docker -Dmaven.javadoc.skip=true 
-Drat.skip=true -Dmaven.test.skip=true -Djacoco.skip=true -DskipITs -DskipTests 
-T1C
-          else
-            echo "Falling back to maven wrapper"
-            if [[ "${{ runner.os }}" == "Windows" ]]; then
-              ./mvnw.cmd -B clean install -Prelease,docker 
-Dmaven.javadoc.skip=true -Drat.skip=true -Dmaven.test.skip=true 
-Djacoco.skip=true -DskipITs -DskipTests -T1C
+          build_shenyu() {
+            if mvnd --version > /dev/null 2>&1; then
+              echo "Using mvnd for build"
+              mvnd -B clean install -Prelease,docker -Dmaven.javadoc.skip=true 
-Drat.skip=true -Dmaven.test.skip=true -Djacoco.skip=true -DskipITs -DskipTests 
-T1C
             else
-              ./mvnw -B clean install -Prelease,docker 
-Dmaven.javadoc.skip=true -Drat.skip=true -Dmaven.test.skip=true 
-Djacoco.skip=true -DskipITs -DskipTests -T1C
+              echo "Falling back to maven wrapper"
+              if [[ "${{ runner.os }}" == "Windows" ]]; then
+                ./mvnw.cmd -B clean install -Prelease,docker 
-Dmaven.javadoc.skip=true -Drat.skip=true -Dmaven.test.skip=true 
-Djacoco.skip=true -DskipITs -DskipTests -T1C
+              else
+                ./mvnw -B clean install -Prelease,docker 
-Dmaven.javadoc.skip=true -Drat.skip=true -Dmaven.test.skip=true 
-Djacoco.skip=true -DskipITs -DskipTests -T1C
+              fi
             fi
-          fi
+          }
+          attempt=0
+          until build_shenyu; do
+            attempt=$((attempt + 1))
+            if [[ $attempt -ge 3 ]]; then
+              echo "ShenYu build failed after $attempt attempts"
+              exit 1
+            fi
+            echo "ShenYu build attempt $attempt failed, retrying in 30s..."
+            sleep 30
+          done
 
       - name: Save ShenYu Maven Repos
         uses: actions/cache/save@v3
@@ -389,12 +401,20 @@ jobs:
       - name: checking job status
         run: |
           [[ "${{ needs.changes.result }}" == "success" ]] || exit 1
-          if [[ "${{ needs.changes.outputs.run_e2e }}" == "true" ]]; then
-            [[ "${{ needs.build-docker-images.result }}" == "success" ]] || 
exit 1
+          # build-docker-images is infra-heavy (Docker Hub pull limits / disk
+          # pressure). When it fails, e2e-case/e2e-storage are skipped anyway, 
so
+          # treat it as non-blocking instead of failing the required check.
+          if [[ "${{ needs.changes.outputs.run_e2e }}" == "true" && "${{ 
needs.build-docker-images.result }}" != "success" ]]; then
+            echo "::warning::build-docker-images failed (infra); downstream 
e2e jobs skipped — non-blocking"
           fi
-          if [[ "${{ needs.changes.outputs.run_storage }}" == "true" ]]; then
-            [[ "${{ needs.e2e-storage.result }}" == "success" ]] || exit -1
+          # e2e-storage starts postgres/opengauss service containers that are 
prone
+          # to Docker Hub pull limits / init timeouts, independent of PR 
content.
+          # Surfaced as a warning only.
+          if [[ "${{ needs.changes.outputs.run_storage }}" == "true" && "${{ 
needs.e2e-storage.result }}" != "success" ]]; then
+            echo "::warning::e2e-storage failed (infra) — non-blocking"
           fi
-          if [[ "${{ needs.changes.outputs.run_e2e_cases }}" == "true" ]]; then
+          # e2e-case is the real functional gate. Enforce it only when the 
docker
+          # images were actually built (otherwise it was skipped due to infra 
above).
+          if [[ "${{ needs.changes.outputs.run_e2e_cases }}" == "true" && "${{ 
needs.build-docker-images.result }}" == "success" ]]; then
             [[ "${{ needs.e2e-case.result }}" == "success" ]] || exit -1
           fi

Reply via email to