pipecraft 0.36.2 → 0.36.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +30 -20
  2. package/dist/cli/index.js +4 -3
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/generators/init.tpl.d.ts.map +1 -1
  5. package/dist/generators/init.tpl.js +7 -128
  6. package/dist/generators/init.tpl.js.map +1 -1
  7. package/dist/generators/workflows.tpl.d.ts.map +1 -1
  8. package/dist/generators/workflows.tpl.js +3 -15
  9. package/dist/generators/workflows.tpl.js.map +1 -1
  10. package/dist/templates/actions/calculate-version.yml.tpl.d.ts.map +1 -1
  11. package/dist/templates/actions/calculate-version.yml.tpl.js +38 -19
  12. package/dist/templates/actions/calculate-version.yml.tpl.js.map +1 -1
  13. package/dist/templates/actions/create-pr.yml.tpl.d.ts.map +1 -1
  14. package/dist/templates/actions/create-pr.yml.tpl.js +9 -6
  15. package/dist/templates/actions/create-pr.yml.tpl.js.map +1 -1
  16. package/dist/templates/actions/create-release.yml.tpl.d.ts.map +1 -1
  17. package/dist/templates/actions/create-release.yml.tpl.js +11 -9
  18. package/dist/templates/actions/create-release.yml.tpl.js.map +1 -1
  19. package/dist/templates/actions/create-tag.yml.tpl.d.ts.map +1 -1
  20. package/dist/templates/actions/create-tag.yml.tpl.js +8 -7
  21. package/dist/templates/actions/create-tag.yml.tpl.js.map +1 -1
  22. package/dist/templates/actions/detect-changes.yml.tpl.d.ts +7 -13
  23. package/dist/templates/actions/detect-changes.yml.tpl.d.ts.map +1 -1
  24. package/dist/templates/actions/detect-changes.yml.tpl.js +62 -215
  25. package/dist/templates/actions/detect-changes.yml.tpl.js.map +1 -1
  26. package/dist/templates/actions/manage-branch.yml.tpl.d.ts.map +1 -1
  27. package/dist/templates/actions/manage-branch.yml.tpl.js +8 -7
  28. package/dist/templates/actions/manage-branch.yml.tpl.js.map +1 -1
  29. package/dist/templates/actions/promote-branch.yml.tpl.d.ts.map +1 -1
  30. package/dist/templates/actions/promote-branch.yml.tpl.js +25 -29
  31. package/dist/templates/actions/promote-branch.yml.tpl.js.map +1 -1
  32. package/dist/templates/release-it.cjs.tpl.d.ts.map +1 -1
  33. package/dist/templates/release-it.cjs.tpl.js +14 -3
  34. package/dist/templates/release-it.cjs.tpl.js.map +1 -1
  35. package/dist/templates/workflows/pipeline.yml.tpl.d.ts.map +1 -1
  36. package/dist/templates/workflows/pipeline.yml.tpl.js +28 -48
  37. package/dist/templates/workflows/pipeline.yml.tpl.js.map +1 -1
  38. package/dist/templates/workflows/shared/index.d.ts +1 -0
  39. package/dist/templates/workflows/shared/index.d.ts.map +1 -1
  40. package/dist/templates/workflows/shared/index.js +1 -0
  41. package/dist/templates/workflows/shared/index.js.map +1 -1
  42. package/dist/templates/workflows/shared/managed-workflow.d.ts +32 -0
  43. package/dist/templates/workflows/shared/managed-workflow.d.ts.map +1 -0
  44. package/dist/templates/workflows/shared/managed-workflow.js +51 -0
  45. package/dist/templates/workflows/shared/managed-workflow.js.map +1 -0
  46. package/dist/templates/workflows/shared/operations-changes.d.ts +0 -1
  47. package/dist/templates/workflows/shared/operations-changes.d.ts.map +1 -1
  48. package/dist/templates/workflows/shared/operations-changes.js +1 -6
  49. package/dist/templates/workflows/shared/operations-changes.js.map +1 -1
  50. package/dist/templates/workflows/shared/operations-gate.d.ts +4 -30
  51. package/dist/templates/workflows/shared/operations-gate.d.ts.map +1 -1
  52. package/dist/templates/workflows/shared/operations-gate.js +110 -71
  53. package/dist/templates/workflows/shared/operations-gate.js.map +1 -1
  54. package/dist/templates/workflows/shared/operations-header.d.ts +10 -0
  55. package/dist/templates/workflows/shared/operations-header.d.ts.map +1 -1
  56. package/dist/templates/workflows/shared/operations-header.js +22 -3
  57. package/dist/templates/workflows/shared/operations-header.js.map +1 -1
  58. package/dist/templates/workflows/shared/operations-tag-promote.d.ts +1 -4
  59. package/dist/templates/workflows/shared/operations-tag-promote.d.ts.map +1 -1
  60. package/dist/templates/workflows/shared/operations-tag-promote.js +21 -17
  61. package/dist/templates/workflows/shared/operations-tag-promote.js.map +1 -1
  62. package/dist/templates/workflows/shared/operations-version.d.ts +0 -1
  63. package/dist/templates/workflows/shared/operations-version.d.ts.map +1 -1
  64. package/dist/templates/workflows/shared/operations-version.js +4 -11
  65. package/dist/templates/workflows/shared/operations-version.js.map +1 -1
  66. package/dist/templates/yaml-format-utils.d.ts.map +1 -1
  67. package/dist/templates/yaml-format-utils.js +1 -5
  68. package/dist/templates/yaml-format-utils.js.map +1 -1
  69. package/dist/types/index.d.ts +16 -57
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/utils/action-reference.d.ts +1 -1
  72. package/dist/utils/action-reference.js +2 -2
  73. package/dist/utils/action-reference.js.map +1 -1
  74. package/dist/utils/config.d.ts +5 -0
  75. package/dist/utils/config.d.ts.map +1 -1
  76. package/dist/utils/config.js +36 -4
  77. package/dist/utils/config.js.map +1 -1
  78. package/dist/utils/github-setup.d.ts +4 -4
  79. package/dist/utils/github-setup.js +28 -28
  80. package/dist/utils/github-setup.js.map +1 -1
  81. package/dist/utils/messaging.d.ts +2 -2
  82. package/dist/utils/messaging.d.ts.map +1 -1
  83. package/dist/utils/messaging.js +5 -5
  84. package/dist/utils/messaging.js.map +1 -1
  85. package/dist/utils/preflight.js +2 -2
  86. package/dist/utils/preflight.js.map +1 -1
  87. package/dist/utils/workflow-semantics.d.ts +61 -0
  88. package/dist/utils/workflow-semantics.d.ts.map +1 -0
  89. package/dist/utils/workflow-semantics.js +230 -0
  90. package/dist/utils/workflow-semantics.js.map +1 -0
  91. package/package.json +6 -5
  92. package/src/generators/init.tpl.ts +7 -132
  93. package/src/generators/workflows.tpl.ts +3 -15
  94. package/dist/templates/actions/run-nx-affected.yml.tpl.d.ts +0 -33
  95. package/dist/templates/actions/run-nx-affected.yml.tpl.d.ts.map +0 -1
  96. package/dist/templates/actions/run-nx-affected.yml.tpl.js +0 -346
  97. package/dist/templates/actions/run-nx-affected.yml.tpl.js.map +0 -1
  98. package/dist/templates/workflows/pipeline-nx.yml.tpl.d.ts +0 -22
  99. package/dist/templates/workflows/pipeline-nx.yml.tpl.d.ts.map +0 -1
  100. package/dist/templates/workflows/pipeline-nx.yml.tpl.js +0 -403
  101. package/dist/templates/workflows/pipeline-nx.yml.tpl.js.map +0 -1
@@ -132,8 +132,8 @@ export function formatNextSteps(steps, context) {
132
132
  /**
133
133
  * Create setup summary
134
134
  */
135
- export function createSetupSummary(repository, permissions, settings, autoMerge, context) {
136
- const allItems = [...permissions, ...settings, ...autoMerge];
135
+ export function createSetupSummary(repository, permissions, settings, autoPromote, context) {
136
+ const allItems = [...permissions, ...settings, ...autoPromote];
137
137
  const needsChange = allItems.filter(item => item.status === 'needs-change');
138
138
  const missing = allItems.filter(item => item.status === 'missing');
139
139
  const errors = allItems.filter(item => item.status === 'error');
@@ -169,7 +169,7 @@ export function createSetupSummary(repository, permissions, settings, autoMerge,
169
169
  overallStatus,
170
170
  permissions,
171
171
  settings,
172
- autoMerge,
172
+ autoPromote,
173
173
  nextSteps,
174
174
  warnings,
175
175
  errors: errors.map(item => `${item.name}: ${item.current}`)
@@ -203,8 +203,8 @@ export function formatSetupSummary(summary, context) {
203
203
  if (summary.settings.length > 0) {
204
204
  lines.push(formatStatusTable(summary.settings, context));
205
205
  }
206
- if (summary.autoMerge.length > 0) {
207
- lines.push(formatStatusTable(summary.autoMerge, context));
206
+ if (summary.autoPromote.length > 0) {
207
+ lines.push(formatStatusTable(summary.autoPromote, context));
208
208
  }
209
209
  // Warnings
210
210
  if (summary.warnings.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/utils/messaging.ts"],"names":[],"mappings":"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"}
@@ -428,8 +428,8 @@ export function formatPreflightResults(checks) {
428
428
  ' - Add deployment logic to deploy-* jobs (if deployable: true)',
429
429
  ' - Add remote tests to remote-test-* jobs (if remoteTestable: true)',
430
430
  '',
431
- '2. Validate the workflow syntax:',
432
- ' npm run validate:pipeline # Check YAML is valid',
431
+ '2. Validate the workflow:',
432
+ ' npx pipecraft validate # Check config and workflow',
433
433
  '',
434
434
  '3. Configure GitHub permissions for auto-merge:',
435
435
  ' pipecraft setup-github # Interactive setup',
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/utils/preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Workflow Semantic Validation
3
+ *
4
+ * Validates the semantic correctness of generated GitHub Actions workflows.
5
+ * This includes:
6
+ * - Job dependency validation (no circular dependencies)
7
+ * - Missing job reference detection
8
+ * - Output reference validation
9
+ * - Unreachable job detection
10
+ *
11
+ * @module utils/workflow-semantics
12
+ */
13
+ export interface SemanticError {
14
+ type: 'error';
15
+ code: string;
16
+ message: string;
17
+ location?: string;
18
+ }
19
+ export interface SemanticWarning {
20
+ type: 'warning';
21
+ code: string;
22
+ message: string;
23
+ location?: string;
24
+ }
25
+ export interface SemanticValidationResult {
26
+ valid: boolean;
27
+ errors: SemanticError[];
28
+ warnings: SemanticWarning[];
29
+ }
30
+ /**
31
+ * Validate job dependencies in a workflow.
32
+ *
33
+ * Checks for:
34
+ * 1. Circular dependencies between jobs
35
+ * 2. Missing job references in needs arrays
36
+ * 3. Invalid output references
37
+ * 4. Unreachable jobs (warning)
38
+ *
39
+ * @param yamlContent - The workflow YAML content as a string
40
+ * @returns Validation result with errors and warnings
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const result = validateJobDependencies(workflowYaml)
45
+ * if (!result.valid) {
46
+ * console.error('Validation errors:', result.errors)
47
+ * }
48
+ * ```
49
+ */
50
+ export declare function validateJobDependencies(yamlContent: string): SemanticValidationResult;
51
+ /**
52
+ * Validate a complete workflow for semantic correctness.
53
+ *
54
+ * This is the main entry point for workflow validation. It combines
55
+ * job dependency validation with other semantic checks.
56
+ *
57
+ * @param yamlContent - The workflow YAML content as a string
58
+ * @returns Validation result with errors and warnings
59
+ */
60
+ export declare function validateWorkflowSemantics(yamlContent: string): SemanticValidationResult;
61
+ //# sourceMappingURL=workflow-semantics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-semantics.d.ts","sourceRoot":"","sources":["../../src/utils/workflow-semantics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B;AA6MD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAyBrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAEvF"}
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Workflow Semantic Validation
3
+ *
4
+ * Validates the semantic correctness of generated GitHub Actions workflows.
5
+ * This includes:
6
+ * - Job dependency validation (no circular dependencies)
7
+ * - Missing job reference detection
8
+ * - Output reference validation
9
+ * - Unreachable job detection
10
+ *
11
+ * @module utils/workflow-semantics
12
+ */
13
+ import { parse as parseYAML } from 'yaml';
14
+ /**
15
+ * Parse a workflow YAML string into a structured format for validation.
16
+ */
17
+ function parseWorkflow(yamlContent) {
18
+ const parsed = parseYAML(yamlContent);
19
+ const jobs = {};
20
+ if (parsed.jobs && typeof parsed.jobs === 'object') {
21
+ for (const [jobName, jobDef] of Object.entries(parsed.jobs)) {
22
+ const job = jobDef;
23
+ let needs = [];
24
+ if (job.needs) {
25
+ if (Array.isArray(job.needs)) {
26
+ needs = job.needs.map(String);
27
+ }
28
+ else if (typeof job.needs === 'string') {
29
+ needs = [job.needs];
30
+ }
31
+ }
32
+ // Handle if condition - can be string or boolean in YAML
33
+ let ifCondition;
34
+ if (job.if !== undefined) {
35
+ ifCondition = String(job.if);
36
+ }
37
+ jobs[jobName] = {
38
+ name: jobName,
39
+ needs,
40
+ if: ifCondition,
41
+ outputs: job.outputs && typeof job.outputs === 'object'
42
+ ? job.outputs
43
+ : undefined
44
+ };
45
+ }
46
+ }
47
+ return {
48
+ name: parsed.name,
49
+ jobs
50
+ };
51
+ }
52
+ /**
53
+ * Detect circular dependencies in job needs.
54
+ */
55
+ function detectCircularDependencies(jobs) {
56
+ const errors = [];
57
+ const visited = new Set();
58
+ const recursionStack = new Set();
59
+ const path = [];
60
+ function dfs(jobName) {
61
+ if (recursionStack.has(jobName)) {
62
+ // Found cycle - construct the cycle path
63
+ const cycleStart = path.indexOf(jobName);
64
+ const cyclePath = [...path.slice(cycleStart), jobName].join(' → ');
65
+ errors.push({
66
+ type: 'error',
67
+ code: 'CIRCULAR_DEPENDENCY',
68
+ message: `Circular dependency detected: ${cyclePath}`,
69
+ location: `jobs.${jobName}`
70
+ });
71
+ return true;
72
+ }
73
+ if (visited.has(jobName)) {
74
+ return false;
75
+ }
76
+ visited.add(jobName);
77
+ recursionStack.add(jobName);
78
+ path.push(jobName);
79
+ const job = jobs[jobName];
80
+ if (job) {
81
+ for (const dep of job.needs) {
82
+ if (jobs[dep]) {
83
+ dfs(dep);
84
+ }
85
+ }
86
+ }
87
+ path.pop();
88
+ recursionStack.delete(jobName);
89
+ return false;
90
+ }
91
+ for (const jobName of Object.keys(jobs)) {
92
+ if (!visited.has(jobName)) {
93
+ dfs(jobName);
94
+ }
95
+ }
96
+ return errors;
97
+ }
98
+ /**
99
+ * Detect missing job references in needs arrays.
100
+ */
101
+ function detectMissingJobReferences(jobs) {
102
+ const errors = [];
103
+ const jobNames = new Set(Object.keys(jobs));
104
+ for (const [jobName, job] of Object.entries(jobs)) {
105
+ for (const dep of job.needs) {
106
+ if (!jobNames.has(dep)) {
107
+ errors.push({
108
+ type: 'error',
109
+ code: 'MISSING_JOB_REFERENCE',
110
+ message: `Job "${jobName}" references non-existent job "${dep}" in needs`,
111
+ location: `jobs.${jobName}.needs`
112
+ });
113
+ }
114
+ }
115
+ }
116
+ return errors;
117
+ }
118
+ /**
119
+ * Detect invalid output references in job conditions or steps.
120
+ */
121
+ function detectInvalidOutputReferences(jobs, yamlContent) {
122
+ const errors = [];
123
+ // Match patterns like needs.jobName.outputs.outputName
124
+ const outputRefPattern = /needs\.([a-zA-Z0-9_-]+)\.outputs\.([a-zA-Z0-9_-]+)/g;
125
+ const matches = yamlContent.matchAll(outputRefPattern);
126
+ for (const match of matches) {
127
+ const [fullMatch, jobName, outputName] = match;
128
+ // Check if the referenced job exists
129
+ if (!jobs[jobName]) {
130
+ errors.push({
131
+ type: 'error',
132
+ code: 'INVALID_OUTPUT_REFERENCE',
133
+ message: `Output reference "${fullMatch}" refers to non-existent job "${jobName}"`,
134
+ location: fullMatch
135
+ });
136
+ }
137
+ }
138
+ return errors;
139
+ }
140
+ /**
141
+ * Detect unreachable jobs (jobs that can never run due to impossible conditions).
142
+ * This is a warning, not an error.
143
+ */
144
+ function detectUnreachableJobs(jobs) {
145
+ const warnings = [];
146
+ const jobNames = new Set(Object.keys(jobs));
147
+ for (const [jobName, job] of Object.entries(jobs)) {
148
+ // Check if job depends on non-existent jobs (already an error, but also unreachable)
149
+ const hasMissingDep = job.needs.some(dep => !jobNames.has(dep));
150
+ // Check for obvious impossible conditions
151
+ if (job.if) {
152
+ // Detect conditions that are always false
153
+ if (job.if === 'false' || job.if === '${{ false }}') {
154
+ warnings.push({
155
+ type: 'warning',
156
+ code: 'UNREACHABLE_JOB',
157
+ message: `Job "${jobName}" has condition that is always false`,
158
+ location: `jobs.${jobName}.if`
159
+ });
160
+ }
161
+ // Detect self-referencing conditions (job referencing its own results)
162
+ if (job.if.includes(`needs.${jobName}.`)) {
163
+ warnings.push({
164
+ type: 'warning',
165
+ code: 'SELF_REFERENCING_CONDITION',
166
+ message: `Job "${jobName}" references its own results in condition`,
167
+ location: `jobs.${jobName}.if`
168
+ });
169
+ }
170
+ }
171
+ }
172
+ return warnings;
173
+ }
174
+ /**
175
+ * Validate job dependencies in a workflow.
176
+ *
177
+ * Checks for:
178
+ * 1. Circular dependencies between jobs
179
+ * 2. Missing job references in needs arrays
180
+ * 3. Invalid output references
181
+ * 4. Unreachable jobs (warning)
182
+ *
183
+ * @param yamlContent - The workflow YAML content as a string
184
+ * @returns Validation result with errors and warnings
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * const result = validateJobDependencies(workflowYaml)
189
+ * if (!result.valid) {
190
+ * console.error('Validation errors:', result.errors)
191
+ * }
192
+ * ```
193
+ */
194
+ export function validateJobDependencies(yamlContent) {
195
+ const errors = [];
196
+ const warnings = [];
197
+ try {
198
+ const workflow = parseWorkflow(yamlContent);
199
+ // Run all validations
200
+ errors.push(...detectCircularDependencies(workflow.jobs));
201
+ errors.push(...detectMissingJobReferences(workflow.jobs));
202
+ errors.push(...detectInvalidOutputReferences(workflow.jobs, yamlContent));
203
+ warnings.push(...detectUnreachableJobs(workflow.jobs));
204
+ }
205
+ catch (err) {
206
+ errors.push({
207
+ type: 'error',
208
+ code: 'PARSE_ERROR',
209
+ message: `Failed to parse workflow YAML: ${err instanceof Error ? err.message : String(err)}`
210
+ });
211
+ }
212
+ return {
213
+ valid: errors.length === 0,
214
+ errors,
215
+ warnings
216
+ };
217
+ }
218
+ /**
219
+ * Validate a complete workflow for semantic correctness.
220
+ *
221
+ * This is the main entry point for workflow validation. It combines
222
+ * job dependency validation with other semantic checks.
223
+ *
224
+ * @param yamlContent - The workflow YAML content as a string
225
+ * @returns Validation result with errors and warnings
226
+ */
227
+ export function validateWorkflowSemantics(yamlContent) {
228
+ return validateJobDependencies(yamlContent);
229
+ }
230
+ //# sourceMappingURL=workflow-semantics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-semantics.js","sourceRoot":"","sources":["../../src/utils/workflow-semantics.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipecraft",
3
- "version": "0.36.2",
3
+ "version": "0.36.14",
4
4
  "description": "Automated CI/CD pipeline generator for trunk-based development. Generates intelligent GitHub Actions workflows with domain-based change detection, semantic versioning, and branch flow management. Full documentation: https://pipecraft.thecraftlab.dev",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,11 +14,11 @@
14
14
  ],
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/pipecraft-lab/pipecraft.git"
17
+ "url": "https://github.com/the-craftlab/pipecraft.git"
18
18
  },
19
19
  "homepage": "https://pipecraft.thecraftlab.dev",
20
20
  "bugs": {
21
- "url": "https://github.com/pipecraft-lab/pipecraft/issues"
21
+ "url": "https://github.com/the-craftlab/pipecraft/issues"
22
22
  },
23
23
  "keywords": [
24
24
  "ci-cd",
@@ -64,8 +64,8 @@
64
64
  "docs:typedoc": "cd docs && pnpm run typedoc",
65
65
  "docs:deploy": "npm run build && cd docs && pnpm run typedoc && pnpm run build",
66
66
  "examples:store-git": "./scripts/store-example-git-repos.sh",
67
- "examples:activate": "node scripts/activate-example-repos.mjs",
68
- "examples:deactivate": "node scripts/deactivate-example-repos.mjs",
67
+ "examples:activate": "node tests/scripts/activate-example-repos.mjs",
68
+ "examples:deactivate": "node tests/scripts/deactivate-example-repos.mjs",
69
69
  "sync-actions": "tsx scripts/sync-actions.ts",
70
70
  "sync-actions:check": "tsx scripts/sync-actions.ts --check",
71
71
  "sync-actions:verify": "tsx scripts/sync-actions.ts --verify"
@@ -95,6 +95,7 @@
95
95
  "tsx": "^4.20.6",
96
96
  "typedoc": "^0.28.14",
97
97
  "typedoc-plugin-markdown": "^4.9.0",
98
+ "typescript": "^5.9.3",
98
99
  "vitest": "^2.1.8"
99
100
  },
100
101
  "dependencies": {
@@ -29,7 +29,7 @@
29
29
  */
30
30
 
31
31
  import type { PinionContext } from '@featherscloud/pinion'
32
- import { existsSync, readFileSync, writeFileSync } from 'fs'
32
+ import { existsSync, writeFileSync } from 'fs'
33
33
  import inquirer from 'inquirer'
34
34
 
35
35
  /**
@@ -52,7 +52,7 @@ const defaultConfig = {
52
52
  initialBranch: 'develop',
53
53
  finalBranch: 'main',
54
54
  branchFlow: ['develop', 'staging', 'main'],
55
- autoMerge: {
55
+ autoPromote: {
56
56
  staging: true,
57
57
  main: true
58
58
  },
@@ -157,9 +157,9 @@ const generateYamlConfig = (config: any): string => {
157
157
 
158
158
  // Auto Merge
159
159
  lines.push('# Automatic promotion after successful tests')
160
- lines.push('autoMerge:')
161
- const autoMergeEntries = Object.entries(config.autoMerge)
162
- autoMergeEntries.forEach(([key, value]) => {
160
+ lines.push('autoPromote:')
161
+ const autoPromoteEntries = Object.entries(config.autoPromote)
162
+ autoPromoteEntries.forEach(([key, value]) => {
163
163
  const flowIndex = config.branchFlow.indexOf(key)
164
164
  const fromBranch = flowIndex > 0 ? config.branchFlow[flowIndex - 1] : ''
165
165
  const comment = fromBranch ? ` # Auto-promote ${fromBranch} → ${key}` : ''
@@ -233,30 +233,6 @@ const generateYamlConfig = (config: any): string => {
233
233
  lines.push('')
234
234
  })
235
235
 
236
- // Nx Configuration (if present)
237
- if (config.nx) {
238
- lines.push('# Nx integration for monorepo optimization')
239
- lines.push('nx:')
240
- lines.push(` enabled: ${config.nx.enabled}`)
241
- if (config.nx.tasks !== undefined) {
242
- if (config.nx.tasks.length > 0) {
243
- lines.push(' tasks:')
244
- config.nx.tasks.forEach((task: string) => {
245
- lines.push(` - ${task}`)
246
- })
247
- } else {
248
- lines.push(' tasks: []')
249
- }
250
- }
251
- if (config.nx.baseRef) {
252
- lines.push(` baseRef: ${config.nx.baseRef}`)
253
- }
254
- if (config.nx.enableCache !== undefined) {
255
- lines.push(` enableCache: ${config.nx.enableCache}`)
256
- }
257
- lines.push('')
258
- }
259
-
260
236
  // Versioning (if present)
261
237
  if (config.versioning) {
262
238
  lines.push('# Version calculation and release automation')
@@ -283,12 +259,7 @@ const generateYamlConfig = (config: any): string => {
283
259
  if (config.versioning.changelog !== undefined) {
284
260
  lines.push(` changelog: ${config.versioning.changelog} # Generate CHANGELOG.md`)
285
261
  }
286
- if (config.versioning.bumpRules) {
287
- lines.push(' bumpRules:')
288
- Object.entries(config.versioning.bumpRules).forEach(([key, value]) => {
289
- lines.push(` ${key}: ${value}`)
290
- })
291
- }
262
+ // Note: bumpRules are defined in the semver section, not here
292
263
  lines.push('')
293
264
  }
294
265
 
@@ -395,61 +366,6 @@ export const generate = async (ctx: PinionContext) => {
395
366
  }
396
367
  }
397
368
 
398
- // Detect package manager before prompting
399
- let detectedPackageManager: 'npm' | 'yarn' | 'pnpm' = 'npm'
400
- if (existsSync(`${cwd}/pnpm-lock.yaml`)) {
401
- detectedPackageManager = 'pnpm'
402
- } else if (existsSync(`${cwd}/yarn.lock`)) {
403
- detectedPackageManager = 'yarn'
404
- } else if (existsSync(`${cwd}/package-lock.json`)) {
405
- detectedPackageManager = 'npm'
406
- }
407
-
408
- // Detect Nx workspace before prompting
409
- const nxJsonPath = `${cwd}/nx.json`
410
- let detectedNxTasks: string[] = []
411
- let nxDetected = false
412
-
413
- if (existsSync(nxJsonPath)) {
414
- try {
415
- const nxJsonContent = readFileSync(nxJsonPath, 'utf8')
416
- const nxJson = JSON.parse(nxJsonContent)
417
-
418
- // Extract tasks from targetDefaults
419
- const tasks = nxJson.targetDefaults ? Object.keys(nxJson.targetDefaults) : []
420
-
421
- // Sort tasks in a logical order (quality → test → build → e2e)
422
- const taskOrder = [
423
- 'lint',
424
- 'typecheck',
425
- 'test',
426
- 'unit-test',
427
- 'build',
428
- 'integration-test',
429
- 'e2e',
430
- 'e2e-ci'
431
- ]
432
- detectedNxTasks = tasks.sort((a, b) => {
433
- const aIdx = taskOrder.indexOf(a)
434
- const bIdx = taskOrder.indexOf(b)
435
- if (aIdx === -1 && bIdx === -1) return 0
436
- if (aIdx === -1) return 1
437
- if (bIdx === -1) return -1
438
- return aIdx - bIdx
439
- })
440
-
441
- nxDetected = true
442
- console.log('\n✅ Nx workspace detected!')
443
- console.log(` Found tasks: ${detectedNxTasks.join(', ')}`)
444
- console.log(' Pipecraft can optimize your CI pipeline using Nx affected commands.\n')
445
- } catch (error) {
446
- console.warn('\n⚠️ Found nx.json but could not parse it:', error)
447
- console.log(' Nx integration will use default tasks.\n')
448
- nxDetected = true
449
- detectedNxTasks = ['lint', 'test', 'build', 'integration-test']
450
- }
451
- }
452
-
453
369
  // Run inquirer prompts
454
370
  const answers = await inquirer.prompt([
455
371
  {
@@ -497,22 +413,6 @@ export const generate = async (ctx: PinionContext) => {
497
413
  default: 'develop,staging,main',
498
414
  filter: (input: string) => input.split(',').map(b => b.trim())
499
415
  },
500
- {
501
- type: 'list',
502
- name: 'packageManager',
503
- message: `Which package manager do you use? (detected: ${detectedPackageManager})`,
504
- choices: ['npm', 'yarn', 'pnpm'],
505
- default: detectedPackageManager
506
- },
507
- {
508
- type: 'confirm',
509
- name: 'enableNx',
510
- message: nxDetected
511
- ? `Enable Nx integration? (detected ${detectedNxTasks.length} tasks)`
512
- : 'Enable Nx integration?',
513
- default: nxDetected,
514
- when: () => nxDetected // Only show if Nx is detected
515
- },
516
416
  {
517
417
  type: 'list',
518
418
  name: 'domainSelection',
@@ -594,25 +494,6 @@ export const generate = async (ctx: PinionContext) => {
594
494
  // Merge answers with context and defaults
595
495
  const mergedCtx = { ...ctx, ...defaultConfig, ...answers } as any
596
496
 
597
- // Configure Nx based on detection and user confirmation
598
- let nxConfig:
599
- | { enabled: boolean; tasks: string[]; baseRef: string; enableCache: boolean }
600
- | undefined
601
- if (nxDetected && answers.enableNx) {
602
- console.log('\n✅ Nx integration enabled!')
603
- console.log(` Tasks to run: ${detectedNxTasks.join(', ')}\n`)
604
-
605
- nxConfig = {
606
- enabled: true,
607
- tasks: detectedNxTasks,
608
- baseRef: 'origin/main',
609
- enableCache: true
610
- }
611
- } else if (nxDetected && !answers.enableNx) {
612
- console.log('\n⚠️ Nx detected but integration disabled.')
613
- console.log(' You can enable it later by editing .pipecraftrc\n')
614
- }
615
-
616
497
  const configData: any = {
617
498
  ciProvider: mergedCtx.ciProvider,
618
499
  mergeStrategy: mergedCtx.mergeStrategy,
@@ -620,19 +501,13 @@ export const generate = async (ctx: PinionContext) => {
620
501
  initialBranch: mergedCtx.initialBranch,
621
502
  finalBranch: mergedCtx.finalBranch,
622
503
  branchFlow: mergedCtx.branchFlow,
623
- autoMerge: mergedCtx.autoMerge,
624
- packageManager: mergedCtx.packageManager,
504
+ autoPromote: mergedCtx.autoPromote,
625
505
  semver: {
626
506
  bumpRules: mergedCtx.semver.bumpRules
627
507
  },
628
508
  domains: domainConfig // Use user-selected domains instead of defaults
629
509
  }
630
510
 
631
- // Add Nx config if detected
632
- if (nxConfig) {
633
- configData.nx = nxConfig
634
- }
635
-
636
511
  // Generate YAML content with comments
637
512
  const yamlContent = generateYamlConfig(configData)
638
513