Skip to content

Extended ci#390

Merged
adespawn merged 5 commits intoscylladb:mainfrom
adespawn:extended-ci
Mar 12, 2026
Merged

Extended ci#390
adespawn merged 5 commits intoscylladb:mainfrom
adespawn:extended-ci

Conversation

@adespawn
Copy link
Contributor

@adespawn adespawn commented Jan 29, 2026

The main goal of this PR is to add a new extended version of the CI (as discussed in #292)

@adespawn adespawn force-pushed the extended-ci branch 3 times, most recently from 7d97bb0 to e5eea2c Compare January 29, 2026 13:28
@adespawn adespawn self-assigned this Jan 29, 2026
@adespawn adespawn added this to the 0.4.0 milestone Jan 29, 2026
@adespawn adespawn added the Tests Very important label Jan 29, 2026
@adespawn adespawn requested a review from wprzytula January 29, 2026 14:22
@adespawn adespawn marked this pull request as ready for review January 29, 2026 14:22
Comment on lines +73 to +80
#### Integration tests

| | Linux x64 | Linux arm**| MacOS Intel | MacOS Arm |
|-------------- |----------- |----------- |------------- |----------- |
| Node 20 | ✅ | ❌ | ❌ (planned) | ❌ |
| Node 22 | 🟠 | ❌ | ❌ (planned) | ❌ |
| Node 24 | 🟠 | ❌ | ❌ (planned) | ❌ |
| Node current | 🟠 | ❌ | ❌ (planned) | ❌ |
Copy link
Contributor

Choose a reason for hiding this comment

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

💭 Shouldn't we rather test newest Node.js in the main CI to discover problems with new Node.js implementations quickly? Node 20 should be left in the main CI as well; the remaining Node.js implementations should be run in the extended CI.

Copy link
Contributor

Choose a reason for hiding this comment

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

We need to run tests on Linux ARM IMO.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Shouldn't we rather test newest Node.js in the main CI to discover problems with new Node.js implementations quickly

I'm on the edge here.
On one had your argument is valid, but on the other hand, when running on newer node version, we may accidently introduces changes that depend on the newer node versions. Also, the legendary memory bug was present on the older node versions - not the newest.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We need to run tests on Linux ARM IMO.

I had some problems with CCM on arm CI, although I didn't document what specific issue that was.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Node 20 should be left in the main CI as well

Reading the whole message before replying would be nice. It depends if we want to have 2 integration tests on each PR. It's already the longest CI, and I already added examples on the newest version to the CI, to catch some obvious bugs

Copy link
Contributor

Choose a reason for hiding this comment

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

If CI longevity is the problem for the development, then I agree - let's only run integration tests with the oldest supported Node.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's more of a concern amount of tasks the CI takes - they will be done in parallel.

Copy link
Contributor

@wprzytula wprzytula Feb 4, 2026

Choose a reason for hiding this comment

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

And what's the concern of the amount of tasks about? CI costs?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

When testing #393, I've run into situations where despite running only integration tests CI, some of the run (i've run few in parallel) were waiting for other to finish, before starting. I worry, that when we increase the number or running tasks (especially long one), it may slow down the CI significantly in situations when I push changes to multiple PRs

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Or somehow else trigger CI multiple times

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

Adds an “extended CI” workflow intended to run a broader test matrix on releases, and refactors CI logic into shared composite actions.

Changes:

  • Introduces a new tag-triggered “extended CI” workflow covering full examples + integration test matrices.
  • Refactors existing workflows to use shared composite actions (.github/common/setup, example, integration) and trims the regular examples matrix.
  • Documents the CI split (regular vs extended) and updates the release checklist.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
MAINTENANCE.md Documents regular vs extended CI and updates release steps.
.github/workflows/unit-tests.yml Switches setup step to shared composite action.
.github/workflows/typescript-tests.yml Switches setup step to shared composite action.
.github/workflows/release.yml Switches setup step to shared composite action.
.github/workflows/integration-tests.yml Replaces inline integration setup with shared composite action.
.github/workflows/examples.yml Reduces regular examples matrix and uses shared example composite action.
.github/workflows/benchmarks.yml Switches setup reference (currently incorrect path).
.github/workflows/extended-ci.yml Adds new workflow for extended examples + integration matrices.
.github/common/setup/action.yml Adds description for shared setup composite action.
.github/common/integration/action.yml Adds shared composite action for integration tests.
.github/common/example/action.yml Adds shared composite action for running examples.

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

Moves the setup action to a common folder, so that we can create
additional common actions in the future (see next commit).

Also update description, as linter complains if this field is missing
run: docker compose -f .github/docker-compose.yml logs
shell: bash
- name: Remove cluster
if: ${{ always() }}
Copy link
Contributor

Choose a reason for hiding this comment

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

This is missing in Rust Driver's CI, please add it there too.

This commit extracts the logic for running examples and integration tests
into a separate reusable GitHub Action. Those actions will be then
also used in the extended CI workflow added in the next commit.
This adds an extended CI workflow that runs integration tests
and examples on all supported node versions, for all supported
architectures.
@adespawn
Copy link
Contributor Author

All typo comments should be resovled now

@wprzytula
Copy link
Contributor

@adespawn Is this ready for re-review?

@adespawn
Copy link
Contributor Author

@adespawn Is this ready for re-review?

Yes. The only remaining parts were to discuss two big discussions still open, but with the ZPP chaos on Tuesday I didn't get the change to do it.

@adespawn
Copy link
Contributor Author

adespawn commented Mar 3, 2026

Add macos examples as planned, in the future consider some smoke tests for newest node version (for now we have examples, consider if I can do something better, or is it good enough)

adespawn added 2 commits March 9, 2026 09:44
This adds documentation about the existing CI workflows and
the split between regular and extended CI.

It also update the release instruction, to add the reminder about
extended CI.
This was a leftover from the NAPI-RS init template and is not needed
for this CI.
@adespawn adespawn merged commit 10dbdce into scylladb:main Mar 12, 2026
8 checks passed
@adespawn adespawn deleted the extended-ci branch March 12, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Tests Very important

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants