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:
@@ -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");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user