pipecraft 0.0.0-releaseit → 0.26.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 (183) hide show
  1. package/README.md +126 -108
  2. package/dist/cli/index.d.ts +69 -0
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +94 -22
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/generators/init.tpl.d.ts +70 -0
  7. package/dist/generators/init.tpl.d.ts.map +1 -1
  8. package/dist/generators/init.tpl.js +100 -8
  9. package/dist/generators/init.tpl.js.map +1 -1
  10. package/dist/generators/workflows.tpl.d.ts +86 -0
  11. package/dist/generators/workflows.tpl.d.ts.map +1 -1
  12. package/dist/generators/workflows.tpl.js +101 -9
  13. package/dist/generators/workflows.tpl.js.map +1 -1
  14. package/dist/templates/actions/calculate-version.yml.tpl.d.ts +47 -0
  15. package/dist/templates/actions/calculate-version.yml.tpl.d.ts.map +1 -1
  16. package/dist/templates/actions/calculate-version.yml.tpl.js +72 -3
  17. package/dist/templates/actions/calculate-version.yml.tpl.js.map +1 -1
  18. package/dist/templates/actions/create-pr.yml.tpl.d.ts +14 -0
  19. package/dist/templates/actions/create-pr.yml.tpl.d.ts.map +1 -1
  20. package/dist/templates/actions/create-pr.yml.tpl.js +22 -2
  21. package/dist/templates/actions/create-pr.yml.tpl.js.map +1 -1
  22. package/dist/templates/actions/create-release.yml.tpl.d.ts +18 -0
  23. package/dist/templates/actions/create-release.yml.tpl.d.ts.map +1 -0
  24. package/dist/templates/actions/create-release.yml.tpl.js +141 -0
  25. package/dist/templates/actions/create-release.yml.tpl.js.map +1 -0
  26. package/dist/templates/actions/create-tag.yml.tpl.d.ts +14 -0
  27. package/dist/templates/actions/create-tag.yml.tpl.d.ts.map +1 -1
  28. package/dist/templates/actions/create-tag.yml.tpl.js +22 -2
  29. package/dist/templates/actions/create-tag.yml.tpl.js.map +1 -1
  30. package/dist/templates/actions/detect-changes.yml.tpl.d.ts +70 -0
  31. package/dist/templates/actions/detect-changes.yml.tpl.d.ts.map +1 -1
  32. package/dist/templates/actions/detect-changes.yml.tpl.js +98 -2
  33. package/dist/templates/actions/detect-changes.yml.tpl.js.map +1 -1
  34. package/dist/templates/actions/manage-branch.yml.tpl.d.ts +14 -0
  35. package/dist/templates/actions/manage-branch.yml.tpl.d.ts.map +1 -1
  36. package/dist/templates/actions/manage-branch.yml.tpl.js +22 -2
  37. package/dist/templates/actions/manage-branch.yml.tpl.js.map +1 -1
  38. package/dist/templates/actions/promote-branch.yml.tpl.d.ts +14 -0
  39. package/dist/templates/actions/promote-branch.yml.tpl.d.ts.map +1 -1
  40. package/dist/templates/actions/promote-branch.yml.tpl.js +50 -7
  41. package/dist/templates/actions/promote-branch.yml.tpl.js.map +1 -1
  42. package/dist/templates/workflows/pipeline-path-based.yml.tpl.d.ts +114 -1
  43. package/dist/templates/workflows/pipeline-path-based.yml.tpl.d.ts.map +1 -1
  44. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js +479 -74
  45. package/dist/templates/workflows/pipeline-path-based.yml.tpl.js.map +1 -1
  46. package/dist/types/index.d.ts +231 -8
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/dist/types/index.js +9 -0
  49. package/dist/types/index.js.map +1 -1
  50. package/dist/utils/ast-path-operations.d.ts.map +1 -1
  51. package/dist/utils/ast-path-operations.js +24 -11
  52. package/dist/utils/ast-path-operations.js.map +1 -1
  53. package/dist/utils/config.d.ts +63 -0
  54. package/dist/utils/config.d.ts.map +1 -1
  55. package/dist/utils/config.js +71 -0
  56. package/dist/utils/config.js.map +1 -1
  57. package/dist/utils/github-setup.d.ts +323 -2
  58. package/dist/utils/github-setup.d.ts.map +1 -1
  59. package/dist/utils/github-setup.js +551 -23
  60. package/dist/utils/github-setup.js.map +1 -1
  61. package/dist/utils/idempotency.d.ts +147 -7
  62. package/dist/utils/idempotency.d.ts.map +1 -1
  63. package/dist/utils/idempotency.js +143 -15
  64. package/dist/utils/idempotency.js.map +1 -1
  65. package/dist/utils/logger.d.ts +134 -0
  66. package/dist/utils/logger.d.ts.map +1 -0
  67. package/dist/utils/logger.js +153 -0
  68. package/dist/utils/logger.js.map +1 -0
  69. package/dist/utils/preflight.d.ts +223 -12
  70. package/dist/utils/preflight.d.ts.map +1 -1
  71. package/dist/utils/preflight.js +216 -16
  72. package/dist/utils/preflight.js.map +1 -1
  73. package/dist/utils/versioning.d.ts +160 -8
  74. package/dist/utils/versioning.d.ts.map +1 -1
  75. package/dist/utils/versioning.js +179 -15
  76. package/dist/utils/versioning.js.map +1 -1
  77. package/package.json +26 -5
  78. package/.claude/settings.local.json +0 -35
  79. package/.github/actions/calculate-version/action.yml +0 -106
  80. package/.github/actions/create-pr/action.yml +0 -122
  81. package/.github/actions/create-release/action.yml +0 -74
  82. package/.github/actions/create-tag/action.yml +0 -94
  83. package/.github/actions/detect-changes/action.yml +0 -62
  84. package/.github/actions/manage-branch/action.yml +0 -113
  85. package/.github/actions/promote-branch/action.yml +0 -352
  86. package/.github/example/workflows/job.analyze.code.yml +0 -26
  87. package/.github/example/workflows/job.analyze.docker.yml +0 -32
  88. package/.github/example/workflows/job.app.api.deploy.yml +0 -127
  89. package/.github/example/workflows/job.app.api.test.yml +0 -102
  90. package/.github/example/workflows/job.app.docs.deploy.yml +0 -40
  91. package/.github/example/workflows/job.app.docs.test.yml +0 -50
  92. package/.github/example/workflows/job.app.web.deploy.yml +0 -96
  93. package/.github/example/workflows/job.app.web.test.yml +0 -49
  94. package/.github/example/workflows/job.changes.yml +0 -82
  95. package/.github/example/workflows/job.create-pr.yml +0 -96
  96. package/.github/example/workflows/job.env-check.yml +0 -43
  97. package/.github/example/workflows/job.fast-forward.yml +0 -103
  98. package/.github/example/workflows/job.lint.yml +0 -64
  99. package/.github/example/workflows/job.pr-name.yml +0 -70
  100. package/.github/example/workflows/job.pr-squash-name.yml +0 -27
  101. package/.github/example/workflows/job.tag.yml +0 -38
  102. package/.github/example/workflows/job.version.yml +0 -99
  103. package/.github/example/workflows/lib.plugin-base.publish.yml +0 -59
  104. package/.github/example/workflows/pipe.yml +0 -178
  105. package/.github/example/workflows/scripts/fastforward.sh +0 -51
  106. package/.github/example/workflows/scripts/pipe-cleaner.sh +0 -70
  107. package/.github/scripts/fastforward.sh +0 -51
  108. package/.github/scripts/pipe-cleaner.sh +0 -70
  109. package/.github/workflows/pipeline.yml +0 -220
  110. package/.github/workflows/pr-title-check.yml +0 -70
  111. package/.github/workflows/publish.yml +0 -39
  112. package/.pipecraftrc.json +0 -78
  113. package/.release-it.cjs +0 -71
  114. package/PIPELINE_TESTING_PLAN.md +0 -499
  115. package/TRUNK_FLOW_PLAN.md +0 -401
  116. package/assets/logo_banner.png +0 -0
  117. package/assets/logo_banner.webp +0 -0
  118. package/docs/USER_JOURNEY_ERRORS.md +0 -352
  119. package/eslint.config.js +0 -77
  120. package/examples/basic-config.json +0 -41
  121. package/examples/monorepo-config.json +0 -49
  122. package/examples/usage.md +0 -289
  123. package/scripts/debug-workflows.sh +0 -339
  124. package/scripts/parse-pipeline.js +0 -29
  125. package/scripts/test-job-order.cjs +0 -140
  126. package/scripts/validate-pipeline.cjs +0 -379
  127. package/scripts/verify-job-order.sh +0 -30
  128. package/src/cli/index.ts +0 -414
  129. package/src/generators/init.tpl.ts +0 -126
  130. package/src/generators/workflows.tpl.ts +0 -80
  131. package/src/templates/actions/calculate-version.yml.tpl.ts +0 -124
  132. package/src/templates/actions/create-pr.yml.tpl.ts +0 -147
  133. package/src/templates/actions/create-tag.yml.tpl.ts +0 -112
  134. package/src/templates/actions/detect-changes.yml.tpl.ts +0 -87
  135. package/src/templates/actions/manage-branch.yml.tpl.ts +0 -132
  136. package/src/templates/actions/promote-branch.yml.tpl.ts +0 -364
  137. package/src/templates/workflows/pipeline-path-based.yml.tpl.ts +0 -706
  138. package/src/types/index.ts +0 -64
  139. package/src/utils/README-ast-path-operations.md +0 -390
  140. package/src/utils/ast-path-operations.ts +0 -581
  141. package/src/utils/config.ts +0 -64
  142. package/src/utils/github-setup.ts +0 -558
  143. package/src/utils/idempotency.ts +0 -215
  144. package/src/utils/preflight.ts +0 -306
  145. package/src/utils/versioning.ts +0 -244
  146. package/tests/README.md +0 -229
  147. package/tests/TEST_STRUCTURE.md +0 -256
  148. package/tests/act/run-act-tests.sh +0 -345
  149. package/tests/debugging/debug-utils.ts +0 -538
  150. package/tests/debugging/debug-workflow.test.ts +0 -339
  151. package/tests/debugging/debug-workflows.sh +0 -339
  152. package/tests/debugging/iterative-debug.ts +0 -652
  153. package/tests/debugging/run-debug-tests.sh +0 -431
  154. package/tests/fixtures/basic-config.json +0 -51
  155. package/tests/fixtures/invalid-config.json +0 -9
  156. package/tests/fixtures/pipeline-generated.yml +0 -235
  157. package/tests/fixtures/pipeline-preserve-comments.yml +0 -245
  158. package/tests/fixtures/pipeline-user-modified.yml +0 -245
  159. package/tests/fixtures/test-config.json +0 -58
  160. package/tests/github-live/README.md +0 -250
  161. package/tests/github-local/JOB_WORKFLOW_TESTS.md +0 -296
  162. package/tests/github-local/README.md +0 -240
  163. package/tests/github-local/run-all-tests.sh +0 -422
  164. package/tests/github-local/test-job-workflows.sh +0 -631
  165. package/tests/github-local/test-pipeline-workflow.sh +0 -440
  166. package/tests/integration/generators.test.ts +0 -578
  167. package/tests/integration/path-based-template.test.ts +0 -510
  168. package/tests/integration/simple-path-based.test.ts +0 -415
  169. package/tests/setup.ts +0 -56
  170. package/tests/unit/ast-path-operations-extended.test.ts +0 -302
  171. package/tests/unit/cli.test.ts +0 -541
  172. package/tests/unit/config-extended.test.ts +0 -412
  173. package/tests/unit/config.test.ts +0 -152
  174. package/tests/unit/github-setup.test.ts +0 -189
  175. package/tests/unit/idempotency-isolated.test.ts +0 -297
  176. package/tests/unit/job-order.test.ts +0 -157
  177. package/tests/unit/pipeline-path-based.test.ts +0 -511
  178. package/tests/unit/validate-pipeline.test.ts +0 -384
  179. package/tests/unit/versioning-extended.test.ts +0 -279
  180. package/tests/unit/versioning.test.ts +0 -241
  181. package/tsconfig.debug.json +0 -17
  182. package/tsconfig.json +0 -28
  183. package/vitest.config.ts +0 -51
@@ -1,70 +0,0 @@
1
- name: "PR Title Format Check"
2
-
3
- on:
4
- pull_request_target:
5
- types:
6
- - opened
7
- - edited
8
- - synchronize
9
- - reopened
10
- pull_request:
11
- types:
12
- - opened
13
- - edited
14
- - synchronize
15
- - reopened
16
-
17
- permissions:
18
- pull-requests: read
19
-
20
- jobs:
21
- main:
22
- name: Validate PR title
23
- runs-on: ubuntu-latest
24
- steps:
25
- - uses: amannn/action-semantic-pull-request@v5
26
- id: lint_pr_title
27
- env:
28
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
- with:
30
- # Configure which types are allowed (newline-delimited).
31
- # Default: https://github.com/commitizen/conventional-commit-types
32
- types: |
33
- fix
34
- feat
35
- docs
36
- style
37
- chore
38
- refactor
39
- perf
40
- test
41
- ci
42
- build
43
- revert
44
- major
45
- requireScope: false
46
-
47
-
48
- - uses: marocchino/sticky-pull-request-comment@v2
49
- # When the previous steps fails, the workflow would stop. By adding this
50
- # condition you can continue the execution with the populated error message.
51
- if: always() && (steps.lint_pr_title.outputs.error_message != null)
52
- with:
53
- header: pr-title-lint-error
54
- message: |
55
- Hey there and thank you for opening this pull request! 👋🏼
56
-
57
- We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted.
58
-
59
- Details:
60
-
61
- ```
62
- ${{ steps.lint_pr_title.outputs.error_message }}
63
- ```
64
-
65
- # Delete a previous comment when the issue has been resolved
66
- - if: ${{ steps.lint_pr_title.outputs.error_message == null }}
67
- uses: marocchino/sticky-pull-request-comment@v2
68
- with:
69
- header: pr-title-lint-error
70
- delete: true
@@ -1,39 +0,0 @@
1
- name: Publish to npm
2
-
3
- on:
4
- release:
5
- types: [published]
6
- workflow_dispatch:
7
- inputs:
8
- tag:
9
- description: 'Release tag to publish (e.g., v1.2.3)'
10
- required: true
11
- type: string
12
-
13
- permissions:
14
- contents: read
15
- id-token: write # Required for OIDC
16
-
17
- jobs:
18
- publish:
19
- runs-on: ubuntu-latest
20
- steps:
21
- - uses: actions/checkout@v4
22
- with:
23
- ref: ${{ github.event.release.tag_name || inputs.tag }}
24
-
25
- - uses: actions/setup-node@v4
26
- with:
27
- node-version: 22
28
- registry-url: 'https://registry.npmjs.org'
29
-
30
- - name: Install dependencies
31
- run: npm ci
32
-
33
- - name: Build package
34
- run: npm run build
35
-
36
- - name: Publish to npm
37
- run: npm publish --provenance --access public
38
- env:
39
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/.pipecraftrc.json DELETED
@@ -1,78 +0,0 @@
1
- {
2
- "ciProvider": "github",
3
- "mergeStrategy": "fast-forward",
4
- "requireConventionalCommits": true,
5
- "initialBranch": "develop",
6
- "finalBranch": "main",
7
- "branchFlow": [
8
- "develop",
9
- "staging",
10
- "main"
11
- ],
12
- "autoMerge": {
13
- "staging": true,
14
- "main": true
15
- },
16
- "semver": {
17
- "bumpRules": {
18
- "feat": "minor",
19
- "fix": "patch",
20
- "breaking": "major"
21
- }
22
- },
23
- "actions": {
24
- "onDevelopMerge": [
25
- "runTests",
26
- "fastForwardToStaging"
27
- ],
28
- "onStagingMerge": [
29
- "runTests",
30
- "calculateVersion",
31
- "createOrFastForwardToMain"
32
- ]
33
- },
34
- "domains": {
35
- "core": {
36
- "paths": [
37
- "src/**"
38
- ],
39
- "test": true,
40
- "deploy": true,
41
- "remoteTest": true,
42
- "description": "PipeCraft core changes"
43
- },
44
- "test": {
45
- "paths": [
46
- "tests/**"
47
- ],
48
- "test": true,
49
- "description": "PipeCraft test changes"
50
- },
51
- "cicd": {
52
- "paths": [
53
- ".github/**"
54
- ],
55
- "test": true,
56
- "description": "PipeCraft CI/CD changes"
57
- }
58
- },
59
- "versioning": {
60
- "enabled": true,
61
- "releaseItConfig": ".release-it.cjs",
62
- "conventionalCommits": true,
63
- "autoTag": true,
64
- "autoPush": false,
65
- "changelog": true,
66
- "bumpRules": {
67
- "feat": "minor",
68
- "fix": "patch",
69
- "breaking": "major"
70
- }
71
- },
72
- "rebuild": {
73
- "enabled": true,
74
- "skipIfUnchanged": true,
75
- "forceRegenerate": false,
76
- "cacheFile": ".pipecraft-cache.json"
77
- }
78
- }
package/.release-it.cjs DELETED
@@ -1,71 +0,0 @@
1
- module.exports = {
2
- "git": {
3
- "requireCleanWorkingDir": false,
4
- "commit": false,
5
- "pushArgs": ["--tags"],
6
- "tagMatch": "v[0-9]*.[0-9]*.[0-9]*" // Required to exclude non-versioning tags
7
- },
8
- "github": {
9
- "release": true,
10
- "releaseName": "Release ${version}"
11
- },
12
- "npm": {
13
- "ignoreVersion": true,
14
- "publish": false,
15
- "skipChecks": true
16
- },
17
- "hooks": {
18
- "after:release": "echo ${version} > .release-version"
19
- },
20
-
21
-
22
- "plugins": {
23
- "@release-it/conventional-changelog": {
24
- "whatBump": (commits,options)=>{
25
- let defaults = {
26
- test: 'ignore',
27
- build: 'ignore',
28
-
29
- ci: 'patch',
30
- docs: 'patch',
31
- chore: 'minor',
32
- style: 'patch',
33
- fix: 'patch',
34
- perf: 'patch',
35
- refactor: 'patch',
36
-
37
- feat: 'minor',
38
- major: 'major',
39
- }
40
-
41
- let types = (options?.preset?.types || [])
42
- .reduce((a, v) => {
43
- return { ...a, [v.type]: v.release}
44
- }, {})
45
-
46
- types = Object.assign({},defaults,types)
47
- let breakings = 0
48
- let features = 0
49
- let levelSet = ['major','minor','patch','ignore']
50
- let level = Math.min.apply(Math, commits.map(commit => {
51
- let level = levelSet.indexOf(types[commit.type])
52
- level = level<0?3:level
53
- if (commit.notes.length > 0) {
54
- breakings += commit.notes.length
55
- }
56
- if(commit.type === 'feat'){
57
- features += 1;
58
- }
59
- return level
60
- }))
61
- return {
62
- level: level,
63
- reason: breakings === 1
64
- ? `There is ${breakings} BREAKING CHANGE and ${features} features`
65
- : `There are ${breakings} BREAKING CHANGES and ${features} features`
66
- }
67
- },
68
- }
69
- }
70
- }
71
-