@invarn/cibuild 2.9.4 → 2.9.7

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 (547) hide show
  1. package/dist/chunk-35SI42CD.mjs +1 -0
  2. package/dist/chunk-IC45KVLJ.mjs +1 -0
  3. package/dist/chunk-XDY4V23V.mjs +1 -0
  4. package/dist/cli.cjs +14 -14
  5. package/dist/commands.mjs +1 -0
  6. package/dist/lib.mjs +3934 -0
  7. package/package.json +6 -10
  8. package/dist/src/cli.d.ts +0 -3
  9. package/dist/src/cli.d.ts.map +0 -1
  10. package/dist/src/cli.js +0 -399
  11. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts +0 -38
  12. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts.map +0 -1
  13. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.js +0 -222
  14. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts +0 -41
  15. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts.map +0 -1
  16. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.js +0 -324
  17. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts +0 -2
  18. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts.map +0 -1
  19. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.js +0 -382
  20. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts +0 -29
  21. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts.map +0 -1
  22. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.js +0 -160
  23. package/dist/src/commands/android-gms-guard.test.d.ts +0 -9
  24. package/dist/src/commands/android-gms-guard.test.d.ts.map +0 -1
  25. package/dist/src/commands/android-gms-guard.test.js +0 -78
  26. package/dist/src/commands/android-java-version.test.d.ts +0 -12
  27. package/dist/src/commands/android-java-version.test.d.ts.map +0 -1
  28. package/dist/src/commands/android-java-version.test.js +0 -209
  29. package/dist/src/commands/android-scanner-java.test.d.ts +0 -2
  30. package/dist/src/commands/android-scanner-java.test.d.ts.map +0 -1
  31. package/dist/src/commands/android-scanner-java.test.js +0 -130
  32. package/dist/src/commands/android-scanner.d.ts +0 -250
  33. package/dist/src/commands/android-scanner.d.ts.map +0 -1
  34. package/dist/src/commands/android-scanner.js +0 -1639
  35. package/dist/src/commands/build.d.ts +0 -215
  36. package/dist/src/commands/build.d.ts.map +0 -1
  37. package/dist/src/commands/build.js +0 -1433
  38. package/dist/src/commands/build.test.d.ts +0 -13
  39. package/dist/src/commands/build.test.d.ts.map +0 -1
  40. package/dist/src/commands/build.test.js +0 -121
  41. package/dist/src/commands/detect-platform.d.ts +0 -13
  42. package/dist/src/commands/detect-platform.d.ts.map +0 -1
  43. package/dist/src/commands/detect-platform.js +0 -51
  44. package/dist/src/commands/detect-project.d.ts +0 -7
  45. package/dist/src/commands/detect-project.d.ts.map +0 -1
  46. package/dist/src/commands/detect-project.js +0 -12
  47. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts +0 -26
  48. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts.map +0 -1
  49. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.js +0 -196
  50. package/dist/src/commands/edit.d.ts +0 -12
  51. package/dist/src/commands/edit.d.ts.map +0 -1
  52. package/dist/src/commands/edit.js +0 -652
  53. package/dist/src/commands/edit.test.d.ts +0 -6
  54. package/dist/src/commands/edit.test.d.ts.map +0 -1
  55. package/dist/src/commands/edit.test.js +0 -45
  56. package/dist/src/commands/fidelity-trim.d.ts +0 -13
  57. package/dist/src/commands/fidelity-trim.d.ts.map +0 -1
  58. package/dist/src/commands/fidelity-trim.js +0 -21
  59. package/dist/src/commands/fidelity-trim.test.d.ts +0 -8
  60. package/dist/src/commands/fidelity-trim.test.d.ts.map +0 -1
  61. package/dist/src/commands/fidelity-trim.test.js +0 -79
  62. package/dist/src/commands/file-secret-collector.d.ts +0 -50
  63. package/dist/src/commands/file-secret-collector.d.ts.map +0 -1
  64. package/dist/src/commands/file-secret-collector.js +0 -217
  65. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts +0 -38
  66. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts.map +0 -1
  67. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.js +0 -300
  68. package/dist/src/commands/github-workflow.d.ts +0 -5
  69. package/dist/src/commands/github-workflow.d.ts.map +0 -1
  70. package/dist/src/commands/github-workflow.js +0 -45
  71. package/dist/src/commands/index.d.ts +0 -33
  72. package/dist/src/commands/index.d.ts.map +0 -1
  73. package/dist/src/commands/index.js +0 -33
  74. package/dist/src/commands/init.d.ts +0 -20
  75. package/dist/src/commands/init.d.ts.map +0 -1
  76. package/dist/src/commands/init.js +0 -264
  77. package/dist/src/commands/ios-scanner.d.ts +0 -104
  78. package/dist/src/commands/ios-scanner.d.ts.map +0 -1
  79. package/dist/src/commands/ios-scanner.js +0 -492
  80. package/dist/src/commands/ios-scheme-ranking.test.d.ts +0 -2
  81. package/dist/src/commands/ios-scheme-ranking.test.d.ts.map +0 -1
  82. package/dist/src/commands/ios-scheme-ranking.test.js +0 -264
  83. package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts +0 -30
  84. package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts.map +0 -1
  85. package/dist/src/commands/local-properties-reaches-every-workflow.test.js +0 -146
  86. package/dist/src/commands/reset.d.ts +0 -7
  87. package/dist/src/commands/reset.d.ts.map +0 -1
  88. package/dist/src/commands/reset.js +0 -81
  89. package/dist/src/commands/run.d.ts +0 -22
  90. package/dist/src/commands/run.d.ts.map +0 -1
  91. package/dist/src/commands/run.js +0 -141
  92. package/dist/src/commands/secrets-sync-workflow.d.ts +0 -15
  93. package/dist/src/commands/secrets-sync-workflow.d.ts.map +0 -1
  94. package/dist/src/commands/secrets-sync-workflow.js +0 -255
  95. package/dist/src/commands/secrets-upload.d.ts +0 -21
  96. package/dist/src/commands/secrets-upload.d.ts.map +0 -1
  97. package/dist/src/commands/secrets-upload.js +0 -177
  98. package/dist/src/commands/secrets-upload.test.d.ts +0 -5
  99. package/dist/src/commands/secrets-upload.test.d.ts.map +0 -1
  100. package/dist/src/commands/secrets-upload.test.js +0 -60
  101. package/dist/src/commands/validate.d.ts +0 -10
  102. package/dist/src/commands/validate.d.ts.map +0 -1
  103. package/dist/src/commands/validate.js +0 -46
  104. package/dist/src/config.d.ts +0 -3
  105. package/dist/src/config.d.ts.map +0 -1
  106. package/dist/src/config.js +0 -47
  107. package/dist/src/envman/cli.d.ts +0 -21
  108. package/dist/src/envman/cli.d.ts.map +0 -1
  109. package/dist/src/envman/cli.js +0 -240
  110. package/dist/src/envman/envman.d.ts +0 -83
  111. package/dist/src/envman/envman.d.ts.map +0 -1
  112. package/dist/src/envman/envman.js +0 -361
  113. package/dist/src/envman/envman.test.d.ts +0 -5
  114. package/dist/src/envman/envman.test.d.ts.map +0 -1
  115. package/dist/src/envman/envman.test.js +0 -236
  116. package/dist/src/envman/envstore-round-trip.test.d.ts +0 -27
  117. package/dist/src/envman/envstore-round-trip.test.d.ts.map +0 -1
  118. package/dist/src/envman/envstore-round-trip.test.js +0 -130
  119. package/dist/src/envman/index.d.ts +0 -23
  120. package/dist/src/envman/index.d.ts.map +0 -1
  121. package/dist/src/envman/index.js +0 -23
  122. package/dist/src/envman/shim.d.ts +0 -16
  123. package/dist/src/envman/shim.d.ts.map +0 -1
  124. package/dist/src/envman/shim.js +0 -66
  125. package/dist/src/envman/types.d.ts +0 -55
  126. package/dist/src/envman/types.d.ts.map +0 -1
  127. package/dist/src/envman/types.js +0 -12
  128. package/dist/src/lib.d.ts +0 -33
  129. package/dist/src/lib.d.ts.map +0 -1
  130. package/dist/src/lib.js +0 -37
  131. package/dist/src/pipeline.d.ts +0 -3
  132. package/dist/src/pipeline.d.ts.map +0 -1
  133. package/dist/src/pipeline.js +0 -57
  134. package/dist/src/runner-node-step.test.d.ts +0 -12
  135. package/dist/src/runner-node-step.test.d.ts.map +0 -1
  136. package/dist/src/runner-node-step.test.js +0 -61
  137. package/dist/src/runner.d.ts +0 -31
  138. package/dist/src/runner.d.ts.map +0 -1
  139. package/dist/src/runner.js +0 -240
  140. package/dist/src/shared/detect-project.d.ts +0 -57
  141. package/dist/src/shared/detect-project.d.ts.map +0 -1
  142. package/dist/src/shared/detect-project.js +0 -219
  143. package/dist/src/shared/detect-project.test.d.ts +0 -2
  144. package/dist/src/shared/detect-project.test.d.ts.map +0 -1
  145. package/dist/src/shared/detect-project.test.js +0 -161
  146. package/dist/src/shared/git.d.ts +0 -25
  147. package/dist/src/shared/git.d.ts.map +0 -1
  148. package/dist/src/shared/git.js +0 -53
  149. package/dist/src/shared/git.test.d.ts +0 -9
  150. package/dist/src/shared/git.test.d.ts.map +0 -1
  151. package/dist/src/shared/git.test.js +0 -66
  152. package/dist/src/shared/gitignore.d.ts +0 -6
  153. package/dist/src/shared/gitignore.d.ts.map +0 -1
  154. package/dist/src/shared/gitignore.js +0 -26
  155. package/dist/src/shared/gradle-settings.d.ts +0 -49
  156. package/dist/src/shared/gradle-settings.d.ts.map +0 -1
  157. package/dist/src/shared/gradle-settings.js +0 -138
  158. package/dist/src/shared/gradle-settings.test.d.ts +0 -2
  159. package/dist/src/shared/gradle-settings.test.d.ts.map +0 -1
  160. package/dist/src/shared/gradle-settings.test.js +0 -65
  161. package/dist/src/shared/prompts.d.ts +0 -30
  162. package/dist/src/shared/prompts.d.ts.map +0 -1
  163. package/dist/src/shared/prompts.js +0 -121
  164. package/dist/src/shared/xcode-container.test.d.ts +0 -2
  165. package/dist/src/shared/xcode-container.test.d.ts.map +0 -1
  166. package/dist/src/shared/xcode-container.test.js +0 -123
  167. package/dist/src/step-marker.d.ts +0 -12
  168. package/dist/src/step-marker.d.ts.map +0 -1
  169. package/dist/src/step-marker.js +0 -29
  170. package/dist/src/step-marker.test.d.ts +0 -11
  171. package/dist/src/step-marker.test.d.ts.map +0 -1
  172. package/dist/src/step-marker.test.js +0 -45
  173. package/dist/src/types.d.ts +0 -58
  174. package/dist/src/types.d.ts.map +0 -1
  175. package/dist/src/types.js +0 -2
  176. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts +0 -28
  177. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts.map +0 -1
  178. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.js +0 -223
  179. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts +0 -20
  180. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts.map +0 -1
  181. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.js +0 -201
  182. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts +0 -37
  183. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts.map +0 -1
  184. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.js +0 -255
  185. package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts +0 -32
  186. package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts.map +0 -1
  187. package/dist/src/yaml/a-missing-credential-is-loud.test.js +0 -301
  188. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts +0 -18
  189. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts.map +0 -1
  190. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.js +0 -66
  191. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts +0 -34
  192. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts.map +0 -1
  193. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.js +0 -218
  194. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts +0 -27
  195. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts.map +0 -1
  196. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.js +0 -126
  197. package/dist/src/yaml/bitrise-compat.d.ts +0 -65
  198. package/dist/src/yaml/bitrise-compat.d.ts.map +0 -1
  199. package/dist/src/yaml/bitrise-compat.js +0 -206
  200. package/dist/src/yaml/bitrise-compat.test.d.ts +0 -5
  201. package/dist/src/yaml/bitrise-compat.test.d.ts.map +0 -1
  202. package/dist/src/yaml/bitrise-compat.test.js +0 -347
  203. package/dist/src/yaml/cache-key-missing-file.test.d.ts +0 -12
  204. package/dist/src/yaml/cache-key-missing-file.test.d.ts.map +0 -1
  205. package/dist/src/yaml/cache-key-missing-file.test.js +0 -116
  206. package/dist/src/yaml/converter.d.ts +0 -103
  207. package/dist/src/yaml/converter.d.ts.map +0 -1
  208. package/dist/src/yaml/converter.js +0 -420
  209. package/dist/src/yaml/converter.test.d.ts +0 -5
  210. package/dist/src/yaml/converter.test.d.ts.map +0 -1
  211. package/dist/src/yaml/converter.test.js +0 -548
  212. package/dist/src/yaml/e2e.test.d.ts +0 -6
  213. package/dist/src/yaml/e2e.test.d.ts.map +0 -1
  214. package/dist/src/yaml/e2e.test.js +0 -446
  215. package/dist/src/yaml/env-resolver.d.ts +0 -218
  216. package/dist/src/yaml/env-resolver.d.ts.map +0 -1
  217. package/dist/src/yaml/env-resolver.js +0 -591
  218. package/dist/src/yaml/env-resolver.test.d.ts +0 -5
  219. package/dist/src/yaml/env-resolver.test.d.ts.map +0 -1
  220. package/dist/src/yaml/env-resolver.test.js +0 -502
  221. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts +0 -16
  222. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts.map +0 -1
  223. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.js +0 -126
  224. package/dist/src/yaml/fidelity-input-digest.d.ts +0 -37
  225. package/dist/src/yaml/fidelity-input-digest.d.ts.map +0 -1
  226. package/dist/src/yaml/fidelity-input-digest.js +0 -208
  227. package/dist/src/yaml/fidelity-input-digest.test.d.ts +0 -2
  228. package/dist/src/yaml/fidelity-input-digest.test.d.ts.map +0 -1
  229. package/dist/src/yaml/fidelity-input-digest.test.js +0 -167
  230. package/dist/src/yaml/fidelity-manifest.d.ts +0 -126
  231. package/dist/src/yaml/fidelity-manifest.d.ts.map +0 -1
  232. package/dist/src/yaml/fidelity-manifest.js +0 -134
  233. package/dist/src/yaml/fidelity-manifest.test.d.ts +0 -12
  234. package/dist/src/yaml/fidelity-manifest.test.d.ts.map +0 -1
  235. package/dist/src/yaml/fidelity-manifest.test.js +0 -251
  236. package/dist/src/yaml/interactive-prompts.d.ts +0 -71
  237. package/dist/src/yaml/interactive-prompts.d.ts.map +0 -1
  238. package/dist/src/yaml/interactive-prompts.js +0 -260
  239. package/dist/src/yaml/meta-helpers.d.ts +0 -28
  240. package/dist/src/yaml/meta-helpers.d.ts.map +0 -1
  241. package/dist/src/yaml/meta-helpers.js +0 -46
  242. package/dist/src/yaml/missing-env-handler.d.ts +0 -45
  243. package/dist/src/yaml/missing-env-handler.d.ts.map +0 -1
  244. package/dist/src/yaml/missing-env-handler.js +0 -64
  245. package/dist/src/yaml/parser.d.ts +0 -33
  246. package/dist/src/yaml/parser.d.ts.map +0 -1
  247. package/dist/src/yaml/parser.js +0 -148
  248. package/dist/src/yaml/parser.test.d.ts +0 -5
  249. package/dist/src/yaml/parser.test.d.ts.map +0 -1
  250. package/dist/src/yaml/parser.test.js +0 -83
  251. package/dist/src/yaml/pipeline-with-secrets.d.ts +0 -25
  252. package/dist/src/yaml/pipeline-with-secrets.d.ts.map +0 -1
  253. package/dist/src/yaml/pipeline-with-secrets.js +0 -76
  254. package/dist/src/yaml/platform-detector.d.ts +0 -83
  255. package/dist/src/yaml/platform-detector.d.ts.map +0 -1
  256. package/dist/src/yaml/platform-detector.js +0 -189
  257. package/dist/src/yaml/platform-detector.test.d.ts +0 -5
  258. package/dist/src/yaml/platform-detector.test.d.ts.map +0 -1
  259. package/dist/src/yaml/platform-detector.test.js +0 -525
  260. package/dist/src/yaml/preflight-validation.d.ts +0 -29
  261. package/dist/src/yaml/preflight-validation.d.ts.map +0 -1
  262. package/dist/src/yaml/preflight-validation.js +0 -21
  263. package/dist/src/yaml/secrets-manager.d.ts +0 -87
  264. package/dist/src/yaml/secrets-manager.d.ts.map +0 -1
  265. package/dist/src/yaml/secrets-manager.js +0 -230
  266. package/dist/src/yaml/shell-assignments.d.ts +0 -40
  267. package/dist/src/yaml/shell-assignments.d.ts.map +0 -1
  268. package/dist/src/yaml/shell-assignments.js +0 -77
  269. package/dist/src/yaml/step-validator-check-failure.test.d.ts +0 -24
  270. package/dist/src/yaml/step-validator-check-failure.test.d.ts.map +0 -1
  271. package/dist/src/yaml/step-validator-check-failure.test.js +0 -130
  272. package/dist/src/yaml/step-validator-self-assigned.test.d.ts +0 -23
  273. package/dist/src/yaml/step-validator-self-assigned.test.d.ts.map +0 -1
  274. package/dist/src/yaml/step-validator-self-assigned.test.js +0 -191
  275. package/dist/src/yaml/step-validator.d.ts +0 -67
  276. package/dist/src/yaml/step-validator.d.ts.map +0 -1
  277. package/dist/src/yaml/step-validator.js +0 -466
  278. package/dist/src/yaml/step-validator.test.d.ts +0 -18
  279. package/dist/src/yaml/step-validator.test.d.ts.map +0 -1
  280. package/dist/src/yaml/step-validator.test.js +0 -140
  281. package/dist/src/yaml/steps/android-sign.d.ts +0 -35
  282. package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
  283. package/dist/src/yaml/steps/android-sign.js +0 -147
  284. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
  285. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
  286. package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
  287. package/dist/src/yaml/steps/android-version.d.ts +0 -26
  288. package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
  289. package/dist/src/yaml/steps/android-version.js +0 -128
  290. package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
  291. package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
  292. package/dist/src/yaml/steps/android-version.test.js +0 -196
  293. package/dist/src/yaml/steps/android.d.ts +0 -156
  294. package/dist/src/yaml/steps/android.d.ts.map +0 -1
  295. package/dist/src/yaml/steps/android.js +0 -1084
  296. package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
  297. package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
  298. package/dist/src/yaml/steps/app-store-deploy.js +0 -167
  299. package/dist/src/yaml/steps/base.d.ts +0 -263
  300. package/dist/src/yaml/steps/base.d.ts.map +0 -1
  301. package/dist/src/yaml/steps/base.js +0 -380
  302. package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
  303. package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
  304. package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
  305. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
  306. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
  307. package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
  308. package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
  309. package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
  310. package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
  311. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
  312. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
  313. package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
  314. package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
  315. package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
  316. package/dist/src/yaml/steps/bitrise-slack.js +0 -280
  317. package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
  318. package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
  319. package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
  320. package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
  321. package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
  322. package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
  323. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
  324. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
  325. package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
  326. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
  327. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
  328. package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
  329. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
  330. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
  331. package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
  332. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
  333. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
  334. package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
  335. package/dist/src/yaml/steps/cache.d.ts +0 -59
  336. package/dist/src/yaml/steps/cache.d.ts.map +0 -1
  337. package/dist/src/yaml/steps/cache.js +0 -1027
  338. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
  339. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  341. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  342. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  344. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  345. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  347. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  348. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  350. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  351. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  353. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  354. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  356. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  357. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/fastlane.js +0 -79
  359. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  360. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  362. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  363. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  365. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  366. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  368. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  369. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  371. package/dist/src/yaml/steps/file.d.ts +0 -52
  372. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/file.js +0 -108
  374. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  375. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/flutter.js +0 -215
  377. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  378. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  380. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  381. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/git-clone.js +0 -171
  383. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  384. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  386. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  387. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  389. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  390. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  392. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  393. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  395. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  396. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  398. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
  399. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/gradle-memory.js +0 -311
  401. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  402. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/gradle-memory.test.js +0 -297
  404. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  405. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  407. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  408. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  410. package/dist/src/yaml/steps/index.d.ts +0 -10
  411. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/index.js +0 -1461
  413. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  414. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/ios-deps.js +0 -279
  416. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  417. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  419. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  420. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/ios-signing.js +0 -144
  422. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  423. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-version.js +0 -151
  425. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  426. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  428. package/dist/src/yaml/steps/linting.d.ts +0 -47
  429. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/linting.js +0 -148
  431. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  432. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/phase2.test.js +0 -197
  434. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  435. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/phase3.test.js +0 -144
  437. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  438. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/phase4.test.js +0 -166
  440. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  441. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/phase5.test.js +0 -263
  443. package/dist/src/yaml/steps/registry.d.ts +0 -88
  444. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/registry.js +0 -125
  446. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  447. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/registry.test.js +0 -235
  449. package/dist/src/yaml/steps/release.d.ts +0 -50
  450. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/release.js +0 -154
  452. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  453. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  455. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  456. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  458. package/dist/src/yaml/steps/script.d.ts +0 -23
  459. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/script.js +0 -63
  461. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  462. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  464. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  465. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/steps.test.js +0 -881
  467. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  468. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  470. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  471. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  473. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  474. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/test-config.js +0 -25
  476. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  477. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  479. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  480. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/trim-align.js +0 -367
  482. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  483. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  485. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  486. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  488. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  489. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  491. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  492. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  494. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  495. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  497. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  498. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  500. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  501. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  503. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  504. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  506. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  507. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  509. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  510. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  512. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  513. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  515. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  516. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -253
  518. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  519. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  521. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  522. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  524. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  525. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  527. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  528. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  530. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  531. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  533. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  534. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  536. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  537. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode.js +0 -1340
  539. package/dist/src/yaml/types.d.ts +0 -76
  540. package/dist/src/yaml/types.d.ts.map +0 -1
  541. package/dist/src/yaml/types.js +0 -5
  542. package/dist/src/yaml/validation-types.d.ts +0 -102
  543. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  544. package/dist/src/yaml/validation-types.js +0 -8
  545. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  546. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  547. package/dist/src/yaml/yaml-updater.js +0 -128
@@ -1,130 +0,0 @@
1
- /**
2
- * A build whose HEAD commit has a multi-line message completes every step.
3
- *
4
- * This is the regression that started the whole thread. On 2026-08-30 the first
5
- * real `invarn setup` proof died of it: `git-clone` publishes the commit body,
6
- * and every step after it failed loading the envstore —
7
- *
8
- * [step_2] Running: cache-pull
9
- * …: line 59: export: `value nothing provides.': not a valid identifier
10
- * ✗ Pipeline failed: Step "Install CocoaPods" failed with exit code 1
11
- *
12
- * `src/yaml/steps/envstore-loader.test.ts` drives the *reader* with hostile
13
- * content written by hand, which is the right shape for the defect but stops
14
- * short of the thing that actually happened: the value came out of a real
15
- * repository, through a real producer. This closes that gap — a real
16
- * `git commit`, the real `git-clone` step reading it with `git log -1
17
- * --format=%b`, the real `envman` writer (`envmanShellFunction`, the same
18
- * bytes the runner prepends to every script step), and the real reader in the
19
- * next step's preamble.
20
- *
21
- * The fixture's commit message carries both consequences the PRD names, because
22
- * they need different bytes to surface: a line that is *not* a valid assignment
23
- * (which killed the step) and a line that *is* one (which let the commit's
24
- * author set `PATH` for every step after it).
25
- */
26
- import { describe, test, expect, beforeAll, afterAll } from '@jest/globals';
27
- import { execFileSync, spawnSync } from 'child_process';
28
- import { mkdtempSync, readFileSync, mkdirSync, rmSync, writeFileSync, existsSync } from 'fs';
29
- import { join } from 'path';
30
- import { tmpdir } from 'os';
31
- import { envmanShellFunction } from './shim.js';
32
- import { GitCloneStepExecutor } from '../yaml/steps/git-clone.js';
33
- import { ScriptStepExecutor } from '../yaml/steps/script.js';
34
- import { testConfigNoPeer } from '../yaml/steps/test-config.js';
35
- const SUBJECT = 'Add Invarn pipeline';
36
- /**
37
- * Three lines and a blank one. Line 2 is not a valid assignment; line 4 is.
38
- * `git log --format=%b` emits a trailing newline that `$( )` strips, so the
39
- * expected value below carries none.
40
- */
41
- const BODY = [
42
- 'cibuild sets CIBUILD_GIT_BRANCH, so pre-execution validation asked for a',
43
- 'value nothing provides.',
44
- '',
45
- 'PATH=/tmp/attacker-controlled',
46
- ].join('\n');
47
- describe('a multi-line commit message, from the repository to the next step', () => {
48
- let repoDir;
49
- let envstorePath;
50
- let captureDir;
51
- beforeAll(() => {
52
- repoDir = mkdtempSync(join(tmpdir(), 'envstore-round-trip-'));
53
- envstorePath = join(repoDir, '.ci', '.envstore.json');
54
- captureDir = join(repoDir, 'captured');
55
- mkdirSync(captureDir, { recursive: true });
56
- writeFileSync(join(repoDir, 'README.md'), 'fixture\n', 'utf-8');
57
- const git = (...args) => {
58
- execFileSync('git', args, { cwd: repoDir, stdio: 'ignore' });
59
- };
60
- git('init', '-b', 'main');
61
- git('config', 'user.name', 'CI Build Tests');
62
- git('config', 'user.email', 'cibuild-tests@example.com');
63
- git('config', 'commit.gpgsign', 'false');
64
- git('add', '.');
65
- git('commit', '-m', `${SUBJECT}\n\n${BODY}`);
66
- });
67
- afterAll(() => {
68
- rmSync(repoDir, { recursive: true, force: true });
69
- });
70
- /**
71
- * Runs one generated step the way the runner does: the envman shell function
72
- * prepended, bash, the envstore path in the environment so it survives the
73
- * `cd` the step does.
74
- */
75
- function runStep(script) {
76
- const scriptPath = join(repoDir, '__step.sh');
77
- writeFileSync(scriptPath, envmanShellFunction() + script, 'utf-8');
78
- const proc = spawnSync('bash', [scriptPath], {
79
- cwd: repoDir,
80
- encoding: 'utf-8',
81
- env: {
82
- ...process.env,
83
- ENVMAN_ENVSTORE_PATH: envstorePath,
84
- CAPTURE_DIR: captureDir,
85
- },
86
- });
87
- return { status: proc.status, stdout: proc.stdout ?? '', stderr: proc.stderr ?? '' };
88
- }
89
- function captured(name) {
90
- const file = join(captureDir, name);
91
- return existsSync(file) ? readFileSync(file, 'utf-8') : undefined;
92
- }
93
- test('git-clone publishes the commit body without dying on it', async () => {
94
- const { script } = await new GitCloneStepExecutor().execute({}, {}, testConfigNoPeer);
95
- const run = runStep(script);
96
- expect(run.status).toBe(0);
97
- expect(run.stdout).toContain(`Message: ${SUBJECT}`);
98
- // The envstore is what the next step reads, so it has to exist and to hold
99
- // the body as data rather than as three more records.
100
- const store = JSON.parse(readFileSync(envstorePath, 'utf-8'));
101
- expect(store.envs.find(e => e.key === 'GIT_CLONE_COMMIT_MESSAGE_BODY')?.value).toBe(BODY);
102
- expect(store.envs.map(e => e.key)).not.toContain('PATH');
103
- });
104
- test('the next step loads it, completes, and is not reconfigured by it', async () => {
105
- // Runs after git-clone above: the envstore on disk is the real one that
106
- // step wrote.
107
- const { script } = await new ScriptStepExecutor().execute({
108
- content: [
109
- `printf '%s' "\${GIT_CLONE_COMMIT_MESSAGE_BODY-}" > "$CAPTURE_DIR/body"`,
110
- `printf '%s' "\${GIT_CLONE_COMMIT_MESSAGE_SUBJECT-}" > "$CAPTURE_DIR/subject"`,
111
- `printf '%s' "$PATH" > "$CAPTURE_DIR/path"`,
112
- 'echo step-completed',
113
- ].join('\n'),
114
- }, {}, testConfigNoPeer);
115
- const run = runStep(script);
116
- // "Completes every step" — the whole acceptance criterion, and what the
117
- // production build could not do.
118
- expect(run.status).toBe(0);
119
- expect(run.stdout).toContain('step-completed');
120
- expect(run.stderr).not.toContain('not a valid identifier');
121
- // Correctness: byte for byte, internal blank line and all.
122
- expect(captured('body')).toBe(BODY);
123
- expect(captured('subject')).toBe(SUBJECT);
124
- // Security: the commit's author does not get to choose PATH. Compared
125
- // against what the parent process held, which is what "unchanged" means.
126
- expect(captured('path')).toBe(process.env.PATH ?? '');
127
- expect(captured('path')).not.toContain('/tmp/attacker-controlled');
128
- });
129
- });
130
- //# sourceMappingURL=envstore-round-trip.test.js.map
@@ -1,23 +0,0 @@
1
- /**
2
- * CI Build Environment Variable Manager (envman)
3
- *
4
- * A tool for managing environment variables between CI/CD pipeline steps.
5
- * Similar to Bitrise's envman, this allows scripts to register outputs
6
- * that subsequent steps can use as environment variables.
7
- *
8
- * @example
9
- * // In a script step:
10
- * // envman add --key BUILD_VERSION --value '1.2.3'
11
- * // envman add --key APK_PATH --valuefile ./build/output/path.txt
12
- *
13
- * @example
14
- * // Programmatic usage:
15
- * import { add, getAll, run } from './envman/index.js';
16
- *
17
- * add({ key: 'BUILD_VERSION', value: '1.2.3' });
18
- * const envs = getAll();
19
- * await run(['gradle', 'assembleRelease']);
20
- */
21
- export * from './envman.js';
22
- export * from './types.js';
23
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/envman/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * CI Build Environment Variable Manager (envman)
3
- *
4
- * A tool for managing environment variables between CI/CD pipeline steps.
5
- * Similar to Bitrise's envman, this allows scripts to register outputs
6
- * that subsequent steps can use as environment variables.
7
- *
8
- * @example
9
- * // In a script step:
10
- * // envman add --key BUILD_VERSION --value '1.2.3'
11
- * // envman add --key APK_PATH --valuefile ./build/output/path.txt
12
- *
13
- * @example
14
- * // Programmatic usage:
15
- * import { add, getAll, run } from './envman/index.js';
16
- *
17
- * add({ key: 'BUILD_VERSION', value: '1.2.3' });
18
- * const envs = getAll();
19
- * await run(['gradle', 'assembleRelease']);
20
- */
21
- export * from './envman.js';
22
- export * from './types.js';
23
- //# sourceMappingURL=index.js.map
@@ -1,16 +0,0 @@
1
- /**
2
- * The `envman` shell function prepended to every script step.
3
- *
4
- * Steps call `envman add --key K --value V` to publish a value to the steps
5
- * after them. This is a bash function rather than a call to the `ci` binary
6
- * because pkg-built binaries mishandle subcommands — so the writer half of the
7
- * envstore contract is generated bash, exactly like the reader half in
8
- * `createBashScript`.
9
- *
10
- * Lives in its own module so a test can run the *same bytes production runs*
11
- * against a real producer, rather than a copy that can drift from it. The
12
- * reader is driven directly in `src/yaml/steps/envstore-loader.test.ts`; the
13
- * pair is exercised end to end in `src/envman/envstore-round-trip.test.ts`.
14
- */
15
- export declare function envmanShellFunction(): string;
16
- //# sourceMappingURL=shim.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shim.d.ts","sourceRoot":"","sources":["../../../src/envman/shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkD5C"}
@@ -1,66 +0,0 @@
1
- /**
2
- * The `envman` shell function prepended to every script step.
3
- *
4
- * Steps call `envman add --key K --value V` to publish a value to the steps
5
- * after them. This is a bash function rather than a call to the `ci` binary
6
- * because pkg-built binaries mishandle subcommands — so the writer half of the
7
- * envstore contract is generated bash, exactly like the reader half in
8
- * `createBashScript`.
9
- *
10
- * Lives in its own module so a test can run the *same bytes production runs*
11
- * against a real producer, rather than a copy that can drift from it. The
12
- * reader is driven directly in `src/yaml/steps/envstore-loader.test.ts`; the
13
- * pair is exercised end to end in `src/envman/envstore-round-trip.test.ts`.
14
- */
15
- export function envmanShellFunction() {
16
- return `envman() {
17
- local cmd="$1"; shift
18
- local store="\${ENVMAN_ENVSTORE_PATH:-.ci/.envstore.json}"
19
- case "$cmd" in
20
- add)
21
- local key="" value="" valuefile="" sensitive=false skipifempty=false append=false
22
- while [ $# -gt 0 ]; do
23
- case "$1" in
24
- --key|-k) key="$2"; shift 2 ;;
25
- --value|-v) value="$2"; shift 2 ;;
26
- --valuefile|-f) valuefile="$2"; shift 2 ;;
27
- --sensitive|-s) sensitive=true; shift ;;
28
- --skip-if-empty) skipifempty=true; shift ;;
29
- --append|-a) append=true; shift ;;
30
- *) shift ;;
31
- esac
32
- done
33
- [ -z "$key" ] && { echo "envman add: --key required" >&2; return 1; }
34
- if [ -n "$valuefile" ]; then
35
- value="$(cat "$valuefile")"
36
- elif [ -z "$value" ] && ! [ -t 0 ]; then
37
- value="$(cat)"
38
- fi
39
- [ "$skipifempty" = true ] && [ -z "$value" ] && return 0
40
- node -e '
41
- const fs=require("fs");
42
- const f=process.argv[1], k=process.argv[2], v=process.argv[3];
43
- const s=process.argv[4]==="true", a=process.argv[5]==="true";
44
- let store={envs:[]};
45
- try{store=JSON.parse(fs.readFileSync(f,"utf-8"))}catch{}
46
- const idx=store.envs.findIndex(e=>e.key===k);
47
- if(a && idx>=0){store.envs[idx].value+=v}
48
- else if(idx>=0){store.envs[idx].value=v;store.envs[idx].sensitive=s}
49
- else{store.envs.push({key:k,value:v,sensitive:s})}
50
- fs.mkdirSync(require("path").dirname(f),{recursive:true});
51
- fs.writeFileSync(f,JSON.stringify(store,null,2));
52
- ' "$store" "$key" "$value" "$sensitive" "$append"
53
- echo "envman: $key set"
54
- ;;
55
- init)
56
- node -e 'const fs=require("fs");const f=process.argv[1];fs.mkdirSync(require("path").dirname(f),{recursive:true});fs.writeFileSync(f,JSON.stringify({envs:[]},null,2))' "$store"
57
- ;;
58
- *)
59
- echo "envman: unknown command: $cmd" >&2; return 1
60
- ;;
61
- esac
62
- }
63
- export -f envman
64
- `;
65
- }
66
- //# sourceMappingURL=shim.js.map
@@ -1,55 +0,0 @@
1
- /**
2
- * Type definitions for the CI Build Environment Variable Manager (envman)
3
- */
4
- /**
5
- * A single environment variable entry in the store
6
- */
7
- export interface EnvEntry {
8
- key: string;
9
- value: string;
10
- sensitive?: boolean;
11
- createdAt: string;
12
- updatedAt: string;
13
- }
14
- /**
15
- * The environment variable store structure
16
- */
17
- export interface EnvStore {
18
- version: string;
19
- envs: EnvEntry[];
20
- }
21
- /**
22
- * Options for adding an environment variable
23
- */
24
- export interface AddOptions {
25
- key: string;
26
- value?: string;
27
- valueFile?: string;
28
- sensitive?: boolean;
29
- skipIfEmpty?: boolean;
30
- append?: boolean;
31
- }
32
- /**
33
- * Options for running a command with environment variables
34
- */
35
- export interface RunOptions {
36
- command: string[];
37
- expandEnvs?: boolean;
38
- }
39
- /**
40
- * Result of an envman operation
41
- */
42
- export interface EnvmanResult {
43
- success: boolean;
44
- message?: string;
45
- error?: string;
46
- }
47
- /**
48
- * Default store file name
49
- */
50
- export declare const DEFAULT_STORE_FILE = ".envstore.json";
51
- /**
52
- * Current store version
53
- */
54
- export declare const STORE_VERSION = "1.0.0";
55
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/envman/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Type definitions for the CI Build Environment Variable Manager (envman)
3
- */
4
- /**
5
- * Default store file name
6
- */
7
- export const DEFAULT_STORE_FILE = '.envstore.json';
8
- /**
9
- * Current store version
10
- */
11
- export const STORE_VERSION = '1.0.0';
12
- //# sourceMappingURL=types.js.map
package/dist/src/lib.d.ts DELETED
@@ -1,33 +0,0 @@
1
- /**
2
- * @invarn/cibuild library API
3
- *
4
- * Programmatic access to cibuild pipeline parsing, conversion, and execution.
5
- * This is the non-interactive library surface — no prompts, no TTY dependencies.
6
- *
7
- * Usage:
8
- * import {
9
- * loadYAMLPipeline,
10
- * convertYAMLToPipelineDef,
11
- * PipelineRunner,
12
- * loadConfig,
13
- * } from '@invarn/cibuild/lib';
14
- */
15
- import './yaml/steps/index.js';
16
- export { PipelineRunner, StepExecutionError } from './runner.js';
17
- export { loadConfig } from './config.js';
18
- export { loadYAMLPipeline, getWorkflowNames, hasWorkflow, YAMLParseError, YAMLValidationError, } from './yaml/parser.js';
19
- export { loadFidelityManifest, parseFidelityManifest, buildSurfaceDispatchInputs, FidelityManifestError, } from './yaml/fidelity-manifest.js';
20
- export type { FidelityManifest, FidelitySurface, FidelityState, StateReference, ReferenceProvenance, BaselineEntry, SurfaceDispatchInputs, } from './yaml/fidelity-manifest.js';
21
- export { convertYAMLToPipelineDef, getAvailableWorkflows, YAMLConversionError, } from './yaml/converter.js';
22
- export type { ConversionResult } from './yaml/converter.js';
23
- export { pipeline } from './pipeline.js';
24
- export { renderUiFidelityPreview } from './yaml/steps/ui-fidelity-preview.js';
25
- export type { UiFidelityPreviewOptions, UiFidelityPreviewScreen, UiFidelityPreviewResult, UiFidelityPreviewScreenResult, UiFidelityPreviewDimensions, } from './yaml/steps/ui-fidelity-preview.js';
26
- export { renderUiFidelityPreviewAndroid, ANDROID_TOOLCHAIN_MISSING, } from './yaml/steps/ui-fidelity-preview-android.js';
27
- export type { UiFidelityPreviewAndroidOptions } from './yaml/steps/ui-fidelity-preview-android.js';
28
- export { getStepExecutor, hasStep, getAvailableSteps, registerStep, getStepMetadata, } from './yaml/steps/registry.js';
29
- export type { StepDef, PipelineDef, CIConfig, PipelineFactory, PipelineContext, StepBuilders, } from './types.js';
30
- export type { StepExecutor, StepMetadata, StepPlatform, StepExecutionContext, } from './yaml/steps/base.js';
31
- export type { YAMLPipeline, YAMLWorkflow, YAMLStep, YAMLStepInputs, YAMLEnvVar, YAMLApp, YAMLMeta, ParsedStep, PlatformInfo, Platform, MachineType, } from './yaml/types.js';
32
- export { MissingEnvironmentVariableError } from './yaml/env-resolver.js';
33
- //# sourceMappingURL=lib.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,uBAAuB,CAAC;AAI/B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,6CAA6C,CAAC;AACrD,YAAY,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAInG,OAAO,EACL,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC;AAIpB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAI9B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/src/lib.js DELETED
@@ -1,37 +0,0 @@
1
- /**
2
- * @invarn/cibuild library API
3
- *
4
- * Programmatic access to cibuild pipeline parsing, conversion, and execution.
5
- * This is the non-interactive library surface — no prompts, no TTY dependencies.
6
- *
7
- * Usage:
8
- * import {
9
- * loadYAMLPipeline,
10
- * convertYAMLToPipelineDef,
11
- * PipelineRunner,
12
- * loadConfig,
13
- * } from '@invarn/cibuild/lib';
14
- */
15
- // Side-effect: initialize the step registry (registers all step executors).
16
- // Must run before any convertYAMLToPipelineDef call.
17
- import './yaml/steps/index.js';
18
- // ─── Runner ─────────────────────────────────────────────────────────────
19
- export { PipelineRunner, StepExecutionError } from './runner.js';
20
- // ─── Config ─────────────────────────────────────────────────────────────
21
- export { loadConfig } from './config.js';
22
- // ─── YAML parser ────────────────────────────────────────────────────────
23
- export { loadYAMLPipeline, getWorkflowNames, hasWorkflow, YAMLParseError, YAMLValidationError, } from './yaml/parser.js';
24
- // ─── UI fidelity manifest ───────────────────────────────────────────────
25
- export { loadFidelityManifest, parseFidelityManifest, buildSurfaceDispatchInputs, FidelityManifestError, } from './yaml/fidelity-manifest.js';
26
- // ─── YAML converter (non-interactive) ───────────────────────────────────
27
- export { convertYAMLToPipelineDef, getAvailableWorkflows, YAMLConversionError, } from './yaml/converter.js';
28
- // ─── Pipeline DSL factory ───────────────────────────────────────────────
29
- export { pipeline } from './pipeline.js';
30
- // ─── UI fidelity local preview ──────────────────────────────────────────
31
- export { renderUiFidelityPreview } from './yaml/steps/ui-fidelity-preview.js';
32
- export { renderUiFidelityPreviewAndroid, ANDROID_TOOLCHAIN_MISSING, } from './yaml/steps/ui-fidelity-preview-android.js';
33
- // ─── Step registry ──────────────────────────────────────────────────────
34
- export { getStepExecutor, hasStep, getAvailableSteps, registerStep, getStepMetadata, } from './yaml/steps/registry.js';
35
- // ─── Error types ────────────────────────────────────────────────────────
36
- export { MissingEnvironmentVariableError } from './yaml/env-resolver.js';
37
- //# sourceMappingURL=lib.js.map
@@ -1,3 +0,0 @@
1
- import type { PipelineFactory } from "./types.js";
2
- export declare const pipeline: PipelineFactory;
3
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8C,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9F,eAAO,MAAM,QAAQ,EAAE,eAmEtB,CAAC"}
@@ -1,57 +0,0 @@
1
- export const pipeline = (name, builder) => {
2
- const def = {
3
- name,
4
- artifacts: [],
5
- steps: [],
6
- stepsOrder: [],
7
- };
8
- const stepBuilders = {
9
- script(name, options) {
10
- def.steps.push({
11
- id: options.id,
12
- name,
13
- kind: "script",
14
- shell: options.shell,
15
- script: options.script,
16
- });
17
- },
18
- python(name, options) {
19
- def.steps.push({
20
- id: options.id,
21
- name,
22
- kind: "python",
23
- script: options.script,
24
- });
25
- },
26
- ruby(name, options) {
27
- def.steps.push({
28
- id: options.id,
29
- name,
30
- kind: "ruby",
31
- script: options.script,
32
- });
33
- },
34
- node(name, options) {
35
- def.steps.push({
36
- id: options.id,
37
- name,
38
- kind: "node",
39
- script: options.script,
40
- });
41
- },
42
- };
43
- const pipelineContext = {
44
- artifacts(paths) {
45
- def.artifacts = paths;
46
- },
47
- steps(builder) {
48
- builder(stepBuilders);
49
- },
50
- stepsOrder(ids) {
51
- def.stepsOrder = ids;
52
- },
53
- };
54
- builder(pipelineContext);
55
- return def;
56
- };
57
- //# sourceMappingURL=pipeline.js.map
@@ -1,12 +0,0 @@
1
- /**
2
- * Node-kind step execution must ride a temp script FILE, never `node -e`.
3
- *
4
- * The released `ci` binary is pkg-built. pkg's bootstrap intercepts child
5
- * spawns of `node` and re-executes the pkg binary itself — and that
6
- * bootstrap cannot handle `-e`: it resolves it as an entrypoint path and
7
- * dies with `Cannot find module '<cwd>/-e'` before the script runs. A
8
- * real file path works under both a system node and the pkg bootstrap,
9
- * exactly like bash steps already do via their temp-file pattern.
10
- */
11
- export {};
12
- //# sourceMappingURL=runner-node-step.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner-node-step.test.d.ts","sourceRoot":"","sources":["../../src/runner-node-step.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Node-kind step execution must ride a temp script FILE, never `node -e`.
3
- *
4
- * The released `ci` binary is pkg-built. pkg's bootstrap intercepts child
5
- * spawns of `node` and re-executes the pkg binary itself — and that
6
- * bootstrap cannot handle `-e`: it resolves it as an entrypoint path and
7
- * dies with `Cannot find module '<cwd>/-e'` before the script runs. A
8
- * real file path works under both a system node and the pkg bootstrap,
9
- * exactly like bash steps already do via their temp-file pattern.
10
- */
11
- import { describe, test, expect, afterEach } from '@jest/globals';
12
- import { mkdtempSync, readFileSync, rmSync } from 'node:fs';
13
- import { tmpdir } from 'node:os';
14
- import { join } from 'node:path';
15
- import { PipelineRunner, StepExecutionError } from './runner.js';
16
- import { loadConfig } from './config.js';
17
- function nodeStep(script) {
18
- return {
19
- id: 'step_test',
20
- name: 'node-under-test',
21
- kind: 'node',
22
- script,
23
- };
24
- }
25
- describe('PipelineRunner node-kind steps', () => {
26
- let outDir = null;
27
- afterEach(() => {
28
- if (outDir)
29
- rmSync(outDir, { recursive: true, force: true });
30
- outDir = null;
31
- });
32
- test('executes the script from a file: argv[1] is a real path, never -e', async () => {
33
- outDir = mkdtempSync(join(tmpdir(), 'cibuild-node-step-'));
34
- const probePath = join(outDir, 'probe.json');
35
- const runner = new PipelineRunner(loadConfig('/nonexistent/ci.config.json'));
36
- await runner.runStep(nodeStep(`require('fs').writeFileSync(${JSON.stringify(probePath)}, JSON.stringify({` +
37
- `argv1: process.argv[1] ?? null,` +
38
- `filename: typeof __filename === 'string' ? __filename : null` +
39
- `}))`));
40
- const probe = JSON.parse(readFileSync(probePath, 'utf-8'));
41
- // `node -e` leaves argv[1] undefined and has no __filename; a
42
- // file-executed script has both, and neither may be the literal '-e'.
43
- expect(probe.argv1).not.toBeNull();
44
- expect(probe.argv1).not.toBe('-e');
45
- expect(probe.filename).not.toBeNull();
46
- expect(probe.filename).toMatch(/\.cjs$/);
47
- });
48
- test('propagates a non-zero exit as StepExecutionError', async () => {
49
- const runner = new PipelineRunner(loadConfig('/nonexistent/ci.config.json'));
50
- await expect(runner.runStep(nodeStep('process.exit(3)'))).rejects.toThrow(StepExecutionError);
51
- });
52
- test('cleans up the temp script file after the step exits', async () => {
53
- outDir = mkdtempSync(join(tmpdir(), 'cibuild-node-step-'));
54
- const probePath = join(outDir, 'probe.json');
55
- const runner = new PipelineRunner(loadConfig('/nonexistent/ci.config.json'));
56
- await runner.runStep(nodeStep(`require('fs').writeFileSync(${JSON.stringify(probePath)}, JSON.stringify({ filename: __filename }))`));
57
- const { filename } = JSON.parse(readFileSync(probePath, 'utf-8'));
58
- expect(() => readFileSync(filename)).toThrow();
59
- });
60
- });
61
- //# sourceMappingURL=runner-node-step.test.js.map
@@ -1,31 +0,0 @@
1
- import type { StepDef, PipelineDef, CIConfig } from "./types.js";
2
- import type { CheckoutWitness } from "./yaml/converter.js";
3
- export declare class StepExecutionError extends Error {
4
- stepId: string;
5
- stepName: string;
6
- exitCode: number;
7
- constructor(stepId: string, stepName: string, exitCode: number);
8
- }
9
- export declare class PipelineRunner {
10
- private config;
11
- constructor(config: CIConfig);
12
- runStep(step: StepDef, stepNumber?: number): Promise<void>;
13
- private formatDuration;
14
- validatePipeline(pipeline: PipelineDef): void;
15
- displayWarnings(warnings: string[], skippedSteps: number): void;
16
- /**
17
- * The commit this build compiled, printed under the banner.
18
- *
19
- * Every build carries it, whatever steps it declares. The dashboard's sha is
20
- * the one that was *dispatched*; this one was read off the disk the compiler
21
- * is about to read, and it is what a later argument about which code shipped
22
- * has to be settled against. It used to live only in `git-clone`'s echo,
23
- * which is optional and no longer in the curated templates.
24
- *
25
- * Labels match that echo's on purpose — where both appear they are the same
26
- * three facts, and they have to agree.
27
- */
28
- displayCheckout(checkout: CheckoutWitness): void;
29
- runPipeline(pipeline: PipelineDef, warnings?: string[], skippedSteps?: number, checkout?: CheckoutWitness): Promise<void>;
30
- }
31
- //# sourceMappingURL=runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,qBAAa,kBAAmB,SAAQ,KAAK;IAElC,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,MAAM;gBAFhB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;CAK1B;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAE9B,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiHhE,OAAO,CAAC,cAAc;IAYtB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAwB7C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAc/D;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO1C,WAAW,CACf,QAAQ,EAAE,WAAW,EACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;CA+CjB"}