pipecraft 0.0.0-releaseit

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 (176) hide show
  1. package/.claude/settings.local.json +35 -0
  2. package/.github/actions/calculate-version/action.yml +106 -0
  3. package/.github/actions/create-pr/action.yml +122 -0
  4. package/.github/actions/create-release/action.yml +74 -0
  5. package/.github/actions/create-tag/action.yml +94 -0
  6. package/.github/actions/detect-changes/action.yml +62 -0
  7. package/.github/actions/manage-branch/action.yml +113 -0
  8. package/.github/actions/promote-branch/action.yml +352 -0
  9. package/.github/example/workflows/job.analyze.code.yml +26 -0
  10. package/.github/example/workflows/job.analyze.docker.yml +32 -0
  11. package/.github/example/workflows/job.app.api.deploy.yml +127 -0
  12. package/.github/example/workflows/job.app.api.test.yml +102 -0
  13. package/.github/example/workflows/job.app.docs.deploy.yml +40 -0
  14. package/.github/example/workflows/job.app.docs.test.yml +50 -0
  15. package/.github/example/workflows/job.app.web.deploy.yml +96 -0
  16. package/.github/example/workflows/job.app.web.test.yml +49 -0
  17. package/.github/example/workflows/job.changes.yml +82 -0
  18. package/.github/example/workflows/job.create-pr.yml +96 -0
  19. package/.github/example/workflows/job.env-check.yml +43 -0
  20. package/.github/example/workflows/job.fast-forward.yml +103 -0
  21. package/.github/example/workflows/job.lint.yml +64 -0
  22. package/.github/example/workflows/job.pr-name.yml +70 -0
  23. package/.github/example/workflows/job.pr-squash-name.yml +27 -0
  24. package/.github/example/workflows/job.tag.yml +38 -0
  25. package/.github/example/workflows/job.version.yml +99 -0
  26. package/.github/example/workflows/lib.plugin-base.publish.yml +59 -0
  27. package/.github/example/workflows/pipe.yml +178 -0
  28. package/.github/example/workflows/scripts/fastforward.sh +51 -0
  29. package/.github/example/workflows/scripts/pipe-cleaner.sh +70 -0
  30. package/.github/scripts/fastforward.sh +51 -0
  31. package/.github/scripts/pipe-cleaner.sh +70 -0
  32. package/.github/workflows/pipeline.yml +220 -0
  33. package/.github/workflows/pr-title-check.yml +70 -0
  34. package/.github/workflows/publish.yml +39 -0
  35. package/.pipecraftrc.json +78 -0
  36. package/.release-it.cjs +71 -0
  37. package/PIPELINE_TESTING_PLAN.md +499 -0
  38. package/README.md +1101 -0
  39. package/TRUNK_FLOW_PLAN.md +401 -0
  40. package/assets/logo_banner.png +0 -0
  41. package/assets/logo_banner.webp +0 -0
  42. package/dist/cli/index.d.ts +3 -0
  43. package/dist/cli/index.d.ts.map +1 -0
  44. package/dist/cli/index.js +364 -0
  45. package/dist/cli/index.js.map +1 -0
  46. package/dist/generators/init.tpl.d.ts +3 -0
  47. package/dist/generators/init.tpl.d.ts.map +1 -0
  48. package/dist/generators/init.tpl.js +117 -0
  49. package/dist/generators/init.tpl.js.map +1 -0
  50. package/dist/generators/workflows.tpl.d.ts +7 -0
  51. package/dist/generators/workflows.tpl.d.ts.map +1 -0
  52. package/dist/generators/workflows.tpl.js +73 -0
  53. package/dist/generators/workflows.tpl.js.map +1 -0
  54. package/dist/templates/actions/calculate-version.yml.tpl.d.ts +3 -0
  55. package/dist/templates/actions/calculate-version.yml.tpl.d.ts.map +1 -0
  56. package/dist/templates/actions/calculate-version.yml.tpl.js +122 -0
  57. package/dist/templates/actions/calculate-version.yml.tpl.js.map +1 -0
  58. package/dist/templates/actions/create-pr.yml.tpl.d.ts +3 -0
  59. package/dist/templates/actions/create-pr.yml.tpl.d.ts.map +1 -0
  60. package/dist/templates/actions/create-pr.yml.tpl.js +145 -0
  61. package/dist/templates/actions/create-pr.yml.tpl.js.map +1 -0
  62. package/dist/templates/actions/create-tag.yml.tpl.d.ts +3 -0
  63. package/dist/templates/actions/create-tag.yml.tpl.d.ts.map +1 -0
  64. package/dist/templates/actions/create-tag.yml.tpl.js +111 -0
  65. package/dist/templates/actions/create-tag.yml.tpl.js.map +1 -0
  66. package/dist/templates/actions/detect-changes.yml.tpl.d.ts +3 -0
  67. package/dist/templates/actions/detect-changes.yml.tpl.d.ts.map +1 -0
  68. package/dist/templates/actions/detect-changes.yml.tpl.js +79 -0
  69. package/dist/templates/actions/detect-changes.yml.tpl.js.map +1 -0
  70. package/dist/templates/actions/manage-branch.yml.tpl.d.ts +3 -0
  71. package/dist/templates/actions/manage-branch.yml.tpl.d.ts.map +1 -0
  72. package/dist/templates/actions/manage-branch.yml.tpl.js +130 -0
  73. package/dist/templates/actions/manage-branch.yml.tpl.js.map +1 -0
  74. package/dist/templates/actions/promote-branch.yml.tpl.d.ts +3 -0
  75. package/dist/templates/actions/promote-branch.yml.tpl.d.ts.map +1 -0
  76. package/dist/templates/actions/promote-branch.yml.tpl.js +362 -0
  77. package/dist/templates/actions/promote-branch.yml.tpl.js.map +1 -0
  78. package/dist/templates/workflows/pipeline-path-based.yml.tpl.d.ts +16 -0
  79. package/dist/templates/workflows/pipeline-path-based.yml.tpl.d.ts.map +1 -0
  80. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js +652 -0
  81. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js.map +1 -0
  82. package/dist/types/index.d.ts +63 -0
  83. package/dist/types/index.d.ts.map +1 -0
  84. package/dist/types/index.js +2 -0
  85. package/dist/types/index.js.map +1 -0
  86. package/dist/utils/ast-path-operations.d.ts +287 -0
  87. package/dist/utils/ast-path-operations.d.ts.map +1 -0
  88. package/dist/utils/ast-path-operations.js +419 -0
  89. package/dist/utils/ast-path-operations.js.map +1 -0
  90. package/dist/utils/config.d.ts +3 -0
  91. package/dist/utils/config.d.ts.map +1 -0
  92. package/dist/utils/config.js +49 -0
  93. package/dist/utils/config.js.map +1 -0
  94. package/dist/utils/github-setup.d.ts +74 -0
  95. package/dist/utils/github-setup.d.ts.map +1 -0
  96. package/dist/utils/github-setup.js +418 -0
  97. package/dist/utils/github-setup.js.map +1 -0
  98. package/dist/utils/idempotency.d.ts +47 -0
  99. package/dist/utils/idempotency.d.ts.map +1 -0
  100. package/dist/utils/idempotency.js +176 -0
  101. package/dist/utils/idempotency.js.map +1 -0
  102. package/dist/utils/preflight.d.ts +55 -0
  103. package/dist/utils/preflight.d.ts.map +1 -0
  104. package/dist/utils/preflight.js +261 -0
  105. package/dist/utils/preflight.js.map +1 -0
  106. package/dist/utils/versioning.d.ts +41 -0
  107. package/dist/utils/versioning.d.ts.map +1 -0
  108. package/dist/utils/versioning.js +219 -0
  109. package/dist/utils/versioning.js.map +1 -0
  110. package/docs/USER_JOURNEY_ERRORS.md +352 -0
  111. package/eslint.config.js +77 -0
  112. package/examples/basic-config.json +41 -0
  113. package/examples/monorepo-config.json +49 -0
  114. package/examples/usage.md +289 -0
  115. package/package.json +58 -0
  116. package/scripts/debug-workflows.sh +339 -0
  117. package/scripts/parse-pipeline.js +29 -0
  118. package/scripts/test-job-order.cjs +140 -0
  119. package/scripts/validate-pipeline.cjs +379 -0
  120. package/scripts/verify-job-order.sh +30 -0
  121. package/src/cli/index.ts +414 -0
  122. package/src/generators/init.tpl.ts +126 -0
  123. package/src/generators/workflows.tpl.ts +80 -0
  124. package/src/templates/actions/calculate-version.yml.tpl.ts +124 -0
  125. package/src/templates/actions/create-pr.yml.tpl.ts +147 -0
  126. package/src/templates/actions/create-tag.yml.tpl.ts +112 -0
  127. package/src/templates/actions/detect-changes.yml.tpl.ts +87 -0
  128. package/src/templates/actions/manage-branch.yml.tpl.ts +132 -0
  129. package/src/templates/actions/promote-branch.yml.tpl.ts +364 -0
  130. package/src/templates/workflows/pipeline-path-based.yml.tpl.ts +706 -0
  131. package/src/types/index.ts +64 -0
  132. package/src/utils/README-ast-path-operations.md +390 -0
  133. package/src/utils/ast-path-operations.ts +581 -0
  134. package/src/utils/config.ts +64 -0
  135. package/src/utils/github-setup.ts +558 -0
  136. package/src/utils/idempotency.ts +215 -0
  137. package/src/utils/preflight.ts +306 -0
  138. package/src/utils/versioning.ts +244 -0
  139. package/tests/README.md +229 -0
  140. package/tests/TEST_STRUCTURE.md +256 -0
  141. package/tests/act/run-act-tests.sh +345 -0
  142. package/tests/debugging/debug-utils.ts +538 -0
  143. package/tests/debugging/debug-workflow.test.ts +339 -0
  144. package/tests/debugging/debug-workflows.sh +339 -0
  145. package/tests/debugging/iterative-debug.ts +652 -0
  146. package/tests/debugging/run-debug-tests.sh +431 -0
  147. package/tests/fixtures/basic-config.json +51 -0
  148. package/tests/fixtures/invalid-config.json +9 -0
  149. package/tests/fixtures/pipeline-generated.yml +235 -0
  150. package/tests/fixtures/pipeline-preserve-comments.yml +245 -0
  151. package/tests/fixtures/pipeline-user-modified.yml +245 -0
  152. package/tests/fixtures/test-config.json +58 -0
  153. package/tests/github-live/README.md +250 -0
  154. package/tests/github-local/JOB_WORKFLOW_TESTS.md +296 -0
  155. package/tests/github-local/README.md +240 -0
  156. package/tests/github-local/run-all-tests.sh +422 -0
  157. package/tests/github-local/test-job-workflows.sh +631 -0
  158. package/tests/github-local/test-pipeline-workflow.sh +440 -0
  159. package/tests/integration/generators.test.ts +578 -0
  160. package/tests/integration/path-based-template.test.ts +510 -0
  161. package/tests/integration/simple-path-based.test.ts +415 -0
  162. package/tests/setup.ts +56 -0
  163. package/tests/unit/ast-path-operations-extended.test.ts +302 -0
  164. package/tests/unit/cli.test.ts +541 -0
  165. package/tests/unit/config-extended.test.ts +412 -0
  166. package/tests/unit/config.test.ts +152 -0
  167. package/tests/unit/github-setup.test.ts +189 -0
  168. package/tests/unit/idempotency-isolated.test.ts +297 -0
  169. package/tests/unit/job-order.test.ts +157 -0
  170. package/tests/unit/pipeline-path-based.test.ts +511 -0
  171. package/tests/unit/validate-pipeline.test.ts +384 -0
  172. package/tests/unit/versioning-extended.test.ts +279 -0
  173. package/tests/unit/versioning.test.ts +241 -0
  174. package/tsconfig.debug.json +17 -0
  175. package/tsconfig.json +28 -0
  176. package/vitest.config.ts +51 -0
@@ -0,0 +1,364 @@
1
+ #!/usr/bin/env node
2
+ // PipeCraft CLI - Automated CI/CD pipeline generator
3
+ // Test change for deploy flow validation
4
+ import { Command } from 'commander';
5
+ import { cosmiconfigSync } from 'cosmiconfig';
6
+ import { runModule, prompt } from '@featherscloud/pinion';
7
+ import { join } from 'path';
8
+ import { fileURLToPath } from 'url';
9
+ import { dirname } from 'path';
10
+ import { IdempotencyManager } from '../utils/idempotency.js';
11
+ import { VersionManager } from '../utils/versioning.js';
12
+ import { loadConfig, validateConfig } from '../utils/config.js';
13
+ import { setupGitHubPermissions } from '../utils/github-setup.js';
14
+ import { runPreflightChecks, formatPreflightResults } from '../utils/preflight.js';
15
+ const __filename = fileURLToPath(import.meta.url);
16
+ const __dirname = dirname(__filename);
17
+ const program = new Command();
18
+ // Configure the CLI
19
+ program
20
+ .name('pipecraft')
21
+ .description('CLI tool for managing trunk-based development workflows')
22
+ .version('1.0.0');
23
+ console.log("pipecraft edit");
24
+ // Global options
25
+ program
26
+ .option('-c, --config <path>', 'path to config file', '.pipecraftrc.json')
27
+ .option('-p, --pipeline <path>', 'path to existing pipeline file for merging', '.github/workflows/pipeline.yml')
28
+ .option('-o, --output-pipeline <path>', 'path to output pipeline file (for testing)', '.github/workflows/pipeline.yml')
29
+ .option('-v, --verbose', 'verbose output')
30
+ .option('--force', 'force regeneration even if files unchanged')
31
+ .option('--dry-run', 'show what would be done without making changes');
32
+ // Init command - Initialize configuration
33
+ program
34
+ .command('init')
35
+ .description('Initialize pipecraft configuration')
36
+ .option('-f, --force', 'overwrite existing config file')
37
+ .option('-i, --interactive', 'run interactive setup wizard')
38
+ .option('--with-versioning', 'include version management setup')
39
+ .option('--ci-provider <provider>', 'CI provider (github|gitlab)', 'github')
40
+ .option('--merge-strategy <strategy>', 'merge strategy (fast-forward|merge)', 'fast-forward')
41
+ .option('--initial-branch <branch>', 'initial development branch', 'develop')
42
+ .option('--final-branch <branch>', 'final production branch', 'main')
43
+ .action(async (options) => {
44
+ try {
45
+ const globalOptions = program.opts();
46
+ await runModule(join(__dirname, '../generators/init.tpl.ts'), {
47
+ cwd: process.cwd(),
48
+ argv: process.argv,
49
+ pinion: {
50
+ logger: {
51
+ ...console,
52
+ notice: console.log
53
+ },
54
+ prompt: prompt,
55
+ cwd: process.cwd(),
56
+ force: options.force || globalOptions.force || false,
57
+ trace: [],
58
+ exec: async (command, args) => {
59
+ const { spawn } = await import('child_process');
60
+ return new Promise((resolve, reject) => {
61
+ const child = spawn(command, args, { stdio: 'inherit', shell: true });
62
+ child.once('exit', (code) => (code === 0 ? resolve(code) : reject(code)));
63
+ });
64
+ }
65
+ }
66
+ });
67
+ // Setup version management if requested
68
+ if (options.withVersioning) {
69
+ const config = loadConfig(globalOptions.config);
70
+ const versionManager = new VersionManager(config);
71
+ versionManager.setupVersionManagement();
72
+ console.log('✅ Version management setup completed!');
73
+ }
74
+ console.log('✅ Configuration initialized successfully!');
75
+ }
76
+ catch (error) {
77
+ console.error('❌ Failed to initialize configuration:', error.message);
78
+ process.exit(1);
79
+ }
80
+ });
81
+ // Generate command - Generate workflow files
82
+ program
83
+ .command('generate')
84
+ .description('Generate CI/CD workflows from configuration')
85
+ .option('-o, --output <path>', 'output directory for generated workflows', '.github/workflows')
86
+ .option('--skip-unchanged', 'skip files that haven\'t changed')
87
+ .option('--skip-checks', 'skip pre-flight checks (not recommended)')
88
+ .action(async (options) => {
89
+ try {
90
+ const globalOptions = program.opts();
91
+ const configPath = globalOptions.config;
92
+ const pipelinePath = globalOptions.pipeline;
93
+ const outputPipelinePath = globalOptions.outputPipeline;
94
+ // Run pre-flight checks unless skipped
95
+ if (!options.skipChecks) {
96
+ console.log('🔍 Running pre-flight checks...\n');
97
+ const checks = runPreflightChecks();
98
+ const { allPassed, output, nextSteps } = formatPreflightResults(checks);
99
+ console.log(output);
100
+ console.log();
101
+ if (!allPassed) {
102
+ console.error('❌ Pre-flight checks failed. Fix the issues above and try again.');
103
+ console.error(' Or use --skip-checks to bypass (not recommended)\n');
104
+ process.exit(1);
105
+ }
106
+ console.log('✅ All pre-flight checks passed!');
107
+ // Store next steps for later display (after successful generation)
108
+ if (nextSteps) {
109
+ options._nextSteps = nextSteps;
110
+ }
111
+ console.log();
112
+ }
113
+ if (globalOptions.verbose) {
114
+ console.log(`📖 Reading config from: ${configPath}`);
115
+ console.log(`📖 Reading pipeline from: ${pipelinePath}`);
116
+ }
117
+ // Load configuration
118
+ const config = loadConfig(configPath);
119
+ // Check idempotency if not forcing
120
+ if (!globalOptions.force && !globalOptions.dryRun) {
121
+ const idempotencyManager = new IdempotencyManager(config);
122
+ if (!(await idempotencyManager.hasChanges())) {
123
+ console.log('ℹ️ No changes detected. Use --force to regenerate anyway.');
124
+ return;
125
+ }
126
+ if (globalOptions.verbose) {
127
+ console.log('🔄 Changes detected, regenerating workflows...');
128
+ }
129
+ }
130
+ if (globalOptions.dryRun) {
131
+ console.log('🔍 Dry run mode - would generate workflows');
132
+ return;
133
+ }
134
+ await runModule(join(__dirname, '../generators/workflows.tpl.js'), {
135
+ cwd: process.cwd(),
136
+ argv: process.argv,
137
+ pipelinePath: pipelinePath,
138
+ outputPipelinePath: outputPipelinePath,
139
+ config: config,
140
+ pinion: {
141
+ logger: {
142
+ ...console,
143
+ notice: console.log
144
+ },
145
+ prompt: prompt,
146
+ cwd: process.cwd(),
147
+ force: globalOptions.force || false,
148
+ trace: [],
149
+ exec: async (command, args) => {
150
+ const { spawn } = await import('child_process');
151
+ return new Promise((resolve, reject) => {
152
+ const child = spawn(command, args, { stdio: 'inherit', shell: true });
153
+ child.once('exit', (code) => (code === 0 ? resolve(code) : reject(code)));
154
+ });
155
+ }
156
+ }
157
+ });
158
+ // Update idempotency cache
159
+ const idempotencyManager = new IdempotencyManager(config);
160
+ await idempotencyManager.updateCache();
161
+ console.log(`✅ Generated workflows in: ${options.output}`);
162
+ // Display next steps if available
163
+ if (options._nextSteps) {
164
+ console.log();
165
+ const steps = options._nextSteps;
166
+ steps.forEach((step) => console.log(step));
167
+ }
168
+ }
169
+ catch (error) {
170
+ console.error('❌ Failed to generate workflows:', error.message);
171
+ process.exit(1);
172
+ }
173
+ });
174
+ // Validate command - Validate configuration
175
+ program
176
+ .command('validate')
177
+ .description('Validate configuration file')
178
+ .action(async (options) => {
179
+ try {
180
+ const globalOptions = program.opts();
181
+ const configPath = globalOptions.config;
182
+ const config = loadConfig(configPath);
183
+ validateConfig(config);
184
+ console.log('✅ Configuration is valid!');
185
+ }
186
+ catch (error) {
187
+ console.error('❌ Configuration validation failed:', error.message);
188
+ process.exit(1);
189
+ }
190
+ });
191
+ // Verify command - Check if setup is correct
192
+ program
193
+ .command('verify')
194
+ .description('Verify that pipecraft is properly set up')
195
+ .action(async () => {
196
+ try {
197
+ const explorer = cosmiconfigSync('trunkflow');
198
+ const result = explorer.search();
199
+ if (!result) {
200
+ console.log('⚠️ No configuration file found. Run "pipecraft init" to get started.');
201
+ process.exit(1);
202
+ }
203
+ console.log(`✅ Found configuration at: ${result.filepath}`);
204
+ const config = result.config;
205
+ validateConfig(config);
206
+ console.log('✅ Configuration is valid!');
207
+ // Check if workflows exist
208
+ const fs = await import('fs');
209
+ const path = await import('path');
210
+ if (config.ciProvider === 'github') {
211
+ const workflowPath = path.join(process.cwd(), '.github/workflows/pipeline.yml');
212
+ if (fs.existsSync(workflowPath)) {
213
+ console.log('✅ GitHub Actions workflows exist!');
214
+ }
215
+ else {
216
+ console.log('⚠️ GitHub Actions workflows not found. Run "pipecraft generate" to create them.');
217
+ }
218
+ }
219
+ }
220
+ catch (error) {
221
+ console.error('❌ Verification failed:', error.message);
222
+ process.exit(1);
223
+ }
224
+ });
225
+ // Version command - Version management
226
+ program
227
+ .command('version')
228
+ .description('Version management commands')
229
+ .option('--check', 'check current version and next version')
230
+ .option('--bump', 'bump version using conventional commits')
231
+ .option('--release', 'create release with version bump')
232
+ .action(async (options) => {
233
+ try {
234
+ const globalOptions = program.opts();
235
+ const config = loadConfig(globalOptions.config);
236
+ const versionManager = new VersionManager(config);
237
+ if (options.check) {
238
+ const currentVersion = versionManager.getCurrentVersion();
239
+ const nextVersion = versionManager.calculateNextVersion();
240
+ console.log(`📦 Current version: ${currentVersion}`);
241
+ console.log(`📦 Next version: ${nextVersion.version} (${nextVersion.type})`);
242
+ // Check conventional commits
243
+ const isValid = versionManager.validateConventionalCommits();
244
+ console.log(`📝 Conventional commits: ${isValid ? '✅ Valid' : '❌ Invalid'}`);
245
+ }
246
+ if (options.bump) {
247
+ console.log('🔄 Bumping version...');
248
+ // This would run release-it in dry-run mode first
249
+ console.log('✅ Version bump completed!');
250
+ }
251
+ if (options.release) {
252
+ console.log('🚀 Creating release...');
253
+ // This would run the actual release process
254
+ console.log('✅ Release created!');
255
+ }
256
+ }
257
+ catch (error) {
258
+ console.error('❌ Version command failed:', error.message);
259
+ process.exit(1);
260
+ }
261
+ });
262
+ // Setup command - Create necessary branches
263
+ program
264
+ .command('setup')
265
+ .description('Set up the repository with necessary branches from branch flow')
266
+ .option('--force', 'Force creation even if branches exist')
267
+ .action(async (options) => {
268
+ try {
269
+ const globalOptions = program.opts();
270
+ const configPath = globalOptions.config;
271
+ if (globalOptions.verbose) {
272
+ console.log(`📖 Reading config from: ${configPath}`);
273
+ }
274
+ // Load configuration
275
+ const config = loadConfig(configPath);
276
+ if (!config.branchFlow || config.branchFlow.length === 0) {
277
+ console.log('⚠️ No branch flow configured in config file');
278
+ return;
279
+ }
280
+ console.log(`🌿 Setting up branches: ${config.branchFlow.join(' → ')}`);
281
+ // Check current branch
282
+ const { execSync } = await import('child_process');
283
+ const currentBranch = execSync('git branch --show-current', { encoding: 'utf8' }).trim();
284
+ console.log(`📍 Current branch: ${currentBranch}`);
285
+ // Check which branches exist
286
+ const existingBranches = execSync('git branch -a', { encoding: 'utf8' })
287
+ .split('\n')
288
+ .map(line => line.trim().replace('* ', '').replace('remotes/origin/', ''))
289
+ .filter(line => line.length > 0);
290
+ console.log(`📋 Existing branches: ${existingBranches.join(', ')}`);
291
+ // Create missing branches
292
+ for (const branch of config.branchFlow) {
293
+ if (existingBranches.includes(branch)) {
294
+ console.log(`✅ Branch '${branch}' already exists locally`);
295
+ }
296
+ else {
297
+ console.log(`🌱 Creating branch '${branch}'...`);
298
+ try {
299
+ execSync(`git checkout -b ${branch}`, { stdio: 'inherit' });
300
+ console.log(`✅ Created branch '${branch}'`);
301
+ }
302
+ catch (error) {
303
+ if (error.message.includes('already exists')) {
304
+ console.log(`ℹ️ Branch '${branch}' already exists (checked out from remote)`);
305
+ }
306
+ else {
307
+ throw error;
308
+ }
309
+ }
310
+ }
311
+ // Push branch to remote if it doesn't exist there
312
+ try {
313
+ console.log(`📤 Checking if '${branch}' exists on remote...`);
314
+ execSync(`git ls-remote --heads origin ${branch}`, { stdio: 'pipe' });
315
+ console.log(`✅ Branch '${branch}' already exists on remote`);
316
+ }
317
+ catch (error) {
318
+ console.log(`🚀 Pushing branch '${branch}' to remote...`);
319
+ execSync(`git push -u origin ${branch}`, { stdio: 'inherit' });
320
+ console.log(`✅ Pushed branch '${branch}' to remote`);
321
+ }
322
+ }
323
+ // Return to original branch
324
+ execSync(`git checkout ${currentBranch}`, { stdio: 'inherit' });
325
+ console.log(`🔄 Returned to original branch: ${currentBranch}`);
326
+ console.log('✅ Branch setup complete!');
327
+ }
328
+ catch (error) {
329
+ console.error('❌ Setup command failed:', error.message);
330
+ process.exit(1);
331
+ }
332
+ });
333
+ // Setup GitHub command - Configure GitHub Actions permissions
334
+ program
335
+ .command('setup-github')
336
+ .description('Configure GitHub Actions workflow permissions for PipeCraft')
337
+ .option('--apply', 'Automatically apply changes without prompting')
338
+ .option('--force', 'Alias for --apply')
339
+ .action(async (options) => {
340
+ try {
341
+ const autoApply = options.apply || options.force;
342
+ await setupGitHubPermissions(autoApply);
343
+ }
344
+ catch (error) {
345
+ console.error('❌ GitHub setup failed:', error.message);
346
+ if (error.stack) {
347
+ console.error(error.stack);
348
+ }
349
+ process.exit(1);
350
+ }
351
+ });
352
+ // Parse command line arguments
353
+ program.parse();
354
+ // Show help if no command provided
355
+ if (!process.argv.slice(2).length) {
356
+ program.outputHelp();
357
+ }
358
+ // Test comment for deploy job validation
359
+ // Final test for deploy-core job
360
+ // Test commit to trigger deploy-core job - Wed Oct 15 13:47:31 EDT 2025
361
+ // Test commit to trigger deploy-core job - Wed Oct 15 13:51:31 EDT 2025
362
+ // test commit # on Wed Oct 15 14:07:07 EDT 2025
363
+ // test commit # on Wed Oct 15 15:12:47 EDT 2025
364
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PinionContext } from '@featherscloud/pinion';
2
+ export declare const generate: (ctx: PinionContext) => Promise<PinionContext>;
3
+ //# sourceMappingURL=init.tpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.tpl.d.ts","sourceRoot":"","sources":["../../src/generators/init.tpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmD,MAAM,uBAAuB,CAAA;AAkEtG,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,2BA2DrC,CAAA"}
@@ -0,0 +1,117 @@
1
+ import { toFile, prompt, writeJSON } from '@featherscloud/pinion';
2
+ const defaultConfig = {
3
+ ciProvider: 'github',
4
+ mergeStrategy: 'fast-forward',
5
+ requireConventionalCommits: true,
6
+ initialBranch: 'develop',
7
+ finalBranch: 'main',
8
+ branchFlow: ['develop', 'staging', 'main'],
9
+ semver: {
10
+ bumpRules: {
11
+ feat: 'minor',
12
+ fix: 'patch',
13
+ breaking: 'major'
14
+ }
15
+ },
16
+ actions: {
17
+ onDevelopMerge: ['runTests', 'fastForwardToStaging'],
18
+ onStagingMerge: ['runTests', 'calculateVersion', 'createOrFastForwardToMain']
19
+ },
20
+ domains: {
21
+ api: {
22
+ paths: ['apps/api/**'],
23
+ description: 'API application changes'
24
+ },
25
+ web: {
26
+ paths: ['apps/web/**'],
27
+ description: 'Web application changes'
28
+ },
29
+ libs: {
30
+ paths: ['libs/**'],
31
+ description: 'Shared library changes'
32
+ },
33
+ cicd: {
34
+ paths: ['.github/workflows/**'],
35
+ description: 'CI/CD configuration changes'
36
+ }
37
+ }
38
+ };
39
+ const configTemplate = (ctx) => {
40
+ const config = {
41
+ ciProvider: ctx.ciProvider,
42
+ mergeStrategy: ctx.mergeStrategy,
43
+ requireConventionalCommits: ctx.requireConventionalCommits,
44
+ initialBranch: ctx.initialBranch,
45
+ finalBranch: ctx.finalBranch,
46
+ branchFlow: ctx.branchFlow,
47
+ semver: {
48
+ bumpRules: ctx.semver.bumpRules
49
+ },
50
+ actions: {
51
+ onDevelopMerge: ctx.actions.onDevelopMerge,
52
+ onStagingMerge: ctx.actions.onStagingMerge
53
+ },
54
+ domains: ctx.domains
55
+ };
56
+ return JSON.stringify(config, null, 2);
57
+ };
58
+ export const generate = (ctx) => Promise.resolve(ctx)
59
+ .then(prompt([
60
+ {
61
+ type: 'input',
62
+ name: 'projectName',
63
+ message: 'What is your project name?',
64
+ default: 'my-project'
65
+ },
66
+ {
67
+ type: 'list',
68
+ name: 'ciProvider',
69
+ message: 'Which CI provider are you using?',
70
+ choices: [
71
+ { name: 'GitHub Actions', value: 'github' },
72
+ { name: 'GitLab CI/CD', value: 'gitlab' }
73
+ ],
74
+ default: 'github'
75
+ },
76
+ {
77
+ type: 'list',
78
+ name: 'mergeStrategy',
79
+ message: 'What merge strategy do you prefer?',
80
+ choices: [
81
+ { name: 'Fast-forward only (recommended)', value: 'fast-forward' },
82
+ { name: 'Merge commits', value: 'merge' }
83
+ ],
84
+ default: 'fast-forward'
85
+ },
86
+ {
87
+ type: 'confirm',
88
+ name: 'requireConventionalCommits',
89
+ message: 'Require conventional commit format for PR titles?',
90
+ default: true
91
+ },
92
+ {
93
+ type: 'input',
94
+ name: 'initialBranch',
95
+ message: 'What is your development branch name?',
96
+ default: 'develop'
97
+ },
98
+ {
99
+ type: 'input',
100
+ name: 'finalBranch',
101
+ message: 'What is your production branch name?',
102
+ default: 'main'
103
+ },
104
+ {
105
+ type: 'input',
106
+ name: 'branchFlow',
107
+ message: 'Enter your branch flow (comma-separated)',
108
+ default: 'develop,staging,main',
109
+ filter: (input) => input.split(',').map(b => b.trim())
110
+ }
111
+ ]))
112
+ .then((ctx) => ({ ...ctx, ...defaultConfig }))
113
+ .then((config) => {
114
+ const content = configTemplate(config);
115
+ return writeJSON(() => content, toFile('.pipecraftrc.json'))(ctx);
116
+ });
117
+ //# sourceMappingURL=init.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.tpl.js","sourceRoot":"","sources":["../../src/generators/init.tpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { PinionContext } from '@featherscloud/pinion';
2
+ export declare const generate: (ctx: PinionContext & {
3
+ pipelinePath?: string;
4
+ outputPipelinePath?: string;
5
+ config?: any;
6
+ }) => Promise<any>;
7
+ //# sourceMappingURL=workflows.tpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.tpl.d.ts","sourceRoot":"","sources":["../../src/generators/workflows.tpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0C,MAAM,uBAAuB,CAAA;AAyC7F,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,iBAsC5G,CAAA"}
@@ -0,0 +1,73 @@
1
+ import { readFileSync, existsSync } from 'fs';
2
+ import { parse } from 'yaml';
3
+ // Import individual workflow templates
4
+ import { generate as generateTagWorkflow } from '../templates/actions/create-tag.yml.tpl.js';
5
+ import { generate as generateChangesWorkflow } from '../templates/actions/detect-changes.yml.tpl.js';
6
+ import { generate as generateVersionWorkflow } from '../templates/actions/calculate-version.yml.tpl.js';
7
+ import { generate as generateCreatePRWorkflow } from '../templates/actions/create-pr.yml.tpl.js';
8
+ import { generate as generateBranchWorkflow } from '../templates/actions/manage-branch.yml.tpl.js';
9
+ import { generate as generatePromoteBranchWorkflow } from '../templates/actions/promote-branch.yml.tpl.js';
10
+ import { generate as generatePathBasedPipeline } from '../templates/workflows/pipeline-path-based.yml.tpl.js';
11
+ const defaultConfig = {
12
+ ciProvider: 'github',
13
+ mergeStrategy: 'fast-forward',
14
+ requireConventionalCommits: true,
15
+ initialBranch: 'develop',
16
+ finalBranch: 'main',
17
+ branchFlow: ['develop', 'staging', 'main'],
18
+ semver: {
19
+ bumpRules: {
20
+ feat: 'minor',
21
+ fix: 'patch',
22
+ breaking: 'major'
23
+ }
24
+ },
25
+ actions: {
26
+ onDevelopMerge: ['runTests', 'fastForwardToStaging'],
27
+ onStagingMerge: ['runTests', 'calculateVersion', 'createOrFastForwardToMain']
28
+ },
29
+ domains: {
30
+ api: { paths: ['apps/api/**'], description: 'API application changes' },
31
+ web: { paths: ['apps/web/**'], description: 'Web application changes' },
32
+ libs: { paths: ['libs/**'], description: 'Shared library changes' },
33
+ cicd: { paths: ['.github/workflows/**'], description: 'CI/CD configuration changes' }
34
+ }
35
+ };
36
+ export const generate = (ctx) => Promise.resolve(ctx)
37
+ .then((ctx) => {
38
+ console.log('🔧 Generating GitHub Actions...');
39
+ // Load existing pipeline if provided
40
+ let existingPipeline = null;
41
+ let existingPipelineContent = null;
42
+ if (ctx.pipelinePath && existsSync(ctx.pipelinePath)) {
43
+ try {
44
+ existingPipelineContent = readFileSync(ctx.pipelinePath, 'utf8');
45
+ existingPipeline = parse(existingPipelineContent);
46
+ console.log(`📖 Loaded existing pipeline from: ${ctx.pipelinePath}`);
47
+ }
48
+ catch (error) {
49
+ console.warn(`⚠️ Failed to load existing pipeline: ${error}`);
50
+ }
51
+ }
52
+ return { ...ctx, ...defaultConfig, ...ctx.config, ...ctx, existingPipeline, existingPipelineContent, outputPipelinePath: ctx.outputPipelinePath };
53
+ })
54
+ .then((ctx) => {
55
+ // Generate individual GitHub Actions
56
+ return Promise.all([
57
+ generateChangesWorkflow(ctx),
58
+ generateTagWorkflow(ctx),
59
+ generateVersionWorkflow(ctx),
60
+ generateCreatePRWorkflow(ctx),
61
+ generateBranchWorkflow(ctx),
62
+ generatePromoteBranchWorkflow(ctx)
63
+ ]).then(() => ctx);
64
+ })
65
+ .then((ctx) => {
66
+ // Generate the main pipeline
67
+ return generatePathBasedPipeline(ctx);
68
+ })
69
+ .then((ctx) => {
70
+ console.log('✅ Generated workflows in: .github/workflows');
71
+ return ctx;
72
+ });
73
+ //# sourceMappingURL=workflows.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.tpl.js","sourceRoot":"","sources":["../../src/generators/workflows.tpl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PinionContext } from '@featherscloud/pinion';
2
+ export declare const generate: (ctx: PinionContext) => Promise<any>;
3
+ //# sourceMappingURL=calculate-version.yml.tpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate-version.yml.tpl.d.ts","sourceRoot":"","sources":["../../../src/templates/actions/calculate-version.yml.tpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAiH7E,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,iBAU6D,CAAA"}