@@ -18,16 +18,81 @@ file to `.npmignore`. All files listed there will **NOT** be added to the npm pa
1818When you remove a top level file or directory, remember to check (and remove if present)
1919if the deleted file / directory was present in ` .npmignore ` file.
2020
21+ ## CI
22+
23+ We split the CI into two parts:
24+
25+ - regular CI, that we run on each PR
26+ - extended CI, that we run on each release
27+
28+ We also have additional CI, that can be run occasionally:
29+
30+ - benchmarks (can be triggered manually)
31+ - documentation release (triggered on pushes to main)
32+
33+ ### Regular CI
34+
35+ The regular CI consists of the following workflows:
36+
37+ - Checking code quality (linters for JS and Rust)
38+ - Typescript tests
39+ - Unit tests
40+ - JS Dock linter
41+ - Partial examples (see below)
42+ - Partial integration tests
43+
44+ ### Extended CI
45+
46+ The extended CI consists of the following workflow:
47+
48+ - Full examples (see bellow)
49+ - Full integration tests
50+
51+ ### Matrix
52+
53+ We run examples on multiple node versions and architectures.
54+
55+ - ✅ - means we run it both on regular and extended CI
56+ - 🟠 - mean we run it on extended CI only
57+ - ❌ - means we do not run this configuration
58+
59+ The motivation for such split is to reduce the execution time for CI that is run on each commit / PR,
60+ while also ensuring the driver works correctly in most common configurations, when creating a new release.
61+
62+ #### Examples
63+
64+ | | Linux x64 | Linux arm | MacOS Intel* | MacOS Arm* |
65+ | -------------- | ----------- | ----------- | ------------- | ----------- |
66+ | Node 20 | ✅ | 🟠 | ❌ | ❌ |
67+ | Node 22 | 🟠 | 🟠 | ❌ | ❌ |
68+ | Node 24 | 🟠 | 🟠 | ❌ | ❌ |
69+ | Node current | ✅ | ✅ | ❌ | ❌ |
70+
71+ * ) Disabled due to problems with docker
72+
73+ #### Integration tests
74+
75+ | | Linux x64 | Linux arm** | MacOS Intel | MacOS Arm |
76+ | -------------- | ----------- | ----------- | ------------- | ----------- |
77+ | Node 20 | ✅ | ❌ | ❌ (planned) | ❌ |
78+ | Node 22 | 🟠 | ❌ | ❌ (planned) | ❌ |
79+ | Node 24 | 🟠 | ❌ | ❌ (planned) | ❌ |
80+ | Node current | 🟠 | ❌ | ❌ (planned) | ❌ |
81+
82+ ** ) Disabled due to problems with ccm
83+
2184## Releasing process
2285
23861 . Bump the package version. Remember to update the version in ` package-lock.json ` in
2487main directory, examples and benchmarks
2588(see [ example commit] ( https://github.com/scylladb/nodejs-rs-driver/pull/363/changes/41250609737052975129c7514439869324478008 ) on how to do that).
26- 2 . Create a release notes on GitHub. The version tag must match version from ` package.json ` with ` v ` prefix (for example: ` v0.2.0 ` ).
89+ 2 . Create a new tag
90+ 3 . Ensure the extended CI passes.
91+ 4 . Create a release notes on GitHub. The version tag must match version from ` package.json ` with ` v ` prefix (for example: ` v0.2.0 ` ).
2792Once you publish release notes, CI action will trigger automatically. This action will build and publish the npm package.
28- 3 . Once the CI action finishes, check if it succeeded. If it failed, you will have to fix the underlying issue, and re-run the CI action.
29- 4 . Verify that the new release is visible at [ npmjs site] ( https://www.npmjs.com/package/scylladb-driver-alpha ) .
30- 5 . Test the package, by installing it directly from npm. Go to ` examples ` directory, in ` package.json ` update the line:
93+ 5 . Once the CI action finishes, check if it succeeded. If it failed, you will have to fix the underlying issue, and re-run the CI action.
94+ 6 . Verify that the new release is visible at [ npmjs site] ( https://www.npmjs.com/package/scylladb-driver-alpha ) .
95+ 7 . Test the package, by installing it directly from npm. Go to ` examples ` directory, in ` package.json ` update the line:
3196` "scylladb-driver-alpha": "file:./../" `
3297to:
3398` "scylladb-driver-alpha": "<just-released-version>" ` ,
0 commit comments