Skip to content

ci: disable node_modules cache for all app-building jobs#6034

Open
dantovska wants to merge 1 commit into
mainfrom
ci/disable-cache-all-builds
Open

ci: disable node_modules cache for all app-building jobs#6034
dantovska wants to merge 1 commit into
mainfrom
ci/disable-cache-all-builds

Conversation

@dantovska

@dantovska dantovska commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Backports redis/RedisInsight#6031 into release/3.6.0 and extends it to every pipeline that builds the application. Specifically, this also adds cache-node-modules: '0' to the macOS and Windows build pipelines that were intentionally left untouched in the original PR.

Adds an opt-out cache-node-modules input (default '1') to the install-all-build-libs composite action, and disables caching at all the call sites that actually build the application:

All other consumers (lint, type-check, tests-backend, tests-frontend, licenses-check) fall through to the default '1' and keep caching unchanged.

Why

Same reasoning as #6031: after the bump of electron-builder to 26.15.2, builds in E2E Playwright Tests (v2) failed with Cannot find module 'detect-libc', originating from a stale node_modules/app-builder-lib/node_modules/@electron/rebuild@3.7.0 left behind by the restored cache. yarn install --frozen-lockfile does not delete orphaned nested node_modules, and the cache's restore-keys fallback silently brought the stale tree forward across the lockfile change.

For pipelines that build the app from scratch, a clean install is cheap insurance — these jobs already spend most of their time compiling and packaging, so the cache win was marginal anyway. Applying the same fix to macOS and Windows keeps behavior consistent across platforms and protects them from the same class of failure.

Test plan

  • CI runs on this PR pass on release/3.6.0
  • pipeline-build-linux.yml runs without restoring node_modules
  • pipeline-build-docker.yml runs without restoring node_modules
  • pipeline-build-macos.yml runs without restoring node_modules
  • pipeline-build-windows.yml runs without restoring node_modules
  • tests-e2e-playwright-chromium.yml runs without restoring node_modules
  • Lint / type-check / unit-test workflows still cache node_modules (no regression)

🤖 Generated with Claude Code


Note

Low Risk
Changes are limited to CI caching behavior and release-note documentation; no runtime application code is affected.

Overview
Adds an opt-out cache-node-modules input (default enabled) to install-all-build-libs, so the node_modules cache step is skipped when set to '0'.

All application build and E2E web-build pipelines now pass cache-node-modules: '0' (Linux, Docker, macOS, Windows, and Playwright Chromium E2E). That forces a fresh yarn install on those jobs to avoid stale nested dependencies after lockfile changes (e.g. missing detect-libc from restored cache). Lint, type-check, unit tests, and licenses workflows are unchanged and still use the default cache.

The release notes template gains an optional New Contributors section with guidance on generating and manually completing the list.

Reviewed by Cursor Bugbot for commit 53640cd. Bugbot is set up for automated code reviews on this repo. Configure here.

@dantovska dantovska requested a review from a team as a code owner June 9, 2026 10:27
@jit-ci

jit-ci Bot commented Jun 9, 2026

Copy link
Copy Markdown

🛡️ Jit Security Scan Results

CRITICAL HIGH MEDIUM

✅ No security findings were detected in this PR


Security scan by Jit

Extends PR #6031 to the macOS and Windows build pipelines so every
job that builds the application runs a clean install. Same reasoning
as the original change: stale nested node_modules surviving cache
restore-keys across lockfile bumps can break builds (e.g. the
'Cannot find module detect-libc' failure after the electron-builder
26.15.2 bump).

Files updated to pass cache-node-modules: '0':
- pipeline-build-linux.yml (already in #6031)
- pipeline-build-docker.yml (already in #6031)
- pipeline-build-macos.yml (new)
- pipeline-build-windows.yml (new)
- tests-e2e-playwright-chromium.yml (already in #6031)

The composite action gains the cache-node-modules input (default '1')
so other consumers (lint, type-check, unit tests, licenses-check) keep
caching unchanged.
@pawelangelow pawelangelow force-pushed the ci/disable-cache-all-builds branch from ea313e1 to 53640cd Compare June 9, 2026 10:33
@dantovska dantovska changed the base branch from release/3.6.0 to main June 9, 2026 10:36
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Code Coverage - Backend unit tests

St.
Category Percentage Covered / Total
🟢 Statements 92.71% 15703/16937
🟡 Branches 74.7% 4949/6625
🟢 Functions 86.86% 2446/2816
🟢 Lines 92.55% 15010/16218

Test suite run success

3453 tests passing in 308 suites.

Report generated by 🧪jest coverage report action from 53640cd

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Code Coverage - Integration Tests

Status Category Percentage Covered / Total
🟡 Statements 78.78% 17479/22187
🟡 Branches 61.59% 8056/13079
🟡 Functions 66.53% 2394/3598
🟡 Lines 78.33% 16437/20983

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.

2 participants