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

aglinxinyuan pushed a commit to branch xinyuan-state-materialization
in repository https://gitbox.apache.org/repos/asf/texera.git


The following commit(s) were added to refs/heads/xinyuan-state-materialization 
by this push:
     new 03b7e894bf ci: run state-materialization integration tests on macOS
03b7e894bf is described below

commit 03b7e894bf8547ff91bf9d2b4839e132b0a6e987
Author: Xinyuan Lin <[email protected]>
AuthorDate: Wed May 13 00:47:44 2026 -0700

    ci: run state-materialization integration tests on macOS
    
    Cross-region state materialization is reported to fail on macOS while
    working on Linux / Windows. The main python CI job is ubuntu-only
    because it depends on a postgres service container. Add a separate
    macOS leg that runs only the sqlite-backed integration tests, which
    don't need postgres. If they fail here but pass on the main ubuntu
    leg, the macOS regression is reproduced in CI.
---
 .github/workflows/build.yml | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 988c383139..d4cc107125 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -534,6 +534,43 @@ jobs:
           flags: python
           fail_ci_if_error: false
 
+  python-state-materialization-mac:
+    # Diagnostic leg: cross-region state materialization is reported to
+    # fail on macOS while working on Windows / Linux. The main `python`
+    # job above runs only on ubuntu-latest because it depends on a
+    # postgres service container (service containers don't work on
+    # macOS runners). The state-materialization integration tests use
+    # an in-process sqlite-backed SqlCatalog instead, so we can run
+    # them on macOS without postgres infra. If they fail here but pass
+    # in the main `python` job, we've reproduced the macOS-specific
+    # regression in CI.
+    if: ${{ inputs.run_python }}
+    runs-on: macos-latest
+    steps:
+      - name: Checkout Texera
+        uses: actions/checkout@v5
+        with:
+          ref: ${{ inputs.checkout_ref || github.sha }}
+          fetch-depth: 0
+      - name: Prepare backport workspace
+        if: ${{ inputs.backport_target_branch != '' }}
+        run: bash ./.github/scripts/prepare-backport-checkout.sh "${{ 
inputs.backport_target_branch }}" "${{ inputs.backport_commit_range }}"
+      - name: Set up Python 3.12
+        uses: actions/setup-python@v6
+        with:
+          python-version: "3.12"
+      - name: Install dependencies
+        run: |
+          python -m pip install uv
+          if [ -f amber/requirements.txt ]; then uv pip install --system 
--index-strategy unsafe-best-match -r amber/requirements.txt; fi
+          if [ -f amber/operator-requirements.txt ]; then uv pip install 
--system --index-strategy unsafe-best-match -r amber/operator-requirements.txt; 
fi
+          if [ -f amber/dev-requirements.txt ]; then uv pip install --system 
-r amber/dev-requirements.txt; fi
+      - name: Run state-materialization integration tests
+        run: |
+          cd amber && pytest -sv \
+            
src/test/python/core/architecture/packaging/test_state_materialization_e2e.py \
+            
src/test/python/core/runnables/test_main_loop.py::TestMainLoop::test_process_start_channel_persists_produce_state_on_start_output
+
   agent-service:
     if: ${{ inputs.run_agent_service }}
     name: ${{ format('agent-service{0} ({1})', inputs.job_name_suffix, 
matrix.os) }}

Reply via email to