pipecraft 0.29.3 → 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 (142) hide show
  1. package/README.md +128 -54
  2. package/dist/cli/index.d.ts +3 -3
  3. package/dist/cli/index.js +68 -25
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/generators/init.tpl.d.ts +4 -4
  6. package/dist/generators/init.tpl.d.ts.map +1 -1
  7. package/dist/generators/init.tpl.js +214 -108
  8. package/dist/generators/init.tpl.js.map +1 -1
  9. package/dist/generators/workflows.tpl.d.ts +9 -9
  10. package/dist/generators/workflows.tpl.d.ts.map +1 -1
  11. package/dist/generators/workflows.tpl.js +33 -36
  12. package/dist/generators/workflows.tpl.js.map +1 -1
  13. package/dist/templates/actions/calculate-version.yml.tpl.d.ts +7 -4
  14. package/dist/templates/actions/calculate-version.yml.tpl.d.ts.map +1 -1
  15. package/dist/templates/actions/calculate-version.yml.tpl.js +49 -23
  16. package/dist/templates/actions/calculate-version.yml.tpl.js.map +1 -1
  17. package/dist/templates/actions/create-pr.yml.tpl.d.ts +5 -2
  18. package/dist/templates/actions/create-pr.yml.tpl.d.ts.map +1 -1
  19. package/dist/templates/actions/create-pr.yml.tpl.js +14 -8
  20. package/dist/templates/actions/create-pr.yml.tpl.js.map +1 -1
  21. package/dist/templates/actions/create-release.yml.tpl.d.ts +5 -2
  22. package/dist/templates/actions/create-release.yml.tpl.d.ts.map +1 -1
  23. package/dist/templates/actions/create-release.yml.tpl.js +16 -11
  24. package/dist/templates/actions/create-release.yml.tpl.js.map +1 -1
  25. package/dist/templates/actions/create-tag.yml.tpl.d.ts +5 -2
  26. package/dist/templates/actions/create-tag.yml.tpl.d.ts.map +1 -1
  27. package/dist/templates/actions/create-tag.yml.tpl.js +13 -9
  28. package/dist/templates/actions/create-tag.yml.tpl.js.map +1 -1
  29. package/dist/templates/actions/detect-changes.yml.tpl.d.ts +17 -51
  30. package/dist/templates/actions/detect-changes.yml.tpl.d.ts.map +1 -1
  31. package/dist/templates/actions/detect-changes.yml.tpl.js +130 -110
  32. package/dist/templates/actions/detect-changes.yml.tpl.js.map +1 -1
  33. package/dist/templates/actions/manage-branch.yml.tpl.d.ts +5 -2
  34. package/dist/templates/actions/manage-branch.yml.tpl.d.ts.map +1 -1
  35. package/dist/templates/actions/manage-branch.yml.tpl.js +13 -9
  36. package/dist/templates/actions/manage-branch.yml.tpl.js.map +1 -1
  37. package/dist/templates/actions/promote-branch.yml.tpl.d.ts +5 -2
  38. package/dist/templates/actions/promote-branch.yml.tpl.d.ts.map +1 -1
  39. package/dist/templates/actions/promote-branch.yml.tpl.js +39 -92
  40. package/dist/templates/actions/promote-branch.yml.tpl.js.map +1 -1
  41. package/dist/templates/release-it.cjs.tpl.d.ts +1 -1
  42. package/dist/templates/release-it.cjs.tpl.d.ts.map +1 -1
  43. package/dist/templates/release-it.cjs.tpl.js +38 -29
  44. package/dist/templates/release-it.cjs.tpl.js.map +1 -1
  45. package/dist/templates/workflows/enforce-pr-target.yml.tpl.d.ts +1 -1
  46. package/dist/templates/workflows/enforce-pr-target.yml.tpl.d.ts.map +1 -1
  47. package/dist/templates/workflows/enforce-pr-target.yml.tpl.js +2 -3
  48. package/dist/templates/workflows/enforce-pr-target.yml.tpl.js.map +1 -1
  49. package/dist/templates/workflows/pipeline.yml.tpl.d.ts +2 -2
  50. package/dist/templates/workflows/pipeline.yml.tpl.d.ts.map +1 -1
  51. package/dist/templates/workflows/pipeline.yml.tpl.js +337 -84
  52. package/dist/templates/workflows/pipeline.yml.tpl.js.map +1 -1
  53. package/dist/templates/workflows/pr-title-check.yml.tpl.d.ts +1 -1
  54. package/dist/templates/workflows/pr-title-check.yml.tpl.d.ts.map +1 -1
  55. package/dist/templates/workflows/pr-title-check.yml.tpl.js +101 -22
  56. package/dist/templates/workflows/pr-title-check.yml.tpl.js.map +1 -1
  57. package/dist/templates/workflows/shared/index.d.ts +4 -2
  58. package/dist/templates/workflows/shared/index.d.ts.map +1 -1
  59. package/dist/templates/workflows/shared/index.js +4 -2
  60. package/dist/templates/workflows/shared/index.js.map +1 -1
  61. package/dist/templates/workflows/shared/managed-workflow.d.ts +32 -0
  62. package/dist/templates/workflows/shared/managed-workflow.d.ts.map +1 -0
  63. package/dist/templates/workflows/shared/managed-workflow.js +51 -0
  64. package/dist/templates/workflows/shared/managed-workflow.js.map +1 -0
  65. package/dist/templates/workflows/shared/operations-changes.d.ts +13 -3
  66. package/dist/templates/workflows/shared/operations-changes.d.ts.map +1 -1
  67. package/dist/templates/workflows/shared/operations-changes.js +42 -16
  68. package/dist/templates/workflows/shared/operations-changes.js.map +1 -1
  69. package/dist/templates/workflows/shared/operations-domain-jobs.d.ts +18 -1
  70. package/dist/templates/workflows/shared/operations-domain-jobs.d.ts.map +1 -1
  71. package/dist/templates/workflows/shared/operations-domain-jobs.js +142 -17
  72. package/dist/templates/workflows/shared/operations-domain-jobs.js.map +1 -1
  73. package/dist/templates/workflows/shared/operations-gate.d.ts +6 -0
  74. package/dist/templates/workflows/shared/operations-gate.d.ts.map +1 -0
  75. package/dist/templates/workflows/shared/operations-gate.js +116 -0
  76. package/dist/templates/workflows/shared/operations-gate.js.map +1 -0
  77. package/dist/templates/workflows/shared/operations-header.d.ts +11 -1
  78. package/dist/templates/workflows/shared/operations-header.d.ts.map +1 -1
  79. package/dist/templates/workflows/shared/operations-header.js +66 -7
  80. package/dist/templates/workflows/shared/operations-header.js.map +1 -1
  81. package/dist/templates/workflows/shared/operations-tag-promote.d.ts +4 -3
  82. package/dist/templates/workflows/shared/operations-tag-promote.d.ts.map +1 -1
  83. package/dist/templates/workflows/shared/operations-tag-promote.js +144 -33
  84. package/dist/templates/workflows/shared/operations-tag-promote.js.map +1 -1
  85. package/dist/templates/workflows/shared/operations-version.d.ts +3 -2
  86. package/dist/templates/workflows/shared/operations-version.d.ts.map +1 -1
  87. package/dist/templates/workflows/shared/operations-version.js +17 -16
  88. package/dist/templates/workflows/shared/operations-version.js.map +1 -1
  89. package/dist/templates/yaml-format-utils.d.ts.map +1 -1
  90. package/dist/templates/yaml-format-utils.js +1 -5
  91. package/dist/templates/yaml-format-utils.js.map +1 -1
  92. package/dist/types/index.d.ts +65 -53
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/utils/action-reference.d.ts +73 -0
  95. package/dist/utils/action-reference.d.ts.map +1 -0
  96. package/dist/utils/action-reference.js +120 -0
  97. package/dist/utils/action-reference.js.map +1 -0
  98. package/dist/utils/ast-path-operations.d.ts +3 -3
  99. package/dist/utils/ast-path-operations.d.ts.map +1 -1
  100. package/dist/utils/ast-path-operations.js +58 -17
  101. package/dist/utils/ast-path-operations.js.map +1 -1
  102. package/dist/utils/config.d.ts +16 -5
  103. package/dist/utils/config.d.ts.map +1 -1
  104. package/dist/utils/config.js +69 -12
  105. package/dist/utils/config.js.map +1 -1
  106. package/dist/utils/github-setup.d.ts +7 -7
  107. package/dist/utils/github-setup.d.ts.map +1 -1
  108. package/dist/utils/github-setup.js +84 -63
  109. package/dist/utils/github-setup.js.map +1 -1
  110. package/dist/utils/logger.d.ts.map +1 -1
  111. package/dist/utils/logger.js.map +1 -1
  112. package/dist/utils/messaging.d.ts +2 -2
  113. package/dist/utils/messaging.d.ts.map +1 -1
  114. package/dist/utils/messaging.js +12 -8
  115. package/dist/utils/messaging.js.map +1 -1
  116. package/dist/utils/preflight.d.ts +2 -2
  117. package/dist/utils/preflight.d.ts.map +1 -1
  118. package/dist/utils/preflight.js +43 -41
  119. package/dist/utils/preflight.js.map +1 -1
  120. package/dist/utils/versioning.d.ts +1 -1
  121. package/dist/utils/versioning.d.ts.map +1 -1
  122. package/dist/utils/versioning.js +10 -10
  123. package/dist/utils/versioning.js.map +1 -1
  124. package/dist/utils/workflow-semantics.d.ts +61 -0
  125. package/dist/utils/workflow-semantics.d.ts.map +1 -0
  126. package/dist/utils/workflow-semantics.js +230 -0
  127. package/dist/utils/workflow-semantics.js.map +1 -0
  128. package/package.json +12 -4
  129. package/src/generators/init.tpl.ts +275 -128
  130. package/src/generators/workflows.tpl.ts +54 -57
  131. package/dist/templates/actions/detect-changes-nx.yml.tpl.d.ts +0 -32
  132. package/dist/templates/actions/detect-changes-nx.yml.tpl.d.ts.map +0 -1
  133. package/dist/templates/actions/detect-changes-nx.yml.tpl.js +0 -227
  134. package/dist/templates/actions/detect-changes-nx.yml.tpl.js.map +0 -1
  135. package/dist/templates/workflows/pipeline-nx.yml.tpl.d.ts +0 -22
  136. package/dist/templates/workflows/pipeline-nx.yml.tpl.d.ts.map +0 -1
  137. package/dist/templates/workflows/pipeline-nx.yml.tpl.js +0 -196
  138. package/dist/templates/workflows/pipeline-nx.yml.tpl.js.map +0 -1
  139. package/dist/utils/idempotency.d.ts +0 -187
  140. package/dist/utils/idempotency.d.ts.map +0 -1
  141. package/dist/utils/idempotency.js +0 -304
  142. package/dist/utils/idempotency.js.map +0 -1
@@ -6,10 +6,11 @@
6
6
  *
7
7
  * @module templates/actions/promote-branch.yml.tpl
8
8
  */
9
- import { toFile, renderTemplate } from '@featherscloud/pinion';
10
- import fs from 'fs';
9
+ import { renderTemplate, toFile } from '@featherscloud/pinion';
11
10
  import dedent from 'dedent';
11
+ import fs from 'fs';
12
12
  import { logger } from '../../utils/logger.js';
13
+ import { getActionOutputDir, shouldGenerateActions } from '../../utils/action-reference.js';
13
14
  /**
14
15
  * Generates the promote-branch composite action YAML content.
15
16
  *
@@ -26,6 +27,9 @@ const promoteBranchActionTemplate = (ctx) => {
26
27
  description: 'Source branch to promote from (defaults to github.ref_name)'
27
28
  required: false
28
29
  default: \${{ github.ref_name }}
30
+ targetBranch:
31
+ description: 'Target branch to promote to'
32
+ required: true
29
33
  version:
30
34
  description: 'Version being promoted (e.g., v1.2.3, auto-detected from git tags if not provided)'
31
35
  required: false
@@ -34,10 +38,10 @@ const promoteBranchActionTemplate = (ctx) => {
34
38
  description: 'The original run number from develop branch for traceability'
35
39
  required: false
36
40
  default: ''
37
- configPath:
38
- description: 'Path to .pipecraftrc.json config file'
41
+ autoPromote:
42
+ description: 'Whether to automatically promote (fast-forward) to the target branch'
39
43
  required: false
40
- default: '.pipecraftrc.json'
44
+ default: 'false'
41
45
  tempBranchPattern:
42
46
  description: 'Pattern for temp branch name'
43
47
  required: false
@@ -57,12 +61,6 @@ const promoteBranchActionTemplate = (ctx) => {
57
61
  tempBranch:
58
62
  description: 'The temporary branch name'
59
63
  value: \${{ steps.create-temp.outputs.tempBranch }}
60
- targetBranch:
61
- description: 'The target branch determined from config'
62
- value: \${{ steps.read-config.outputs.targetBranch }}
63
- autoMerge:
64
- description: 'The autoMerge setting for the target branch'
65
- value: \${{ steps.read-config.outputs.autoMerge }}
66
64
 
67
65
  runs:
68
66
  using: 'composite'
@@ -73,55 +71,6 @@ const promoteBranchActionTemplate = (ctx) => {
73
71
  fetch-depth: 0
74
72
  token: \${{ inputs.token }}
75
73
 
76
- - name: Read Config and Determine Target Branch
77
- id: read-config
78
- shell: bash
79
- run: |
80
- SOURCE="\${{ inputs.sourceBranch }}"
81
- CONFIG_PATH="\${{ inputs.configPath }}"
82
-
83
- echo "📖 Reading config from \$CONFIG_PATH"
84
-
85
- # Check if config file exists
86
- if [ ! -f "\$CONFIG_PATH" ]; then
87
- echo "❌ Config file not found: \$CONFIG_PATH"
88
- exit 1
89
- fi
90
-
91
- # Read branchFlow array from config
92
- BRANCH_FLOW=\$(cat "\$CONFIG_PATH" | jq -r '.branchFlow | join(" ")')
93
- echo "🔍 Branch flow: \$BRANCH_FLOW"
94
-
95
- # Convert to array
96
- IFS=' ' read -ra BRANCHES <<< "\$BRANCH_FLOW"
97
-
98
- # Find current branch index and determine target
99
- TARGET=""
100
- for i in "\${!BRANCHES[@]}"; do
101
- if [ "\${BRANCHES[\$i]}" == "\$SOURCE" ]; then
102
- # Get next branch in flow
103
- NEXT_INDEX=\$((i + 1))
104
- if [ \$NEXT_INDEX -lt \${#BRANCHES[@]} ]; then
105
- TARGET="\${BRANCHES[\$NEXT_INDEX]}"
106
- fi
107
- break
108
- fi
109
- done
110
-
111
- if [ -z "\$TARGET" ]; then
112
- echo "❌ Could not determine target branch for source: \$SOURCE"
113
- echo " Branch flow: \$BRANCH_FLOW"
114
- exit 1
115
- fi
116
-
117
- echo "✅ Target branch: \$TARGET"
118
- echo "targetBranch=\$TARGET" >> \$GITHUB_OUTPUT
119
-
120
- # Determine autoMerge setting for target branch
121
- AUTO_MERGE=\$(cat "\$CONFIG_PATH" | jq -r ".autoMerge.\"\$TARGET\" // false")
122
- echo "🔍 Auto-merge for \$TARGET: \$AUTO_MERGE"
123
- echo "autoMerge=\$AUTO_MERGE" >> \$GITHUB_OUTPUT
124
-
125
74
  - name: Get Version
126
75
  id: get-version
127
76
  shell: bash
@@ -144,7 +93,7 @@ const promoteBranchActionTemplate = (ctx) => {
144
93
  shell: bash
145
94
  run: |
146
95
  SOURCE="\${{ inputs.sourceBranch }}"
147
- TARGET="\${{ steps.read-config.outputs.targetBranch }}"
96
+ TARGET="\${{ inputs.targetBranch }}"
148
97
  VERSION="\${{ steps.get-version.outputs.version }}"
149
98
  PATTERN="\${{ inputs.tempBranchPattern }}"
150
99
 
@@ -189,7 +138,7 @@ const promoteBranchActionTemplate = (ctx) => {
189
138
  GH_TOKEN: \${{ inputs.token }}
190
139
  run: |
191
140
  TEMP_BRANCH="\${{ steps.create-temp.outputs.tempBranch }}"
192
- TARGET="\${{ steps.read-config.outputs.targetBranch }}"
141
+ TARGET="\${{ inputs.targetBranch }}"
193
142
 
194
143
  # Check if PR already exists from temp branch to target
195
144
  EXISTING_PR=\$(gh pr list --head "\$TEMP_BRANCH" --base "\$TARGET" --json number --jq '.[0].number' 2>/dev/null || echo "")
@@ -215,15 +164,15 @@ const promoteBranchActionTemplate = (ctx) => {
215
164
  GH_TOKEN: \${{ inputs.token }}
216
165
  run: |
217
166
  TEMP_BRANCH="\${{ steps.create-temp.outputs.tempBranch }}"
218
- TARGET="\${{ steps.read-config.outputs.targetBranch }}"
167
+ TARGET="\${{ inputs.targetBranch }}"
219
168
  SOURCE="\${{ inputs.sourceBranch }}"
220
169
  VERSION="\${{ steps.get-version.outputs.version }}"
221
- AUTO_MERGE="\${{ steps.read-config.outputs.autoMerge }}"
170
+ AUTO_PROMOTE="\${{ inputs.autoPromote }}"
222
171
 
223
172
  TITLE="🚀 Release \$VERSION to \$TARGET"
224
173
 
225
174
  # Determine merge behavior text
226
- if [ "\$AUTO_MERGE" == "true" ]; then
175
+ if [ "\$AUTO_PROMOTE" == "true" ]; then
227
176
  MERGE_TEXT="merge automatically"
228
177
  else
229
178
  MERGE_TEXT="require manual approval"
@@ -257,30 +206,25 @@ const promoteBranchActionTemplate = (ctx) => {
257
206
  exit 1
258
207
  fi
259
208
 
260
- - name: Enable PR Auto-Merge with Rebase (Manual Approval Required)
261
- if: steps.read-config.outputs.autoMerge == 'false'
209
+ - name: Manual Merge Required
210
+ if: inputs.autoPromote == 'false'
262
211
  shell: bash
263
- env:
264
- GH_TOKEN: \${{ inputs.token }}
265
212
  run: |
266
213
  PR_NUMBER="\${{ steps.check-pr.outputs.prNumber || steps.create-pr.outputs.prNumber }}"
267
- TARGET="\${{ steps.read-config.outputs.targetBranch }}"
268
-
269
- echo "🔐 Enabling auto-merge with rebase for PR #\$PR_NUMBER (requires approval)"
270
- echo " This will fast-forward \$TARGET when approved, maintaining linear history"
214
+ PR_URL="\${{ steps.check-pr.outputs.prUrl || steps.create-pr.outputs.prUrl }}"
271
215
 
272
- # Enable auto-merge with rebase method (fast-forward, no merge commit)
273
- gh pr merge "\$PR_NUMBER" --auto --rebase
274
-
275
- echo "Auto-merge enabled - PR will fast-forward merge when approved"
276
- echo "⚠️ Manual approval required before merge completes"
216
+ echo "✅ PR #\$PR_NUMBER created successfully"
217
+ echo "🔗 URL: \$PR_URL"
218
+ echo ""
219
+ echo "⚠️ Auto-merge is disabled for this branch."
220
+ echo " Please review and merge the PR manually when ready."
277
221
 
278
222
  - name: Fast-Forward Merge (Immediate Auto-Merge)
279
- if: steps.read-config.outputs.autoMerge == 'true'
223
+ if: inputs.autoPromote == 'true'
280
224
  shell: bash
281
225
  run: |
282
226
  SOURCE="\${{ inputs.sourceBranch }}"
283
- TARGET="\${{ steps.read-config.outputs.targetBranch }}"
227
+ TARGET="\${{ inputs.targetBranch }}"
284
228
  VERSION="\${{ steps.get-version.outputs.version }}"
285
229
 
286
230
  echo "🚀 Fast-forwarding \$TARGET to \$SOURCE (maintaining linear history)"
@@ -314,7 +258,7 @@ const promoteBranchActionTemplate = (ctx) => {
314
258
  echo "📝 PR will be closed automatically for audit trail"
315
259
 
316
260
  - name: Wait for Branch to Propagate
317
- if: steps.read-config.outputs.autoMerge == 'true'
261
+ if: inputs.autoPromote == 'true'
318
262
  shell: bash
319
263
  run: |
320
264
  echo "⏳ Waiting 5 seconds for branch update to propagate..."
@@ -322,12 +266,12 @@ const promoteBranchActionTemplate = (ctx) => {
322
266
  echo "✅ Branch should be fully propagated"
323
267
 
324
268
  - name: Trigger Pipeline Workflow on Target Branch
325
- if: steps.read-config.outputs.autoMerge == 'true'
269
+ if: inputs.autoPromote == 'true'
326
270
  shell: bash
327
271
  env:
328
272
  GH_TOKEN: \${{ inputs.token }}
329
273
  run: |
330
- TARGET="\${{ steps.read-config.outputs.targetBranch }}"
274
+ TARGET="\${{ inputs.targetBranch }}"
331
275
  VERSION="\${{ steps.get-version.outputs.version }}"
332
276
  RUN_NUMBER="\${{ inputs.run_number }}"
333
277
 
@@ -352,7 +296,7 @@ const promoteBranchActionTemplate = (ctx) => {
352
296
  echo "✅ Pipeline workflow triggered on \$TARGET with version \$VERSION at commit \$COMMIT_SHA"
353
297
 
354
298
  - name: Close PR and Delete Branch
355
- if: steps.read-config.outputs.autoMerge == 'true'
299
+ if: inputs.autoPromote == 'true'
356
300
  shell: bash
357
301
  env:
358
302
  GH_TOKEN: \${{ inputs.token }}
@@ -383,7 +327,7 @@ const promoteBranchActionTemplate = (ctx) => {
383
327
  echo "ℹ️ Using existing PR #\$PR_NUMBER"
384
328
  echo "🔗 URL: \$PR_URL"
385
329
 
386
- # Note: Fast-forward merge happens in separate step if autoMerge is enabled
330
+ # Note: Fast-forward merge happens in separate step if autoPromote is enabled
387
331
  `;
388
332
  };
389
333
  /**
@@ -392,14 +336,17 @@ const promoteBranchActionTemplate = (ctx) => {
392
336
  * @param {PinionContext} ctx - Pinion generator context
393
337
  * @returns {Promise<PinionContext>} Updated context after file generation
394
338
  */
395
- export const generate = (ctx) => Promise.resolve(ctx)
396
- .then((ctx) => {
397
- // Check if file exists to determine merge status
398
- const filePath = '.github/actions/promote-branch/action.yml';
339
+ export const generate = (ctx) => Promise.resolve(ctx).then(ctx => {
340
+ const config = ctx.config || {};
341
+ if (!shouldGenerateActions(config)) {
342
+ logger.verbose('Skipping promote-branch action generation (using remote actions)');
343
+ return ctx;
344
+ }
345
+ const outputDir = getActionOutputDir(config);
346
+ const filePath = `${outputDir}/promote-branch/action.yml`;
399
347
  const exists = fs.existsSync(filePath);
400
348
  const status = exists ? '🔄 Merged with existing' : '📝 Created new';
401
349
  logger.verbose(`${status} ${filePath}`);
402
- return ctx;
403
- })
404
- .then(renderTemplate(promoteBranchActionTemplate, toFile('.github/actions/promote-branch/action.yml')));
350
+ return renderTemplate(promoteBranchActionTemplate, toFile(filePath))(ctx);
351
+ });
405
352
  //# sourceMappingURL=promote-branch.yml.tpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promote-branch.yml.tpl.js","sourceRoot":"","sources":["../../../src/templates/actions/promote-branch.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiB,MAAM,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC/C,OAAO,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+WZ,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACjB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;IACZ,iDAAiD;IACjD,MAAM,QAAQ,GAAG,2CAA2C,CAAA;IAC5D,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,gBAAgB,CAAA;IACpE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAA;IACvC,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC;KACD,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"promote-branch.yml.tpl.js","sourceRoot":"","sources":["../../../src/templates/actions/promote-branch.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAsB,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAG3F;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC/C,OAAO,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsTZ,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAA0D,EAAE,EAAE,CACrF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAA;IAE/B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAA;QAClF,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,GAAG,SAAS,4BAA4B,CAAA;IACzD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,gBAAgB,CAAA;IACpE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAA;IAEvC,OAAO,cAAc,CAAC,2BAA2B,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC3E,CAAC,CAAC,CAAA"}
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @module templates/release-it.cjs.tpl
14
14
  */
15
- import { PinionContext } from '@featherscloud/pinion';
15
+ import { type PinionContext } from '@featherscloud/pinion';
16
16
  /**
17
17
  * Release-It configuration generator
18
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"release-it.cjs.tpl.d.ts","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAwG7E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,iBAarC,CAAA"}
1
+ {"version":3,"file":"release-it.cjs.tpl.d.ts","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAmHlF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,iBAUrC,CAAA"}
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @module templates/release-it.cjs.tpl
14
14
  */
15
- import { toFile, renderTemplate } from '@featherscloud/pinion';
15
+ import { renderTemplate, toFile } from '@featherscloud/pinion';
16
16
  import { logger } from '../utils/logger.js';
17
17
  /**
18
18
  * Generate release-it configuration content
@@ -26,32 +26,30 @@ import { logger } from '../utils/logger.js';
26
26
  * @returns {string} JavaScript configuration content
27
27
  */
28
28
  const releaseItTemplate = (ctx) => {
29
- const bumpRules = ctx.semver?.bumpRules || {
30
- feat: 'minor',
29
+ // Base default prefixes for conventional commits
30
+ const baseDefaults = {
31
+ test: 'ignore',
32
+ build: 'ignore',
33
+ ci: 'patch',
34
+ docs: 'patch',
35
+ chore: 'minor',
36
+ style: 'patch',
31
37
  fix: 'patch',
32
- breaking: 'major'
38
+ perf: 'patch',
39
+ refactor: 'patch',
40
+ feat: 'minor',
41
+ major: 'major'
33
42
  };
34
- // Convert bump rules to release-it format
35
- const releaseItTypes = Object.entries(bumpRules).map(([type, level]) => {
36
- const releaseItLevel = level === 'major' ? 'major' :
37
- level === 'minor' ? 'minor' :
38
- level === 'patch' ? 'patch' : 'ignore';
39
- return ` ${type}: '${releaseItLevel}'`;
40
- }).join(',\n');
43
+ // Get user-defined bump rules from config
44
+ const userBumpRules = ctx.config?.semver?.bumpRules || ctx.semver?.bumpRules || {};
45
+ // Merge user rules with defaults (user rules take precedence)
46
+ const mergedRules = { ...baseDefaults, ...userBumpRules };
47
+ // Convert to formatted string for the config file
48
+ const rulesEntries = Object.entries(mergedRules)
49
+ .map(([type, level]) => ` ${type}: '${level}'`)
50
+ .join(',\n');
41
51
  return `const DEFAULT_PREFIXES = {
42
- test: 'ignore',
43
- build: 'ignore',
44
-
45
- ci: 'patch',
46
- docs: 'patch',
47
- chore: 'minor',
48
- style: 'patch',
49
- fix: 'patch',
50
- perf: 'patch',
51
- refactor: 'patch',
52
-
53
- feat: 'minor',
54
- major: 'major',
52
+ ${rulesEntries}
55
53
  }
56
54
 
57
55
  module.exports = {
@@ -72,7 +70,7 @@ module.exports = {
72
70
  "skipChecks": true
73
71
  },
74
72
  "hooks": {
75
- "after:release": "echo \${version} > .release-version"
73
+ 'after:release': "echo \${version} > .release-version"
76
74
  },
77
75
 
78
76
 
@@ -90,7 +88,16 @@ module.exports = {
90
88
  let breakings = 0
91
89
  let features = 0
92
90
  let levelSet = ['major','minor','patch','ignore']
93
- let level = Math.min.apply(Math, commits.map(commit => {
91
+
92
+ // Handle empty commits array - return null to skip release
93
+ if (!commits || commits.length === 0) {
94
+ return {
95
+ level: null,
96
+ reason: 'No commits found - skipping release'
97
+ }
98
+ }
99
+
100
+ let levels = commits.map(commit => {
94
101
  let level = levelSet.indexOf(types[commit.type])
95
102
  level = level<0?3:level
96
103
  if (commit.notes.length > 0) {
@@ -100,7 +107,9 @@ module.exports = {
100
107
  features += 1;
101
108
  }
102
109
  return level
103
- }))
110
+ })
111
+
112
+ let level = Math.min.apply(Math, levels)
104
113
  return {
105
114
  level: level,
106
115
  reason: breakings === 1
@@ -137,12 +146,12 @@ module.exports = {
137
146
  * ```
138
147
  */
139
148
  export const generate = (ctx) => Promise.resolve(ctx)
140
- .then((ctx) => {
149
+ .then(ctx => {
141
150
  logger.verbose('📝 Generating release-it configuration...');
142
151
  return ctx;
143
152
  })
144
153
  .then(renderTemplate((ctx) => releaseItTemplate(ctx), toFile('.release-it.cjs')))
145
- .then((ctx) => {
154
+ .then(ctx => {
146
155
  logger.verbose('✅ Generated .release-it.cjs');
147
156
  return ctx;
148
157
  });
@@ -1 +1 @@
1
- {"version":3,"file":"release-it.cjs.tpl.js","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAiB,MAAM,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAQ,EAAE,EAAE;IACrC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI;QACzC,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,OAAO;KAClB,CAAA;IAED,0CAA0C;IAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACrE,MAAM,cAAc,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC7B,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC5D,OAAO,iBAAiB,IAAI,MAAM,cAAc,GAAG,CAAA;IACrD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEd,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwEL,CAAA;AACJ,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACjB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;IACZ,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAC3D,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC;KACD,IAAI,CAAC,cAAc,CAClB,CAAC,GAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EACpC,MAAM,CAAC,iBAAiB,CAAC,CAC1B,CAAC;KACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;IACZ,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC7C,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"release-it.cjs.tpl.js","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsB,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAQ,EAAE,EAAE;IACrC,iDAAiD;IACjD,MAAM,YAAY,GAA2B;QAC3C,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf,CAAA;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAA;IAElF,8DAA8D;IAC9D,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,aAAa,EAAE,CAAA;IAEzD,kDAAkD;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,KAAK,GAAG,CAAC;SAC/C,IAAI,CAAC,KAAK,CAAC,CAAA;IAEd,OAAO;EACP,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsEV,CAAA;AACJ,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACjB,IAAI,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAC3D,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC;KACD,IAAI,CAAC,cAAc,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACrF,IAAI,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC7C,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,CAAA"}
@@ -26,7 +26,7 @@
26
26
  * })
27
27
  * ```
28
28
  */
29
- import { PinionContext } from '@featherscloud/pinion';
29
+ import { type PinionContext } from '@featherscloud/pinion';
30
30
  /**
31
31
  * Generates the enforce-pr-target.yml workflow file.
32
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-pr-target.yml.tpl.d.ts","sourceRoot":"","sources":["../../../src/templates/workflows/enforce-pr-target.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,iBAmCrC,CAAA"}
1
+ {"version":3,"file":"enforce-pr-target.yml.tpl.d.ts","sourceRoot":"","sources":["../../../src/templates/workflows/enforce-pr-target.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAElF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,iBAiCxC,CAAA"}
@@ -26,7 +26,7 @@
26
26
  * })
27
27
  * ```
28
28
  */
29
- import { toFile, renderTemplate } from '@featherscloud/pinion';
29
+ import { renderTemplate, toFile } from '@featherscloud/pinion';
30
30
  /**
31
31
  * Generates the enforce-pr-target.yml workflow file.
32
32
  *
@@ -49,8 +49,7 @@ import { toFile, renderTemplate } from '@featherscloud/pinion';
49
49
  * // Creates: .github/workflows/enforce-pr-target.yml
50
50
  * ```
51
51
  */
52
- export const generate = (ctx) => Promise.resolve(ctx)
53
- .then(renderTemplate((ctx) => {
52
+ export const generate = (ctx) => Promise.resolve(ctx).then(renderTemplate((ctx) => {
54
53
  const { initialBranch = 'develop', finalBranch = 'main' } = ctx;
55
54
  return `name: Enforce PR Target Branch
56
55
 
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-pr-target.yml.tpl.js","sourceRoot":"","sources":["../../../src/templates/workflows/enforce-pr-target.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAiB,MAAM,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACjB,IAAI,CAAC,cAAc,CAClB,CAAC,GAAQ,EAAE,EAAE;IACX,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,GAAG,CAAA;IAE/D,OAAO;;;;;;;;;;;kCAWmB,WAAW;;sDAES,aAAa,kBAAkB,WAAW;6DACnC,aAAa;;;;;8CAK5B,WAAW,SAAS,aAAa;;;;kCAI7C,aAAa;;0CAEL,aAAa;CACtD,CAAA;AACK,CAAC,EACD,MAAM,CAAC,yCAAyC,CAAC,CAClD,CAAC,CAAA"}
1
+ {"version":3,"file":"enforce-pr-target.yml.tpl.js","sourceRoot":"","sources":["../../../src/templates/workflows/enforce-pr-target.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAsB,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAElF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CACvB,cAAc,CAAC,CAAC,GAAQ,EAAE,EAAE;IAC1B,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,GAAG,CAAA;IAE/D,OAAO;;;;;;;;;;;kCAWqB,WAAW;;sDAES,aAAa,kBAAkB,WAAW;6DACnC,aAAa;;;;;8CAK5B,WAAW,SAAS,aAAa;;;;kCAI7C,aAAa;;0CAEL,aAAa;CACtD,CAAA;AACG,CAAC,EAAE,MAAM,CAAC,yCAAyC,CAAC,CAAC,CACtD,CAAA"}
@@ -6,8 +6,8 @@
6
6
  *
7
7
  * Uses shared operations architecture for maintainability and consistency with Nx template.
8
8
  */
9
- import { PinionContext } from '@featherscloud/pinion';
10
- import { PipecraftConfig } from '../../types/index.js';
9
+ import { type PinionContext } from '@featherscloud/pinion';
10
+ import type { PipecraftConfig } from '../../types/index.js';
11
11
  interface PathBasedPipelineContext extends PinionContext {
12
12
  config: PipecraftConfig;
13
13
  branchFlow: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.yml.tpl.d.ts","sourceRoot":"","sources":["../../../src/templates/workflows/pipeline.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAiBtD,UAAU,wBAAyB,SAAQ,aAAa;IACtD,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,wBAAwB,iBA+IoF,CAAA"}
1
+ {"version":3,"file":"pipeline.yml.tpl.d.ts","sourceRoot":"","sources":["../../../src/templates/workflows/pipeline.yml.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAGlF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAe3D,UAAU,wBAAyB,SAAQ,aAAa;IACtD,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAiKD;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,wBAAwB,iBA+RjD,CAAA"}