Skip to content

Add MacOS to integration tests CI#393

Draft
adespawn wants to merge 1 commit intoscylladb:mainfrom
adespawn:apple-machine
Draft

Add MacOS to integration tests CI#393
adespawn wants to merge 1 commit intoscylladb:mainfrom
adespawn:apple-machine

Conversation

@adespawn
Copy link
Contributor

@adespawn adespawn commented Feb 3, 2026

This adds a new part of the CI workflow to run integration tests on
intel MacOS with Cassandra CCM.

Why not ScyllaDB? It's not supported on MacOS.

What about #244?
If this appears to be a problem, we can move this test to extended
CI, where it will not hurt us so much to have a flaky test
(especially if this is a decently rare chance to fail).

What about M chips (arm)?
The Java source we use for CCM does not support JAVA 8 on this platform.
Using Java 11 causes CI to fail (ccm just never starts the nodes).
(See: https://github.com/scylladb/nodejs-rs-driver/actions/runs/21636604746/job/62363768675).

At some point I may try to search for a different Java provider,
that does support this architecture. For now we limit ourselves
to intel Macs only.

Progress towards: #50 #292

@adespawn adespawn force-pushed the apple-machine branch 2 times, most recently from b95a2c0 to db27402 Compare February 3, 2026 16:49
@adespawn adespawn changed the title [WIP] MACOS Add MacOS to integrations test CI Feb 3, 2026
Comment on lines 22 to 25
"targets": [
"x86_64-unknown-linux-gnu"
"x86_64-unknown-linux-gnu",
"x86_64-apple-darwin"
]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A small inconsistency on may part here. For linux arm I planned to add this, when adding it to release CI. Here I added it alongside CI. Doesn't really matter if it's here or there

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❓ Why doesn't it matter where it is: in release CI or in (regular?) CI?

@adespawn adespawn marked this pull request as ready for review February 3, 2026 16:57
@adespawn adespawn requested a review from Copilot February 3, 2026 16:57
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds MacOS (Intel x86_64) integration test support to the CI workflow. The tests use Cassandra with CCM since ScyllaDB is not supported on MacOS. ARM-based Macs are excluded due to Java 8 compatibility issues with CCM.

Changes:

  • Added x86_64-apple-darwin as a build target in package.json
  • Renamed existing CI job from build-and-run-tests to linux-integration-tests for clarity
  • Added new macos-integration-tests job that sets up CCM with Cassandra on Intel MacOS runners

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
package.json Adds x86_64-apple-darwin to the napi build targets to support MacOS Intel builds
.github/workflows/integration-tests.yml Renames Linux job for clarity and adds a new MacOS integration test job with CCM setup, loopback interface configuration, and Cassandra-based testing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

git clone https://github.com/scylladb/scylla-ccm.git
python3 -m venv ./
source ./bin/activate
pip install https://github.com/adespawn/scylla-ccm/archive/macos-proper-fix.zip
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: I'm using a fork branch at the moment: will have to get those changes merged to main

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So let's wait until they get merged.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the status of this?

build: npm run build -- --target x86_64-apple-darwin
name: Build and run integration tests - ${{ matrix.settings.target }} - node@20
runs-on: ${{ matrix.settings.host }}
timeout-minutes: 60
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:O

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently it takes ~11 mintes to run the CI. I can reduce the timeout to something like 20-30 minutes

git clone https://github.com/scylladb/scylla-ccm.git
python3 -m venv ./
source ./bin/activate
pip install https://github.com/adespawn/scylla-ccm/archive/macos-proper-fix.zip
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So let's wait until they get merged.

Comment on lines +95 to +99
- name: Run integration tests on cassandra
env:
CUSTOM_JAVA_HOME: __USE_JAVA_IN_PATH__
CCM_IS_SCYLLA: "false"
CCM_PATH: "./scylla-ccm"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

D o c u m e n t a t i o n

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

still unresolved.
What's __USE_JAVA_IN_PATH__ ???

@wprzytula wprzytula changed the title Add MacOS to integrations test CI Add MacOS to integration tests CI Feb 4, 2026
@adespawn adespawn added this to the 0.4.0 milestone Feb 23, 2026
This adds a new part of the CI workflow to run integration tests on
intel MacOS with Cassandra CCM.

Why not ScyllaDB? It's not supported on MacOS.

What about scylladb#244?
If this appears to be a problem, we can move this test to extended
CI, where it will not hurt us so much to have a flaky test
(especially if this is a decently rare chance to fail).

What about M chips (arm)?
The Java source we use for CCM does not support JAVA 8 on this platform.
Using Java 11 causes CI to fail (ccm just never starts the nodes).
(See: https://github.com/scylladb/nodejs-rs-driver/actions/runs/21636604746/job/62363768675).

At some point I may try to search for a different Java provider,
that does support this architecture. For now we limit ourselves
to intel Macs only.
@adespawn adespawn modified the milestones: 0.4.0, GA Feb 26, 2026
@adespawn adespawn marked this pull request as draft February 27, 2026 07:48
@adespawn
Copy link
Contributor Author

adespawn commented Mar 3, 2026

TODO: Add examples with database launched through CCM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants