fix(FN-2462): enforce frozen-lockfile bootstrap across workflows

- Update CI, version, and test-release workflows to use pnpm install --frozen-lockfile consistently.
- Align contributor and settings documentation plus worktree init examples toward deterministic frozen-lockfile bootstrap.
- Clarify TaskExecutor worktree init guidance to distinguish dependency bootstrap failures from missing workspace dist export failures.
- Refresh workflow, executor, restart, and SettingsModal tests (including stable Node Sync tab selection) to assert the new bootstrap contract.
This commit is contained in:
Fusion
2026-04-24 11:41:10 -07:00
committed by gsxdsm
parent bafcbd6c39
commit 05bd69da68
12 changed files with 49 additions and 32 deletions

View File

@@ -52,8 +52,10 @@ describe("CI workflow (.github/workflows/ci.yml)", () => {
expect(workflow.on.pull_request).toBeUndefined();
});
it("includes pnpm install step", () => {
expect(content).toContain("pnpm install");
it("pins dependency bootstrap to frozen lockfile", () => {
expect(content).toContain("run: pnpm install --frozen-lockfile");
expect(content).not.toContain("run: pnpm install\n");
expect(content).not.toContain("--no-frozen-lockfile");
});
it("uses verify:workspace as the single lint/test/build contract", () => {
@@ -120,8 +122,10 @@ describe("Version & Release workflow (.github/workflows/version.yml)", () => {
expect(workflow.on.push).toBeUndefined();
});
it("includes pnpm install step", () => {
expect(content).toContain("pnpm install");
it("pins release bootstrap to frozen lockfile", () => {
expect(content).toContain("run: pnpm install --frozen-lockfile");
expect(content).not.toContain("run: pnpm install\n");
expect(content).not.toContain("--no-frozen-lockfile");
});
it("includes pnpm build step", () => {
@@ -266,6 +270,13 @@ describe("Test-release workflow (.github/workflows/test-release.yml)", () => {
expect(content).toContain("WINDOWS_CERTIFICATE_BASE64 != ''");
});
it("uses frozen-lockfile install in every matrix job", () => {
const matches = content.match(/run:\s*pnpm install --frozen-lockfile/g) ?? [];
expect(matches.length).toBeGreaterThanOrEqual(1);
expect(content).not.toContain("run: pnpm install\n");
expect(content).not.toContain("--no-frozen-lockfile");
});
it("uploads artifacts", () => {
expect(content).toContain("actions/upload-artifact");
});