@invarn/cibuild 2.9.5 → 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 (553) 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 -1092
  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/capture-injection.d.ts +0 -30
  339. package/dist/src/yaml/steps/capture-injection.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/capture-injection.js +0 -88
  341. package/dist/src/yaml/steps/capture-injection.test.d.ts +0 -2
  342. package/dist/src/yaml/steps/capture-injection.test.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/capture-injection.test.js +0 -163
  344. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
  345. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  347. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  348. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  350. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  351. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  353. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  354. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  356. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  357. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  359. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  360. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  362. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  363. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/fastlane.js +0 -79
  365. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  366. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  368. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  369. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  371. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  372. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  374. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  375. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  377. package/dist/src/yaml/steps/file.d.ts +0 -52
  378. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/file.js +0 -108
  380. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  381. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/flutter.js +0 -215
  383. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  384. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  386. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  387. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-clone.js +0 -171
  389. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  390. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  392. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  393. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  395. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  396. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  398. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  399. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  401. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  402. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  404. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
  405. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/gradle-memory.js +0 -386
  407. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  408. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-memory.test.js +0 -344
  410. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  411. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  413. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  414. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  416. package/dist/src/yaml/steps/index.d.ts +0 -10
  417. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/index.js +0 -1461
  419. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  420. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/ios-deps.js +0 -279
  422. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  423. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  425. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  426. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/ios-signing.js +0 -144
  428. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  429. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/ios-version.js +0 -151
  431. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  432. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  434. package/dist/src/yaml/steps/linting.d.ts +0 -47
  435. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/linting.js +0 -148
  437. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  438. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/phase2.test.js +0 -197
  440. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  441. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/phase3.test.js +0 -144
  443. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  444. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/phase4.test.js +0 -166
  446. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  447. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/phase5.test.js +0 -263
  449. package/dist/src/yaml/steps/registry.d.ts +0 -88
  450. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/registry.js +0 -125
  452. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  453. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/registry.test.js +0 -235
  455. package/dist/src/yaml/steps/release.d.ts +0 -50
  456. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/release.js +0 -154
  458. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  459. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  461. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  462. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  464. package/dist/src/yaml/steps/script.d.ts +0 -23
  465. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/script.js +0 -63
  467. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  468. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  470. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  471. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/steps.test.js +0 -881
  473. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  474. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  476. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  477. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  479. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  480. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/test-config.js +0 -25
  482. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  483. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  485. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  486. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/trim-align.js +0 -367
  488. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  489. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  491. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  492. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  494. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  495. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  497. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  498. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  500. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  501. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  503. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  504. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  506. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  507. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  509. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  510. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  512. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  513. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  515. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  516. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  518. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  519. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  521. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  522. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -279
  524. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  525. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  527. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  528. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  530. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  531. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  533. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  534. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  536. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  537. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  539. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  540. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  541. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  542. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  543. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  544. package/dist/src/yaml/steps/xcode.js +0 -1350
  545. package/dist/src/yaml/types.d.ts +0 -76
  546. package/dist/src/yaml/types.d.ts.map +0 -1
  547. package/dist/src/yaml/types.js +0 -5
  548. package/dist/src/yaml/validation-types.d.ts +0 -102
  549. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  550. package/dist/src/yaml/validation-types.js +0 -8
  551. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  552. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  553. package/dist/src/yaml/yaml-updater.js +0 -128
@@ -1,240 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { dirname, join, resolve } from "node:path";
3
- import { unlinkSync, existsSync, writeFileSync, chmodSync, mkdtempSync, rmSync, mkdirSync } from "node:fs";
4
- import { tmpdir } from "node:os";
5
- import { envmanShellFunction } from "./envman/shim.js";
6
- import { formatStepMarker, shouldEmitStepMarker } from "./step-marker.js";
7
- // Use absolute path for envstore so it works regardless of cd in scripts
8
- const ENVMAN_ENVSTORE_PATH = resolve(process.cwd(), ".ci", ".envstore.json");
9
- export class StepExecutionError extends Error {
10
- stepId;
11
- stepName;
12
- exitCode;
13
- constructor(stepId, stepName, exitCode) {
14
- super(`Step "${stepName}" failed with exit code ${exitCode}`);
15
- this.stepId = stepId;
16
- this.stepName = stepName;
17
- this.exitCode = exitCode;
18
- this.name = "StepExecutionError";
19
- }
20
- }
21
- export class PipelineRunner {
22
- config;
23
- constructor(config) {
24
- this.config = config;
25
- }
26
- async runStep(step, stepNumber) {
27
- // Emit the INVARN_STEP marker before any other output so the
28
- // dashboard's step-progress parser sees a step boundary even when
29
- // the step's own logs are silent. Pairs with the parser at
30
- // `lib/shared/step-progress.ts` in the Invarn repo. `stepNumber`
31
- // is optional to keep `runStep` backward-compatible for direct
32
- // callers (lib consumers) that don't run inside a pipeline loop.
33
- //
34
- // Gated on INVARN_RUNNER=1: cibuild is a public npm package
35
- // (@invarn/cibuild) and must not leak Invarn's log-parsing protocol
36
- // into external users' stdout. The Invarn runner opts in by exporting
37
- // the var into the sandbox; see cibuild-runner/src/runner.ts.
38
- if (stepNumber != null && shouldEmitStepMarker()) {
39
- console.log(formatStepMarker(stepNumber, step.name));
40
- }
41
- console.log(`\n[${step.id}] Running: ${step.name}`);
42
- console.log("─".repeat(60));
43
- const startTime = Date.now();
44
- return new Promise((resolve, reject) => {
45
- let cmd;
46
- let args;
47
- let tmpScriptPath;
48
- switch (step.kind) {
49
- case "script":
50
- // Write script to a temporary file to avoid issues with nested command substitutions
51
- // when passing complex scripts via -c
52
- cmd = step.shell ?? this.config.interpreters.bash;
53
- try {
54
- const tmpDir = mkdtempSync(join(tmpdir(), 'cibuild-script-'));
55
- tmpScriptPath = join(tmpDir, `step-${step.id || 'script'}.sh`);
56
- // Prepend envman shell function that writes directly to the envstore JSON file.
57
- // This avoids calling the ci binary (pkg binaries have issues with subcommands).
58
- writeFileSync(tmpScriptPath, envmanShellFunction() + step.script, 'utf-8');
59
- chmodSync(tmpScriptPath, 0o755);
60
- args = ["-l", tmpScriptPath];
61
- }
62
- catch (err) {
63
- reject(new Error(`Failed to create temporary script file: ${err}`));
64
- return;
65
- }
66
- break;
67
- case "python":
68
- cmd = this.config.interpreters.python;
69
- args = ["-c", step.script];
70
- break;
71
- case "ruby":
72
- cmd = this.config.interpreters.ruby;
73
- args = ["-e", step.script];
74
- break;
75
- case "node":
76
- // Write the script to a file instead of passing it via -e: the
77
- // released ci binary is pkg-built, and pkg's bootstrap intercepts
78
- // child spawns of `node`, re-executing the pkg binary itself —
79
- // which resolves `-e` as an entrypoint path and dies with
80
- // `Cannot find module '<cwd>/-e'`. A real file path executes
81
- // under both a system node and the pkg bootstrap.
82
- cmd = this.config.interpreters.node;
83
- try {
84
- const tmpDir = mkdtempSync(join(tmpdir(), 'cibuild-script-'));
85
- tmpScriptPath = join(tmpDir, `step-${step.id || 'script'}.cjs`);
86
- writeFileSync(tmpScriptPath, step.script, 'utf-8');
87
- }
88
- catch (err) {
89
- reject(new Error(`Failed to create temporary script file: ${err}`));
90
- return;
91
- }
92
- args = [tmpScriptPath];
93
- break;
94
- default:
95
- reject(new Error(`Unknown step kind: ${step.kind}`));
96
- return;
97
- }
98
- // Set envstore path so envman works regardless of cd in scripts
99
- const env = {
100
- ...process.env,
101
- ENVMAN_ENVSTORE_PATH,
102
- };
103
- const child = spawn(cmd, args, {
104
- stdio: "inherit",
105
- shell: false,
106
- env,
107
- });
108
- const cleanupTmp = () => {
109
- if (tmpScriptPath) {
110
- try {
111
- rmSync(dirname(tmpScriptPath), { recursive: true, force: true });
112
- }
113
- catch { }
114
- }
115
- };
116
- child.on("error", (err) => {
117
- cleanupTmp();
118
- reject(new Error(`Failed to spawn ${cmd}: ${err.message}`));
119
- });
120
- child.on("exit", (code) => {
121
- const duration = Date.now() - startTime;
122
- const durationStr = this.formatDuration(duration);
123
- cleanupTmp();
124
- if (code === 0) {
125
- console.log(`[${step.id}] ✓ Success (${durationStr})\n`);
126
- resolve();
127
- }
128
- else {
129
- reject(new StepExecutionError(step.id, step.name, code ?? 1));
130
- }
131
- });
132
- });
133
- }
134
- formatDuration(ms) {
135
- if (ms < 1000) {
136
- return `${ms}ms`;
137
- }
138
- else if (ms < 60000) {
139
- return `${(ms / 1000).toFixed(1)}s`;
140
- }
141
- else {
142
- const minutes = Math.floor(ms / 60000);
143
- const seconds = Math.floor((ms % 60000) / 1000);
144
- return `${minutes}m ${seconds}s`;
145
- }
146
- }
147
- validatePipeline(pipeline) {
148
- const stepIds = new Set(pipeline.steps.map((s) => s.id));
149
- const duplicates = pipeline.steps
150
- .map((s) => s.id)
151
- .filter((id, index, arr) => arr.indexOf(id) !== index);
152
- if (duplicates.length > 0) {
153
- throw new Error(`Duplicate step IDs found: ${duplicates.join(", ")}`);
154
- }
155
- for (const orderId of pipeline.stepsOrder) {
156
- if (!stepIds.has(orderId)) {
157
- throw new Error(`Step ID "${orderId}" in stepsOrder not found in steps`);
158
- }
159
- }
160
- if (pipeline.stepsOrder.length !== pipeline.steps.length) {
161
- const missingIds = pipeline.steps
162
- .filter((s) => !pipeline.stepsOrder.includes(s.id))
163
- .map((s) => s.id);
164
- throw new Error(`Some steps are not in stepsOrder: ${missingIds.join(", ")}`);
165
- }
166
- }
167
- displayWarnings(warnings, skippedSteps) {
168
- console.log("\n" + "═".repeat(60));
169
- console.log("⚠️ UNSUPPORTED STEPS DETECTED");
170
- console.log("═".repeat(60));
171
- warnings.forEach((warning) => {
172
- console.log(warning);
173
- });
174
- console.log("─".repeat(60));
175
- console.log(`ℹ️ Skipped ${skippedSteps} unsupported step${skippedSteps !== 1 ? 's' : ''}. Build will continue.`);
176
- console.log("═".repeat(60) + "\n");
177
- }
178
- /**
179
- * The commit this build compiled, printed under the banner.
180
- *
181
- * Every build carries it, whatever steps it declares. The dashboard's sha is
182
- * the one that was *dispatched*; this one was read off the disk the compiler
183
- * is about to read, and it is what a later argument about which code shipped
184
- * has to be settled against. It used to live only in `git-clone`'s echo,
185
- * which is optional and no longer in the curated templates.
186
- *
187
- * Labels match that echo's on purpose — where both appear they are the same
188
- * three facts, and they have to agree.
189
- */
190
- displayCheckout(checkout) {
191
- console.log(`Commit: ${checkout.commit}`);
192
- if (checkout.author)
193
- console.log(`Author: ${checkout.author}`);
194
- if (checkout.subject)
195
- console.log(`Message: ${checkout.subject}`);
196
- console.log("");
197
- }
198
- async runPipeline(pipeline, warnings, skippedSteps, checkout) {
199
- // Ensure .ci directory exists (envstore lives there)
200
- mkdirSync(resolve(process.cwd(), ".ci"), { recursive: true });
201
- // Clear envstore at the start of each build for a clean slate
202
- if (existsSync(ENVMAN_ENVSTORE_PATH)) {
203
- unlinkSync(ENVMAN_ENVSTORE_PATH);
204
- }
205
- console.log(`\n╔═════════════════════════════════════════════════════════╗`);
206
- console.log(`║ Pipeline: ${pipeline.name.padEnd(42)} ║`);
207
- console.log(`╚═════════════════════════════════════════════════════════╝\n`);
208
- if (checkout) {
209
- this.displayCheckout(checkout);
210
- }
211
- // Display warnings if provided
212
- if (warnings && warnings.length > 0) {
213
- this.displayWarnings(warnings, skippedSteps || 0);
214
- }
215
- this.validatePipeline(pipeline);
216
- const stepsMap = new Map(pipeline.steps.map((s) => [s.id, s]));
217
- for (let i = 0; i < pipeline.stepsOrder.length; i++) {
218
- const stepId = pipeline.stepsOrder[i];
219
- const step = stepsMap.get(stepId);
220
- if (!step) {
221
- throw new Error(`Step ${stepId} not found`);
222
- }
223
- try {
224
- await this.runStep(step, i + 1);
225
- }
226
- catch (err) {
227
- if (step.isSkippable && err instanceof StepExecutionError) {
228
- console.log(`\n⚠️ [${step.id}] Step "${step.name}" failed but is marked skippable — continuing.\n`);
229
- }
230
- else {
231
- throw err;
232
- }
233
- }
234
- }
235
- console.log("\n" + "═".repeat(60));
236
- console.log("✓ Pipeline completed successfully");
237
- console.log("═".repeat(60) + "\n");
238
- }
239
- }
240
- //# sourceMappingURL=runner.js.map
@@ -1,57 +0,0 @@
1
- export type MobileProjectType = "android" | "ios" | "kmm";
2
- declare function isDirectory(path: string): boolean;
3
- /**
4
- * True when a path that is *named* like an Xcode container actually is one.
5
- *
6
- * **The** predicate — every question of the form "is this `.xcodeproj` a
7
- * project" goes through here, and nothing else in cibuild joins a directory
8
- * name to "there is a project there".
9
- *
10
- * A `.xcodeproj` is a directory whose whole content is `project.pbxproj`;
11
- * without it `xcodebuild` refuses to open the project at all — "missing its
12
- * project.pbxproj file". A `.xcworkspace` is `contents.xcworkspacedata` in
13
- * the same way. Anything else ending in those suffixes is a directory with a
14
- * suggestive name, and offering one is offering something Xcode would reject.
15
- *
16
- * `Uwi0/Oakane` is the row that found it. Its `iosApp/` ships two: a tracked
17
- * `iosApp.xcodeproj` holding nothing but `project.xcworkspace/`, and the real
18
- * `oakane.xcodeproj` beside it with a 20 217-byte `project.pbxproj`. The husk
19
- * carries the name the KMM wizard gives, so the conventional name outranked
20
- * the project that exists — and it supplied BOTH `IOS_PROJECT_PATH` and, via
21
- * the scheme scan's project-name fallback, `IOS_SCHEME`. The build reached
22
- * step 9 and died on "Unable to read project 'iosApp.xcodeproj'".
23
- *
24
- * This is the iOS twin of the Gradle module scan once treating "a directory
25
- * holding a file called build.gradle" as a module: wrong in the same
26
- * direction, and fixed the same way — one reader, used by everyone.
27
- *
28
- * The `.pbxproj` is deliberately NOT parsed. Its existence and non-emptiness
29
- * is the whole question; a shared `.xcscheme` remains the oracle for what a
30
- * project builds.
31
- */
32
- export declare function isXcodeContainer(path: string): boolean;
33
- /** The entries of `dir` that are real Xcode containers, in `readdir` order. */
34
- export declare function xcodeContainersIn(dir: string): string[];
35
- /**
36
- * Detects whether the given directory is the root of an Android, iOS, or
37
- * KMM project. Returns the detected project type, or null if none match.
38
- *
39
- * KMM is checked before Android because both have Gradle files, and it is
40
- * decided by what the repository *is*: a module that applies the Kotlin
41
- * Multiplatform plugin or declares a Kotlin/Native Apple target in its own
42
- * build file (garfiec/Librechat-Mobile applies the plugin only through a
43
- * convention plugin), and an Apple consumer within one directory of the
44
- * root. The three conventional directory names (`shared`, `composeApp`,
45
- * `iosApp`) used to be the whole rule, and were wrong in both directions —
46
- * `joreilly/PeopleInSpace` (`common` + `PeopleInSpaceSwiftUI/`) and
47
- * `openMF/mifos-pay` (`cmp-shared` + `cmp-ios/`) were detected `android`,
48
- * while an Android-only project with a module *named* `shared` was detected
49
- * KMM and given a pipeline with an xcodebuild step aimed at nothing.
50
- *
51
- * Without an Apple consumer it is Android: an Android-only Kotlin
52
- * Multiplatform library builds perfectly well with the Android template.
53
- */
54
- export declare function detectMobileProjectRoot(dir: string): MobileProjectType | null;
55
- /** Kept for callers that only ask whether a path is a directory. */
56
- export { isDirectory };
57
- //# sourceMappingURL=detect-project.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-project.d.ts","sourceRoot":"","sources":["../../../src/shared/detect-project.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAoB1D,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM1C;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYtD;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAYvD;AAwED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CA4B7E;AAED,oEAAoE;AACpE,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,219 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
2
- import { resolve } from "node:path";
3
- import { declaresKotlinMultiplatform, parseSettingsModules, } from "./gradle-settings.js";
4
- /** Directories that hold a copy of a project rather than the source of it. */
5
- const NON_SOURCE_DIRS = new Set([
6
- ".git",
7
- ".gradle",
8
- ".idea",
9
- "build",
10
- "DerivedData",
11
- "Pods",
12
- "node_modules",
13
- ]);
14
- /**
15
- * The module names the multiplatform wizards write. Tried first because
16
- * they are right most of the time and cost two `existsSync` calls — but they
17
- * are a fast path through the rule below, not the rule.
18
- */
19
- const CONVENTIONAL_MULTIPLATFORM_MODULES = ["shared", "composeApp", "common"];
20
- function isDirectory(path) {
21
- try {
22
- return statSync(path).isDirectory();
23
- }
24
- catch {
25
- return false;
26
- }
27
- }
28
- function readOrNull(path) {
29
- try {
30
- return readFileSync(path, "utf-8");
31
- }
32
- catch {
33
- return null;
34
- }
35
- }
36
- /**
37
- * True when a path that is *named* like an Xcode container actually is one.
38
- *
39
- * **The** predicate — every question of the form "is this `.xcodeproj` a
40
- * project" goes through here, and nothing else in cibuild joins a directory
41
- * name to "there is a project there".
42
- *
43
- * A `.xcodeproj` is a directory whose whole content is `project.pbxproj`;
44
- * without it `xcodebuild` refuses to open the project at all — "missing its
45
- * project.pbxproj file". A `.xcworkspace` is `contents.xcworkspacedata` in
46
- * the same way. Anything else ending in those suffixes is a directory with a
47
- * suggestive name, and offering one is offering something Xcode would reject.
48
- *
49
- * `Uwi0/Oakane` is the row that found it. Its `iosApp/` ships two: a tracked
50
- * `iosApp.xcodeproj` holding nothing but `project.xcworkspace/`, and the real
51
- * `oakane.xcodeproj` beside it with a 20 217-byte `project.pbxproj`. The husk
52
- * carries the name the KMM wizard gives, so the conventional name outranked
53
- * the project that exists — and it supplied BOTH `IOS_PROJECT_PATH` and, via
54
- * the scheme scan's project-name fallback, `IOS_SCHEME`. The build reached
55
- * step 9 and died on "Unable to read project 'iosApp.xcodeproj'".
56
- *
57
- * This is the iOS twin of the Gradle module scan once treating "a directory
58
- * holding a file called build.gradle" as a module: wrong in the same
59
- * direction, and fixed the same way — one reader, used by everyone.
60
- *
61
- * The `.pbxproj` is deliberately NOT parsed. Its existence and non-emptiness
62
- * is the whole question; a shared `.xcscheme` remains the oracle for what a
63
- * project builds.
64
- */
65
- export function isXcodeContainer(path) {
66
- const manifest = path.endsWith(".xcworkspace")
67
- ? "contents.xcworkspacedata"
68
- : path.endsWith(".xcodeproj")
69
- ? "project.pbxproj"
70
- : null;
71
- if (manifest === null)
72
- return false;
73
- try {
74
- return statSync(resolve(path, manifest)).size > 0;
75
- }
76
- catch {
77
- return false;
78
- }
79
- }
80
- /** The entries of `dir` that are real Xcode containers, in `readdir` order. */
81
- export function xcodeContainersIn(dir) {
82
- let entries;
83
- try {
84
- entries = readdirSync(dir);
85
- }
86
- catch {
87
- return [];
88
- }
89
- return entries.filter((e) => (e.endsWith(".xcodeproj") || e.endsWith(".xcworkspace")) &&
90
- isXcodeContainer(resolve(dir, e)));
91
- }
92
- /** True when this directory holds something an Apple build reads. */
93
- function holdsAppleConsumer(dir) {
94
- let entries;
95
- try {
96
- entries = readdirSync(dir);
97
- }
98
- catch {
99
- return false;
100
- }
101
- if (xcodeContainersIn(dir).length > 0) {
102
- return true;
103
- }
104
- if (entries.includes("Podfile"))
105
- return true;
106
- // An XcodeGen spec generates the project during the build, so the absence
107
- // of a `.xcodeproj` says nothing about whether there is an iOS app.
108
- if (entries.includes("project.yml")) {
109
- const content = readOrNull(resolve(dir, "project.yml"));
110
- return content !== null && /^\s*targets\s*:/m.test(content);
111
- }
112
- return false;
113
- }
114
- /**
115
- * An Apple consumer at the root or one directory below it.
116
- *
117
- * One level, because that is where every KMM repository in the thirty-app
118
- * study put its iOS app — under names as varied as `iosApp`,
119
- * `PeopleInSpaceSwiftUI`, `cmp-ios` and `cmp-iosApp` — and because looking
120
- * deeper starts finding sample apps inside library modules.
121
- */
122
- function hasAppleConsumerWithinOneLevel(root) {
123
- if (holdsAppleConsumer(root))
124
- return true;
125
- let entries;
126
- try {
127
- entries = readdirSync(root, { withFileTypes: true });
128
- }
129
- catch {
130
- return false;
131
- }
132
- for (const entry of entries) {
133
- if (!entry.isDirectory())
134
- continue;
135
- if (NON_SOURCE_DIRS.has(entry.name) || entry.name.startsWith("."))
136
- continue;
137
- if (entry.name.endsWith(".xcodeproj") || entry.name.endsWith(".xcworkspace"))
138
- continue;
139
- if (holdsAppleConsumer(resolve(root, entry.name)))
140
- return true;
141
- }
142
- return false;
143
- }
144
- /** The plugin, or a Kotlin/Native Apple target, in the module's own build file. */
145
- function moduleIsMultiplatform(root, module) {
146
- for (const name of ["build.gradle.kts", "build.gradle"]) {
147
- const content = readOrNull(resolve(root, module, name));
148
- if (content !== null && declaresKotlinMultiplatform(content))
149
- return true;
150
- }
151
- return false;
152
- }
153
- /** True when any module this build includes is Kotlin Multiplatform. */
154
- function hasMultiplatformModule(root) {
155
- for (const module of CONVENTIONAL_MULTIPLATFORM_MODULES) {
156
- if (moduleIsMultiplatform(root, module))
157
- return true;
158
- }
159
- for (const name of ["settings.gradle", "settings.gradle.kts"]) {
160
- const content = readOrNull(resolve(root, name));
161
- if (content === null)
162
- continue;
163
- for (const module of parseSettingsModules(content)) {
164
- if (moduleIsMultiplatform(root, module))
165
- return true;
166
- }
167
- }
168
- return false;
169
- }
170
- /**
171
- * Detects whether the given directory is the root of an Android, iOS, or
172
- * KMM project. Returns the detected project type, or null if none match.
173
- *
174
- * KMM is checked before Android because both have Gradle files, and it is
175
- * decided by what the repository *is*: a module that applies the Kotlin
176
- * Multiplatform plugin or declares a Kotlin/Native Apple target in its own
177
- * build file (garfiec/Librechat-Mobile applies the plugin only through a
178
- * convention plugin), and an Apple consumer within one directory of the
179
- * root. The three conventional directory names (`shared`, `composeApp`,
180
- * `iosApp`) used to be the whole rule, and were wrong in both directions —
181
- * `joreilly/PeopleInSpace` (`common` + `PeopleInSpaceSwiftUI/`) and
182
- * `openMF/mifos-pay` (`cmp-shared` + `cmp-ios/`) were detected `android`,
183
- * while an Android-only project with a module *named* `shared` was detected
184
- * KMM and given a pipeline with an xcodebuild step aimed at nothing.
185
- *
186
- * Without an Apple consumer it is Android: an Android-only Kotlin
187
- * Multiplatform library builds perfectly well with the Android template.
188
- */
189
- export function detectMobileProjectRoot(dir) {
190
- const androidIndicators = [
191
- "build.gradle",
192
- "build.gradle.kts",
193
- "settings.gradle",
194
- "settings.gradle.kts",
195
- "gradlew",
196
- ];
197
- const hasAndroidIndicator = androidIndicators.some((f) => existsSync(resolve(dir, f)));
198
- if (hasAndroidIndicator) {
199
- if (hasAppleConsumerWithinOneLevel(dir) && hasMultiplatformModule(dir))
200
- return "kmm";
201
- return "android";
202
- }
203
- const iosFileIndicators = ["Podfile"];
204
- const hasIosFile = iosFileIndicators.some((f) => existsSync(resolve(dir, f)));
205
- if (!hasIosFile) {
206
- // A husk — a directory named `*.xcodeproj` with no `project.pbxproj` —
207
- // does not make this an iOS project root. Saying `ios` on the strength of
208
- // one writes a pipeline aimed at something xcodebuild cannot open.
209
- if (xcodeContainersIn(dir).length > 0)
210
- return "ios";
211
- }
212
- else {
213
- return "ios";
214
- }
215
- return null;
216
- }
217
- /** Kept for callers that only ask whether a path is a directory. */
218
- export { isDirectory };
219
- //# sourceMappingURL=detect-project.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=detect-project.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detect-project.test.d.ts","sourceRoot":"","sources":["../../../src/shared/detect-project.test.ts"],"names":[],"mappings":""}