From 3efb05dde5b077a5cc22e168b3a8bffec5a2cfaf Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 30 Jul 2026 11:49:52 -0700 Subject: [PATCH 1/6] Run unit tests on macos arm64. --- .github/workflows/build-test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 37a4c49..79ab0c1 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -48,10 +48,14 @@ jobs: fi unit: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + os: [ + ubuntu-latest, + macos-14 + ] fail-fast: false steps: - uses: actions/checkout@v4 From 30eec67b769c193b2d369cba5d1ea45265946b6c Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Thu, 30 Jul 2026 11:53:00 -0700 Subject: [PATCH 2/6] Have integration tests also run on mac arm64. TODO - this requires self hosted runners to be configured for this repo. --- .github/workflows/build-test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 79ab0c1..29da893 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -95,10 +95,14 @@ jobs: run: python -m pytest tests/unit -v integration: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: python: ['3.10', '3.11', '3.12', '3.13', '3.14'] + os: [ + ubuntu-latest, + ["self-hosted", "macOS", "ARM64"] + ] fail-fast: false steps: - uses: actions/checkout@v4 From 6e21d0f9cc8ee81781841da1c4427ca5f23a2827 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 31 Jul 2026 09:22:21 -0700 Subject: [PATCH 3/6] Increase the container's file descriptor limit to 15000 to match the server config's expected number of FD's. --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 29da893..80b35a1 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -119,7 +119,7 @@ jobs: # native-ExpOp coverage that consumes ``client_with_cdt_data_812`` # / ``client_812``; tests that need 8.1.2 and don't see an # 8.1.2-routing seed (``AEROSPIKE_HOST_8_1_2``) will skip cleanly. - docker run -d -p 3000:3000 --name aerospike-server aerospike/aerospike-server:8.1.2.1 + docker run -d -p 3000:3000 --ulimit nofile=15000:15000 --name aerospike-server aerospike/aerospike-server:8.1.2.1 for i in {1..10}; do if docker exec aerospike-server asinfo -v "statistics" > /dev/null 2>&1; then echo "Aerospike server is ready after $i seconds" From 46e551e1f8e1012e649703675b9b47c129411145 Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 31 Jul 2026 10:02:03 -0700 Subject: [PATCH 4/6] debug: check if runner user has access to java 25 --- .github/workflows/build-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 80b35a1..75c2978 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -163,7 +163,9 @@ jobs: --extra-index-url "https://${user_enc}:${JF_OIDC_TOKEN}@artifact.aerospike.io/artifactory/api/pypi/${{ vars.JFROG_PROJECT }}-pypi-dev-local/simple/" - name: Generate ANTLR parser - run: make generate-ael + run: | + java -version + make generate-ael - name: Run integration tests env: From 6a963130cbf1219934129b0e0d486c94d637492b Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 31 Jul 2026 10:03:41 -0700 Subject: [PATCH 5/6] debug: see if runner user's PATH has java 25 --- .github/workflows/build-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 75c2978..3598661 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -164,6 +164,7 @@ jobs: - name: Generate ANTLR parser run: | + echo $PATH | sed 's/:/\n/g' java -version make generate-ael From 97bf1ed19dd86bc8d802673dcb2b274fb4d5baab Mon Sep 17 00:00:00 2001 From: Julian Nguyen <109386615+juliannguyen4@users.noreply.github.com> Date: Fri, 31 Jul 2026 10:25:12 -0700 Subject: [PATCH 6/6] Also run unit and integration tests on mac arm64 with free threaded build. --- .github/workflows/build-test.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 3598661..66a0da7 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -187,10 +187,14 @@ jobs: # de-facto serialization (module-level singletons, dict mutation races, # cross-loop asyncio primitives) fails here before it reaches users. unit-freethreaded: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: python: ['3.14t'] + os: [ + ubuntu-latest, + macos-14 + ] fail-fast: false steps: - uses: actions/checkout@v4 @@ -234,10 +238,14 @@ jobs: run: python -m pytest tests/unit -v integration-freethreaded: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: python: ['3.14t'] + os: [ + ubuntu-latest, + ["self-hosted", "macOS", "ARM64"] + ] fail-fast: false steps: - uses: actions/checkout@v4