pipecraft 0.25.0 → 0.28.0

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 (46) hide show
  1. package/README.md +89 -992
  2. package/dist/cli/index.js +17 -4
  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 +14 -2
  6. package/dist/generators/init.tpl.js.map +1 -1
  7. package/dist/generators/workflows.tpl.d.ts +3 -1
  8. package/dist/generators/workflows.tpl.d.ts.map +1 -1
  9. package/dist/generators/workflows.tpl.js +17 -3
  10. package/dist/generators/workflows.tpl.js.map +1 -1
  11. package/dist/templates/release-it.cjs.tpl.d.ts +41 -0
  12. package/dist/templates/release-it.cjs.tpl.d.ts.map +1 -0
  13. package/dist/templates/release-it.cjs.tpl.js +149 -0
  14. package/dist/templates/release-it.cjs.tpl.js.map +1 -0
  15. package/dist/templates/workflows/enforce-pr-target.yml.tpl.d.ts +53 -0
  16. package/dist/templates/workflows/enforce-pr-target.yml.tpl.d.ts.map +1 -0
  17. package/dist/templates/workflows/enforce-pr-target.yml.tpl.js +83 -0
  18. package/dist/templates/workflows/enforce-pr-target.yml.tpl.js.map +1 -0
  19. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js +14 -14
  20. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js.map +1 -1
  21. package/dist/templates/workflows/pr-title-check.yml.tpl.d.ts +52 -0
  22. package/dist/templates/workflows/pr-title-check.yml.tpl.d.ts.map +1 -0
  23. package/dist/templates/workflows/pr-title-check.yml.tpl.js +123 -0
  24. package/dist/templates/workflows/pr-title-check.yml.tpl.js.map +1 -0
  25. package/dist/types/index.d.ts +9 -0
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/utils/github-setup-v2.d.ts +15 -0
  28. package/dist/utils/github-setup-v2.d.ts.map +1 -0
  29. package/dist/utils/github-setup-v2.js +217 -0
  30. package/dist/utils/github-setup-v2.js.map +1 -0
  31. package/dist/utils/github-setup.d.ts.map +1 -1
  32. package/dist/utils/github-setup.js +35 -21
  33. package/dist/utils/github-setup.js.map +1 -1
  34. package/dist/utils/messaging.d.ts +92 -0
  35. package/dist/utils/messaging.d.ts.map +1 -0
  36. package/dist/utils/messaging.js +232 -0
  37. package/dist/utils/messaging.js.map +1 -0
  38. package/dist/utils/preflight.d.ts.map +1 -1
  39. package/dist/utils/preflight.js +48 -6
  40. package/dist/utils/preflight.js.map +1 -1
  41. package/dist/utils/versioning.d.ts.map +1 -1
  42. package/dist/utils/versioning.js +3 -13
  43. package/dist/utils/versioning.js.map +1 -1
  44. package/package.json +24 -5
  45. package/src/generators/init.tpl.ts +230 -0
  46. package/src/generators/workflows.tpl.ts +187 -0
@@ -420,13 +420,29 @@ export function formatPreflightResults(checks) {
420
420
  const nextSteps = allPassed ? [
421
421
  'Your environment is ready to generate workflows!',
422
422
  '',
423
- 'Next steps:',
424
- ' 1. Validate the pipeline: pipecraft validate:pipeline',
425
- ' 2. Set up GitHub tokens: pipecraft setup-github --verify',
426
- ' 3. Commit the generated workflows: git add .github && git commit -m "chore: add workflows"',
427
- ' 4. Push to remote: git push origin ' + getCurrentBranch(),
423
+ '📋 Next steps:',
428
424
  '',
429
- '⚠️ Important: Set up GitHub tokens (step 2) BEFORE pushing to ensure workflows run correctly!'
425
+ '1. Review and customize the generated workflows:',
426
+ ' - Add test commands to test-* jobs',
427
+ ' - Add deployment logic to deploy-* jobs (if deployable: true)',
428
+ ' - Add remote tests to remote-test-* jobs (if remoteTestable: true)',
429
+ '',
430
+ '2. Validate the workflow syntax:',
431
+ ' npm run validate:pipeline # Check YAML is valid',
432
+ '',
433
+ '3. Configure GitHub permissions for auto-merge:',
434
+ ' pipecraft setup-github # Interactive setup',
435
+ ' pipecraft setup-github --apply # Auto-apply (no prompts)',
436
+ '',
437
+ '4. Commit and push:',
438
+ ' git add .github/workflows/ .pipecraftrc.json',
439
+ ' git commit -m "feat: add pipecraft workflows"',
440
+ ' git push',
441
+ '',
442
+ '5. Watch your first pipeline run at:',
443
+ ` https://github.com/${getRepoInfo()}/actions`,
444
+ '',
445
+ '⚠️ Important: Set up GitHub permissions (step 3) BEFORE pushing to ensure workflows run correctly!'
430
446
  ] : undefined;
431
447
  return {
432
448
  allPassed,
@@ -458,4 +474,30 @@ function getCurrentBranch() {
458
474
  return 'main';
459
475
  }
460
476
  }
477
+ /**
478
+ * Get repository information for GitHub Actions URL.
479
+ *
480
+ * Extracts owner and repository name from git remote URL.
481
+ * Falls back to placeholder if not a GitHub repository.
482
+ *
483
+ * @returns Repository info in format "owner/repo" or placeholder
484
+ * @private
485
+ */
486
+ function getRepoInfo() {
487
+ try {
488
+ const remote = execSync('git remote get-url origin', {
489
+ stdio: ['pipe', 'pipe', 'ignore'], // Suppress stderr
490
+ encoding: 'utf8'
491
+ }).trim();
492
+ // Extract owner/repo from GitHub URL
493
+ const match = remote.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);
494
+ if (match) {
495
+ return `${match[1]}/${match[2]}`;
496
+ }
497
+ return 'your-username/your-repo';
498
+ }
499
+ catch (error) {
500
+ return 'your-username/your-repo';
501
+ }
502
+ }
461
503
  //# sourceMappingURL=preflight.js.map
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBAAuB,IAAI,MAAM;IAuEjC;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,IAAI,MAAM;IA8BlC;;;;;;;;OAQG;IACH,mBAAmB,IAAI,MAAM;IAO7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,sBAAsB,IAAI,IAAI;IAkC9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,2BAA2B,IAAI,OAAO;IAkBtC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,IAAI,MAAM;IAa3B;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAwB1D"}
1
+ {"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBAAuB,IAAI,MAAM;IA6DjC;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,IAAI,MAAM;IA8BlC;;;;;;;;OAQG;IACH,mBAAmB,IAAI,MAAM;IAO7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,sBAAsB,IAAI,IAAI;IAkC9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,2BAA2B,IAAI,OAAO;IAkBtC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,IAAI,MAAM;IAa3B;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAwB1D"}
@@ -93,19 +93,9 @@ export class VersionManager {
93
93
  plugins: {
94
94
  "@release-it/conventional-changelog": {
95
95
  whatBump: (commits, options) => {
96
- const defaults = {
97
- test: 'ignore',
98
- build: 'ignore',
99
- ci: 'patch',
100
- docs: 'patch',
101
- chore: 'minor',
102
- style: 'patch',
103
- fix: 'patch',
104
- perf: 'patch',
105
- refactor: 'patch',
106
- feat: 'minor',
107
- major: 'major',
108
- };
96
+ // Import DEFAULT_PREFIXES from the release-it config
97
+ const { DEFAULT_PREFIXES } = require('../../.release-it.cjs');
98
+ const defaults = DEFAULT_PREFIXES;
109
99
  // Merge with user-defined bump rules
110
100
  const bumpRules = { ...defaults, ...this.config.versioning?.bumpRules };
111
101
  let breakings = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pipecraft",
3
- "version": "0.25.0",
4
- "description": "CLI tool for managing trunk-based development workflows",
3
+ "version": "0.28.0",
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",
7
7
  "bin": {
@@ -9,12 +9,31 @@
9
9
  },
10
10
  "files": [
11
11
  "dist",
12
+ "src/generators",
12
13
  "README.md"
13
14
  ],
14
15
  "repository": {
15
16
  "type": "git",
16
17
  "url": "https://github.com/jamesvillarrubia/pipecraft.git"
17
18
  },
19
+ "homepage": "https://pipecraft.thecraftlab.dev",
20
+ "bugs": {
21
+ "url": "https://github.com/jamesvillarrubia/pipecraft/issues"
22
+ },
23
+ "keywords": [
24
+ "ci-cd",
25
+ "github-actions",
26
+ "trunk-based-development",
27
+ "pipeline",
28
+ "workflow",
29
+ "monorepo",
30
+ "semantic-versioning",
31
+ "automation",
32
+ "devops",
33
+ "continuous-integration",
34
+ "continuous-deployment",
35
+ "workflow-generator"
36
+ ],
18
37
  "publishConfig": {
19
38
  "access": "public"
20
39
  },
@@ -48,7 +67,6 @@
48
67
  "devDependencies": {
49
68
  "@eslint/eslintrc": "^3.3.1",
50
69
  "@eslint/js": "^9.24.0",
51
- "@featherscloud/pinion": "^0.5.5",
52
70
  "@release-it/conventional-changelog": "^10.0.0",
53
71
  "@typescript-eslint/eslint-plugin": "^8.30.1",
54
72
  "@typescript-eslint/parser": "^8.30.1",
@@ -56,9 +74,7 @@
56
74
  "@vitest/coverage-v8": "^2.1.9",
57
75
  "@vitest/ui": "^2.1.8",
58
76
  "c8": "^10.1.3",
59
- "commander": "^14.0.1",
60
77
  "conventional-changelog-angular": "latest",
61
- "cosmiconfig": "^9.0.0",
62
78
  "docusaurus-plugin-typedoc": "^1.4.2",
63
79
  "eslint": "^9.24.0",
64
80
  "eslint-plugin-import": "^2.31.0",
@@ -73,6 +89,9 @@
73
89
  "vitest": "^2.1.8"
74
90
  },
75
91
  "dependencies": {
92
+ "@featherscloud/pinion": "^0.5.5",
93
+ "commander": "^14.0.1",
94
+ "cosmiconfig": "^9.0.0",
76
95
  "dedent": "^1.7.0",
77
96
  "yaml": "^2.8.1"
78
97
  }
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Init Template Generator
3
+ *
4
+ * Generates the initial PipeCraft configuration file (.pipecraftrc.json) with default settings.
5
+ * This generator is invoked by the `pipecraft init` command and prompts the user for
6
+ * basic project configuration preferences.
7
+ *
8
+ * @module generators/init.tpl
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { generate } from './generators/init.tpl.js'
13
+ *
14
+ * // Called by CLI with Pinion context
15
+ * await generate(pinionContext)
16
+ *
17
+ * // Creates .pipecraftrc.json with:
18
+ * // - CI provider (GitHub/GitLab)
19
+ * // - Merge strategy (fast-forward/merge)
20
+ * // - Branch flow configuration
21
+ * // - Domain-based change detection
22
+ * // - Semantic versioning rules
23
+ * ```
24
+ *
25
+ * @note Current Implementation: The generator currently uses hardcoded defaults
26
+ * from `defaultConfig` regardless of user prompt responses. This is intentional
27
+ * for the initial release to ensure consistent behavior. Future versions will
28
+ * respect user input and allow customization.
29
+ */
30
+
31
+ import { PinionContext, toFile, renderTemplate, prompt, when, writeJSON } from '@featherscloud/pinion'
32
+ import { existsSync } from 'fs'
33
+ import { IdempotencyManager } from '../utils/idempotency.js'
34
+ import { VersionManager } from '../utils/versioning.js'
35
+ import { PipecraftConfig } from '../types/index.js'
36
+
37
+ /**
38
+ * Default PipeCraft configuration for new projects.
39
+ *
40
+ * Provides a complete, working trunk-based development workflow with:
41
+ * - GitHub Actions CI/CD
42
+ * - Fast-forward merge strategy
43
+ * - Develop → Staging → Main branch flow
44
+ * - Conventional commits enforcement
45
+ * - Semantic versioning with standard bump rules
46
+ * - Domain-based change detection for monorepos
47
+ *
48
+ * @const
49
+ */
50
+ const defaultConfig = {
51
+ ciProvider: 'github' as const,
52
+ mergeStrategy: 'fast-forward' as const,
53
+ requireConventionalCommits: true,
54
+ initialBranch: 'develop',
55
+ finalBranch: 'main',
56
+ branchFlow: ['develop', 'staging', 'main'],
57
+ autoMerge: {
58
+ staging: true,
59
+ main: true
60
+ },
61
+ semver: {
62
+ bumpRules: {
63
+ feat: 'minor',
64
+ fix: 'patch',
65
+ breaking: 'major'
66
+ }
67
+ },
68
+ domains: {
69
+ api: {
70
+ paths: ['apps/api/**'],
71
+ description: 'API application changes'
72
+ },
73
+ web: {
74
+ paths: ['apps/web/**'],
75
+ description: 'Web application changes'
76
+ },
77
+ libs: {
78
+ paths: ['libs/**'],
79
+ description: 'Shared library changes'
80
+ },
81
+ cicd: {
82
+ paths: ['.github/workflows/**'],
83
+ description: 'CI/CD configuration changes'
84
+ }
85
+ }
86
+ }
87
+
88
+ /**
89
+ * Generates a JSON string representation of the PipeCraft configuration.
90
+ *
91
+ * Serializes the configuration object with proper formatting (2-space indentation)
92
+ * for writing to .pipecraftrc.json file.
93
+ *
94
+ * @param {PipecraftConfig} ctx - The configuration context to serialize
95
+ * @returns {string} JSON string representation of the configuration
96
+ *
97
+ * @note The function extracts specific fields from the context to ensure
98
+ * only valid configuration properties are included in the output file.
99
+ */
100
+ const configTemplate = (ctx: PipecraftConfig) => {
101
+ const config = {
102
+ ciProvider: ctx.ciProvider,
103
+ mergeStrategy: ctx.mergeStrategy,
104
+ requireConventionalCommits: ctx.requireConventionalCommits,
105
+ initialBranch: ctx.initialBranch,
106
+ finalBranch: ctx.finalBranch,
107
+ branchFlow: ctx.branchFlow,
108
+ autoMerge: ctx.autoMerge,
109
+ semver: {
110
+ bumpRules: ctx.semver.bumpRules
111
+ },
112
+ domains: ctx.domains
113
+ }
114
+
115
+ return JSON.stringify(config, null, 2)
116
+ }
117
+
118
+ /**
119
+ * Init generator main entry point.
120
+ *
121
+ * Orchestrates the initialization process by:
122
+ * 1. Prompting user for project preferences (currently unused - see note)
123
+ * 2. Merging user input with default configuration
124
+ * 3. Generating and writing .pipecraftrc.json file
125
+ *
126
+ * @param {PinionContext} ctx - Pinion generator context from CLI
127
+ * @returns {Promise<PinionContext>} Updated context after file generation
128
+ *
129
+ * @throws {Error} If configuration file cannot be written
130
+ * @throws {Error} If user input validation fails
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * // Called by Pinion framework when user runs `pipecraft init`
135
+ * const result = await generate({
136
+ * cwd: '/path/to/project',
137
+ * argv: ['init'],
138
+ * pinion: { ... }
139
+ * })
140
+ *
141
+ * // Results in: /path/to/project/.pipecraftrc.json
142
+ * ```
143
+ *
144
+ * @note Current Behavior: Despite prompting for user input, the generator
145
+ * currently overwrites all responses with `defaultConfig` values (line 167).
146
+ * This ensures consistency for the initial release. Future versions will
147
+ * respect user choices and allow customization of branch names, merge strategies,
148
+ * and domain configurations.
149
+ *
150
+ * Prompts Presented (currently unused):
151
+ * - Project name
152
+ * - CI provider (GitHub/GitLab)
153
+ * - Merge strategy (fast-forward/merge)
154
+ * - Conventional commits enforcement
155
+ * - Development branch name
156
+ * - Production branch name
157
+ * - Branch flow sequence
158
+ */
159
+ export const generate = (ctx: PinionContext) =>
160
+ Promise.resolve(ctx)
161
+ .then(prompt([
162
+ {
163
+ type: 'input',
164
+ name: 'projectName',
165
+ message: 'What is your project name?',
166
+ default: 'my-project'
167
+ },
168
+ {
169
+ type: 'list',
170
+ name: 'ciProvider',
171
+ message: 'Which CI provider are you using?',
172
+ choices: [
173
+ { name: 'GitHub Actions', value: 'github' },
174
+ { name: 'GitLab CI/CD', value: 'gitlab' }
175
+ ],
176
+ default: 'github'
177
+ },
178
+ {
179
+ type: 'list',
180
+ name: 'mergeStrategy',
181
+ message: 'What merge strategy do you prefer?',
182
+ choices: [
183
+ { name: 'Fast-forward only (recommended)', value: 'fast-forward' },
184
+ { name: 'Merge commits', value: 'merge' }
185
+ ],
186
+ default: 'fast-forward'
187
+ },
188
+ {
189
+ type: 'confirm',
190
+ name: 'requireConventionalCommits',
191
+ message: 'Require conventional commit format for PR titles?',
192
+ default: true
193
+ },
194
+ {
195
+ type: 'input',
196
+ name: 'initialBranch',
197
+ message: 'What is your development branch name?',
198
+ default: 'develop'
199
+ },
200
+ {
201
+ type: 'input',
202
+ name: 'finalBranch',
203
+ message: 'What is your production branch name?',
204
+ default: 'main'
205
+ },
206
+ {
207
+ type: 'input',
208
+ name: 'branchFlow',
209
+ message: 'Enter your branch flow (comma-separated)',
210
+ default: 'develop,staging,main',
211
+ filter: (input: string) => input.split(',').map(b => b.trim())
212
+ }
213
+ ]))
214
+ .then((ctx) => ({ ...ctx, ...defaultConfig } as PipecraftConfig))
215
+ .then((config) => {
216
+ const configData = {
217
+ ciProvider: config.ciProvider,
218
+ mergeStrategy: config.mergeStrategy,
219
+ requireConventionalCommits: config.requireConventionalCommits,
220
+ initialBranch: config.initialBranch,
221
+ finalBranch: config.finalBranch,
222
+ branchFlow: config.branchFlow,
223
+ autoMerge: config.autoMerge,
224
+ semver: {
225
+ bumpRules: config.semver.bumpRules
226
+ },
227
+ domains: config.domains
228
+ }
229
+ return writeJSON(() => configData, toFile('.pipecraftrc.json'))(ctx)
230
+ })
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Workflows Template Generator
3
+ *
4
+ * Main orchestrator for generating complete GitHub Actions CI/CD pipeline.
5
+ * This generator creates all necessary workflow files including:
6
+ * - Main pipeline workflow (path-based change detection)
7
+ * - Reusable composite actions (tag creation, versioning, branch management, etc.)
8
+ *
9
+ * The generator supports both initial generation and incremental updates, preserving
10
+ * user modifications to existing workflows through intelligent merging.
11
+ *
12
+ * @module generators/workflows.tpl
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { generate } from './generators/workflows.tpl.js'
17
+ *
18
+ * // Initial generation - creates all workflows
19
+ * await generate({
20
+ * cwd: '/path/to/project',
21
+ * config: pipecraftConfig
22
+ * })
23
+ *
24
+ * // Incremental update - merges with existing pipeline
25
+ * await generate({
26
+ * cwd: '/path/to/project',
27
+ * pipelinePath: '.github/workflows/pipeline.yml',
28
+ * config: pipecraftConfig
29
+ * })
30
+ *
31
+ * // Creates:
32
+ * // .github/workflows/pipeline.yml - Main pipeline
33
+ * // .github/actions/detect-changes/... - Change detection action
34
+ * // .github/actions/calculate-version/... - Version calculation action
35
+ * // .github/actions/create-tag/... - Tag creation action
36
+ * // .github/actions/create-pr/... - PR creation action
37
+ * // .github/actions/manage-branch/... - Branch management action
38
+ * // .github/actions/promote-branch/... - Branch promotion action
39
+ * // .github/actions/create-release/... - Release creation action
40
+ * // .release-it.cjs - Release-it configuration
41
+ * ```
42
+ */
43
+
44
+ import { PinionContext, toFile, renderTemplate, loadJSON, when } from '@featherscloud/pinion'
45
+ import { IdempotencyManager } from '../utils/idempotency.js'
46
+ import { PipecraftConfig } from '../types/index.js'
47
+ import { readFileSync, existsSync } from 'fs'
48
+ import { parse } from 'yaml'
49
+ import { logger } from '../utils/logger.js'
50
+
51
+ // Import individual workflow templates
52
+ import { generate as generateTagWorkflow } from '../templates/actions/create-tag.yml.tpl.js'
53
+ import { generate as generateChangesWorkflow } from '../templates/actions/detect-changes.yml.tpl.js'
54
+ import { generate as generateVersionWorkflow } from '../templates/actions/calculate-version.yml.tpl.js'
55
+ import { generate as generateCreatePRWorkflow } from '../templates/actions/create-pr.yml.tpl.js'
56
+ import { generate as generateBranchWorkflow } from '../templates/actions/manage-branch.yml.tpl.js'
57
+ import { generate as generatePromoteBranchWorkflow } from '../templates/actions/promote-branch.yml.tpl.js'
58
+ import { generate as generateReleaseWorkflow } from '../templates/actions/create-release.yml.tpl.js'
59
+ import { generate as generatePathBasedPipeline } from '../templates/workflows/pipeline-path-based.yml.tpl.js'
60
+ import { generate as generateEnforcePRTarget } from '../templates/workflows/enforce-pr-target.yml.tpl.js'
61
+ import { generate as generatePRTitleCheck } from '../templates/workflows/pr-title-check.yml.tpl.js'
62
+ import { generate as generateReleaseItConfig } from '../templates/release-it.cjs.tpl.js'
63
+
64
+ /**
65
+ * Default fallback configuration when no config file exists.
66
+ * Mirrors `defaultConfig` from init.tpl.ts to ensure consistent behavior.
67
+ *
68
+ * @const
69
+ * @see {@link module:generators/init.tpl~defaultConfig}
70
+ */
71
+ const defaultConfig = {
72
+ ciProvider: 'github' as const,
73
+ mergeStrategy: 'fast-forward' as const,
74
+ requireConventionalCommits: true,
75
+ initialBranch: 'develop',
76
+ finalBranch: 'main',
77
+ branchFlow: ['develop', 'staging', 'main'],
78
+ semver: {
79
+ bumpRules: {
80
+ feat: 'minor',
81
+ fix: 'patch',
82
+ breaking: 'major'
83
+ }
84
+ },
85
+ domains: {
86
+ api: { paths: ['apps/api/**'], description: 'API application changes' },
87
+ web: { paths: ['apps/web/**'], description: 'Web application changes' },
88
+ libs: { paths: ['libs/**'], description: 'Shared library changes' },
89
+ cicd: { paths: ['.github/workflows/**'], description: 'CI/CD configuration changes' }
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Workflows generator main entry point.
95
+ *
96
+ * Orchestrates the complete workflow generation process:
97
+ * 1. Loads existing pipeline (if specified) for merging
98
+ * 2. Merges configuration with defaults
99
+ * 3. Generates all composite actions in parallel
100
+ * 4. Generates the main pipeline workflow
101
+ *
102
+ * @param {PinionContext & { pipelinePath?: string, outputPipelinePath?: string, config?: any }} ctx - Extended Pinion context
103
+ * @param {string} [ctx.pipelinePath] - Path to existing pipeline for incremental updates
104
+ * @param {string} [ctx.outputPipelinePath] - Custom output path for pipeline (defaults to .github/workflows/pipeline.yml)
105
+ * @param {PipecraftConfig} [ctx.config] - PipeCraft configuration (overrides defaults)
106
+ * @returns {Promise<PinionContext>} Updated context after workflow generation
107
+ *
108
+ * @throws {Error} If workflow files cannot be written
109
+ * @throws {Error} If existing pipeline cannot be parsed
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * // Initial generation with config
114
+ * await generate({
115
+ * cwd: '/path/to/project',
116
+ * config: {
117
+ * ciProvider: 'github',
118
+ * branchFlow: ['develop', 'staging', 'main'],
119
+ * domains: { api: { paths: ['src/api/**'] } }
120
+ * }
121
+ * })
122
+ *
123
+ * // Update existing pipeline
124
+ * await generate({
125
+ * cwd: '/path/to/project',
126
+ * pipelinePath: '.github/workflows/pipeline.yml',
127
+ * config: updatedConfig
128
+ * })
129
+ * ```
130
+ *
131
+ * @note The generator creates 9 files:
132
+ * - 1 main workflow (pipeline.yml)
133
+ * - 7 composite actions (in .github/actions/)
134
+ * - 1 release-it configuration (.release-it.cjs)
135
+ *
136
+ * All actions are generated in parallel for performance, followed by
137
+ * the main pipeline which may reference the actions.
138
+ */
139
+ export const generate = (ctx: PinionContext & { pipelinePath?: string, outputPipelinePath?: string, config?: any }) =>
140
+ Promise.resolve(ctx)
141
+ .then((ctx) => {
142
+ logger.info('🔧 Generating GitHub Actions...')
143
+
144
+ // Load existing pipeline if provided
145
+ let existingPipeline = null
146
+ let existingPipelineContent = null
147
+ if (ctx.pipelinePath && existsSync(ctx.pipelinePath)) {
148
+ try {
149
+ existingPipelineContent = readFileSync(ctx.pipelinePath, 'utf8')
150
+ existingPipeline = parse(existingPipelineContent)
151
+ logger.verbose(`📖 Loaded existing pipeline from: ${ctx.pipelinePath}`)
152
+ } catch (error) {
153
+ logger.warn(`⚠️ Failed to load existing pipeline: ${error}`)
154
+ }
155
+ }
156
+
157
+ return { ...ctx, ...defaultConfig, ...ctx.config, ...ctx, existingPipeline, existingPipelineContent, outputPipelinePath: ctx.outputPipelinePath }
158
+ })
159
+ .then((ctx) => {
160
+ // Generate individual GitHub Actions and release-it config
161
+ return Promise.all([
162
+ generateChangesWorkflow(ctx),
163
+ generateTagWorkflow(ctx),
164
+ generateVersionWorkflow(ctx),
165
+ generateCreatePRWorkflow(ctx),
166
+ generateBranchWorkflow(ctx),
167
+ generatePromoteBranchWorkflow(ctx),
168
+ generateReleaseWorkflow(ctx),
169
+ generateReleaseItConfig(ctx)
170
+ ]).then(() => ctx)
171
+ })
172
+ .then((ctx) => {
173
+ // Generate the main pipeline
174
+ return generatePathBasedPipeline(ctx)
175
+ })
176
+ .then((ctx) => {
177
+ // Generate the enforce PR target workflow
178
+ return generateEnforcePRTarget(ctx)
179
+ })
180
+ .then((ctx) => {
181
+ // Generate the PR title check workflow
182
+ return generatePRTitleCheck(ctx)
183
+ })
184
+ .then((ctx) => {
185
+ logger.success('✅ Generated workflows in: .github/workflows')
186
+ return ctx
187
+ })