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

aglinxinyuan pushed a commit to branch 
ci/skip-boot-smoke-on-old-backport-targets
in repository https://gitbox.apache.org/repos/asf/texera.git

commit 67f1b66aad4da6435e7e9ab35b3d2b5b472c82f7
Author: Xinyuan Lin <[email protected]>
AuthorDate: Mon Jul 27 16:02:52 2026 -0700

    fix(ci): skip boot smoke steps on backport targets that predate 
smoke-boot.sh
    
    The backport CI legs rebuild the workspace as the release/* target tree
    (prepare-backport-checkout.sh) while running main's build.yml, so steps
    that invoke .github/scripts/smoke-boot.sh fail with exit 127 on targets
    that predate the harness (#6319) — release/v1.2 today. First tripped by
    the backport leg of #6910, the first release-labeled PR to fire
    amber-integration since the harness landed.
    
    Key every boot-smoke step (amber-integration's dist/unzip/smoke unit and
    the whole platform-integration boot sequence) on the script's presence in
    the checked-out tree via hashFiles, so those legs skip cleanly instead of
    failing. The guard self-retires once smoke-boot.sh is backported to the
    target branch.
    
    Co-Authored-By: Claude Fable 5 <[email protected]>
---
 .github/workflows/build.yml | 31 +++++++++++++++++++++++++------
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index becd8deb34..caf9eb36ff 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -656,10 +656,18 @@ jobs:
         # `amber` and runs in parallel (as platform-integration does vs
         # platform); the sbt compile is already warm from the integration-test
         # run above. ubuntu-only: the boot is pure-JVM and OS-independent.
-        if: matrix.os == 'ubuntu-latest'
+        #
+        # hashFiles keys this step (and the unzip + smoke steps below, which
+        # form one unit with it) on smoke-boot.sh being present in the
+        # checked-out tree: backport legs rebuild the workspace as the
+        # release/* target (Prepare backport workspace above), and targets
+        # that predate the harness (#6319) would otherwise fail the smoke
+        # steps with exit 127. The guard self-retires once the script is
+        # backported to the target branch.
+        if: matrix.os == 'ubuntu-latest' && 
hashFiles('.github/scripts/smoke-boot.sh') != ''
         run: sbt "WorkflowExecutionService/dist"
       - name: Unzip amber dist
-        if: matrix.os == 'ubuntu-latest'
+        if: matrix.os == 'ubuntu-latest' && 
hashFiles('.github/scripts/smoke-boot.sh') != ''
         run: |
           mkdir -p /tmp/dists
           unzip -q amber/target/universal/amber-*.zip -d /tmp/dists/
@@ -670,7 +678,7 @@ jobs:
         # working directory for a directory named `amber`; run from the 
checkout
         # root (the default) that resolves to ./amber and reads
         # amber/src/main/resources/web-config.yml (port 8080).
-        if: matrix.os == 'ubuntu-latest'
+        if: matrix.os == 'ubuntu-latest' && 
hashFiles('.github/scripts/smoke-boot.sh') != ''
         env:
           # Quiet boot logs, same wiring as the test steps above. Safe here:
           # smoke-boot's verdict is LISTEN-based, never log-scraping (#6332).
@@ -687,7 +695,7 @@ jobs:
         # so no iceberg / S3 access. Config resolves via Utils.amberHomePath to
         # amber/src/main/resources/computing-unit-master-config.yml (port 
8085).
         # Reuses the amber dist built + unzipped above for the texera-web boot.
-        if: matrix.os == 'ubuntu-latest'
+        if: matrix.os == 'ubuntu-latest' && 
hashFiles('.github/scripts/smoke-boot.sh') != ''
         env:
           # Quiet boot logs, same wiring as the test steps above. Safe here:
           # smoke-boot's verdict is LISTEN-based, never log-scraping (#6332).
@@ -929,15 +937,25 @@ jobs:
         # compiling its own tests) rather than downloading an artifact from the
         # `platform` job, so the two stay independent and run in parallel. No
         # jacoco here — unit tests + coverage live in `platform`.
+        #
+        # hashFiles keys this step (and every step below — the whole job is
+        # the boot smoke test) on smoke-boot.sh being present in the
+        # checked-out tree: backport legs rebuild the workspace as the
+        # release/* target (Prepare backport workspace above), and targets
+        # that predate the harness (#6319) would otherwise fail the smoke
+        # step with exit 127. The guard self-retires once the script is
+        # backported to the target branch.
+        if: hashFiles('.github/scripts/smoke-boot.sh') != ''
         run: sbt "${{ matrix.sbt_project }}/dist"
       - name: Unzip ${{ matrix.service }} dist
+        if: hashFiles('.github/scripts/smoke-boot.sh') != ''
         run: |
           mkdir -p /tmp/dists
           unzip -q ${{ matrix.service }}/target/universal/${{ matrix.service 
}}-*.zip -d /tmp/dists/
       - name: Start MinIO
         # file-service's boot creates its S3 bucket via S3StorageClient; only
         # that service needs an object store, so the rest of the matrix skips 
this.
-        if: ${{ matrix.object_store }}
+        if: ${{ matrix.object_store && 
hashFiles('.github/scripts/smoke-boot.sh') != '' }}
         run: |
           docker run -d --name minio --network host \
             -e MINIO_ROOT_USER=texera_minio \
@@ -954,7 +972,7 @@ jobs:
         # LakeFSStorageClient.healthCheck(), so this must be up for it to 
reach a
         # listening state. Config mirrors bin/single-node (compose + .env),
         # adapted to CI creds (postgres/postgres @ localhost).
-        if: ${{ matrix.object_store }}
+        if: ${{ matrix.object_store && 
hashFiles('.github/scripts/smoke-boot.sh') != '' }}
         run: |
           docker run -d --name lakefs --network host \
             -e LAKEFS_DATABASE_TYPE=postgres \
@@ -976,6 +994,7 @@ jobs:
       - name: Smoke-test ${{ matrix.service }} boots
         # Launch the packaged service and assert it reaches LISTEN on its port
         # without a runtime classpath/linkage crash (#6220).
+        if: hashFiles('.github/scripts/smoke-boot.sh') != ''
         env:
           TEXERA_HOME: ${{ github.workspace }}
           # Quiet boot logs, same wiring as the amber jobs. Safe here:

Reply via email to