diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 37a4c49..66a0da7 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 @@ -91,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 @@ -111,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" @@ -155,7 +163,10 @@ 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: | + echo $PATH | sed 's/:/\n/g' + java -version + make generate-ael - name: Run integration tests env: @@ -176,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 @@ -223,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