|
13 | 13 | * [Consensus seeking](#consensus-seeking) |
14 | 14 | * [Waiting for approvals](#waiting-for-approvals) |
15 | 15 | * [Testing and CI](#testing-and-ci) |
16 | | - * [Useful CI jobs](#useful-ci-jobs) |
17 | | - * [Starting a CI job](#starting-a-ci-job) |
| 16 | + * [Useful Jenkins CI jobs](#useful-jenkins-ci-jobs) |
| 17 | + * [Starting a Jenkins CI job](#starting-a-jenkins-ci-job) |
18 | 18 | * [Internal vs. public API](#internal-vs-public-api) |
19 | 19 | * [Breaking changes](#breaking-changes) |
20 | 20 | * [Breaking changes and deprecations](#breaking-changes-and-deprecations) |
@@ -209,21 +209,56 @@ the comment anyway to avoid any doubt. |
209 | 209 | All fixes must have a test case which demonstrates the defect. The test should |
210 | 210 | fail before the change, and pass after the change. |
211 | 211 |
|
212 | | -All pull requests must pass continuous integration tests. Code changes must pass |
213 | | -on [project CI server](https://ci.nodejs.org/). Pull requests that only change |
214 | | -documentation and comments can use GitHub Actions results. |
215 | | - |
216 | 212 | Do not land any pull requests without a passing (green or yellow) CI run. |
217 | | -For documentation-only changes, GitHub Actions CI is sufficient. |
218 | | -For all other code changes, Jenkins CI must pass as well. If there are |
219 | | -Jenkins CI failures unrelated to the change in the pull request, try "Resume |
220 | | -Build". It is in the left navigation of the relevant `node-test-pull-request` |
221 | | -job. It will preserve all the green results from the current job but re-run |
222 | | -everything else. Start a fresh CI if more than seven days have elapsed since |
223 | | -the original failing CI as the compiled binaries for the Windows and ARM |
224 | | -platforms are only kept for seven days. |
| 213 | +A green GitHub Actions CI result is required. A passing |
| 214 | +[Jenkins CI](https://ci.nodejs.org/) is also required if PR contains changes |
| 215 | +that will affect the `node` binary. This is critical as GitHub Actions CI does |
| 216 | +not cover all the environments supported by Node.js. |
| 217 | + |
| 218 | +<details> |
| 219 | +<summary>Changes that affect the `node` binary</summary> |
| 220 | + |
| 221 | +Changes in the following folders (except comment-only changes) are guaranteed to |
| 222 | +affect the `node` binary: |
| 223 | + |
| 224 | +* `deps/` |
| 225 | +* `lib/` |
| 226 | +* `src/` |
| 227 | +* `test/` |
| 228 | +* `tools/code_cache/` |
| 229 | +* `tools/gyp/` |
| 230 | +* `tools/icu/` |
| 231 | +* `tools/inspector-protocol/` |
| 232 | +* `tools/msvs/` |
| 233 | +* `tools/snapshot/` |
| 234 | +* `tools/v8_gypfiles/` |
| 235 | + |
| 236 | +There are some other files that touch the build chain. Changes in the following |
| 237 | +files also qualify as affecting the `node` binary: |
| 238 | + |
| 239 | +* `tools/*.py` |
| 240 | +* `tools/build-addons.js` |
| 241 | +* `*.gyp` |
| 242 | +* `*.gypi` |
| 243 | +* `configure` |
| 244 | +* `configure.py` |
| 245 | +* `Makefile` |
| 246 | +* `vcbuilt.bat` |
| 247 | + |
| 248 | +</details> |
| 249 | + |
| 250 | +If there are GitHub Actions CI failures unrelated to the change in the pull |
| 251 | +request, try "Re-run all jobs". It's under the "🔄 Re-run jobs" button, on the |
| 252 | +right-hand side of "Checks" tab. |
| 253 | + |
| 254 | +If there are Jenkins CI failures unrelated to the change in the pull request, |
| 255 | +try "Resume Build". It is in the left navigation of the relevant |
| 256 | +`node-test-pull-request` job. It will preserve all the green results from the |
| 257 | +current job but re-run everything else. Start a fresh CI if more than seven days |
| 258 | +have elapsed since the original failing CI as the compiled binaries for the |
| 259 | +Windows and ARM platforms are only kept for seven days. |
225 | 260 |
|
226 | | -#### Useful CI jobs |
| 261 | +#### Useful Jenkins CI jobs |
227 | 262 |
|
228 | 263 | * [`node-test-pull-request`](https://ci.nodejs.org/job/node-test-pull-request/) |
229 | 264 | is the CI job to test pull requests. It runs the `build-ci` and `test-ci` |
@@ -248,7 +283,7 @@ not used in other CI test runs (such as tests in the `internet` or `pummel` |
248 | 283 | directories). It can also make sure tests pass when provided with a flag not |
249 | 284 | used in other CI test runs (such as `--worker`). |
250 | 285 |
|
251 | | -#### Starting a CI job |
| 286 | +#### Starting a Jenkins CI job |
252 | 287 |
|
253 | 288 | From the CI Job page, click "Build with Parameters" on the left side. |
254 | 289 |
|
|