@invarn/cibuild 2.9.6 → 2.9.8

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 (559) 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/a-missing-pinned-jdk-yields-for-every-gradle-run.test.d.ts +0 -2
  282. package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.d.ts.map +0 -1
  283. package/dist/src/yaml/steps/a-missing-pinned-jdk-yields-for-every-gradle-run.test.js +0 -96
  284. package/dist/src/yaml/steps/android-sign.d.ts +0 -35
  285. package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
  286. package/dist/src/yaml/steps/android-sign.js +0 -147
  287. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
  288. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
  289. package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
  290. package/dist/src/yaml/steps/android-version.d.ts +0 -26
  291. package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
  292. package/dist/src/yaml/steps/android-version.js +0 -128
  293. package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
  294. package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
  295. package/dist/src/yaml/steps/android-version.test.js +0 -196
  296. package/dist/src/yaml/steps/android.d.ts +0 -156
  297. package/dist/src/yaml/steps/android.d.ts.map +0 -1
  298. package/dist/src/yaml/steps/android.js +0 -1100
  299. package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
  300. package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
  301. package/dist/src/yaml/steps/app-store-deploy.js +0 -167
  302. package/dist/src/yaml/steps/base.d.ts +0 -263
  303. package/dist/src/yaml/steps/base.d.ts.map +0 -1
  304. package/dist/src/yaml/steps/base.js +0 -380
  305. package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
  306. package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
  307. package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
  308. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
  309. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
  310. package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
  311. package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
  312. package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
  313. package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
  314. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
  315. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
  316. package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
  317. package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
  318. package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
  319. package/dist/src/yaml/steps/bitrise-slack.js +0 -280
  320. package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
  321. package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
  322. package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
  323. package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
  324. package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
  325. package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
  326. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
  327. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
  328. package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
  329. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
  330. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
  331. package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
  332. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
  333. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
  334. package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
  335. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
  336. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
  337. package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
  338. package/dist/src/yaml/steps/cache.d.ts +0 -59
  339. package/dist/src/yaml/steps/cache.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/cache.js +0 -1027
  341. package/dist/src/yaml/steps/capture-injection.d.ts +0 -30
  342. package/dist/src/yaml/steps/capture-injection.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/capture-injection.js +0 -88
  344. package/dist/src/yaml/steps/capture-injection.test.d.ts +0 -2
  345. package/dist/src/yaml/steps/capture-injection.test.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/capture-injection.test.js +0 -163
  347. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
  348. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  350. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  351. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  353. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  354. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  356. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  357. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  359. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  360. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  362. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  363. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  365. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  366. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fastlane.js +0 -79
  368. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  369. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  371. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  372. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  374. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  375. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  377. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  378. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  380. package/dist/src/yaml/steps/file.d.ts +0 -52
  381. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/file.js +0 -108
  383. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  384. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/flutter.js +0 -215
  386. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  387. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  389. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  390. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-clone.js +0 -171
  392. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  393. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  395. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  396. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  398. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  399. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  401. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  402. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  404. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  405. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  407. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -91
  408. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-memory.js +0 -495
  410. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  411. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/gradle-memory.test.js +0 -344
  413. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  414. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  416. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  417. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  419. package/dist/src/yaml/steps/index.d.ts +0 -10
  420. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/index.js +0 -1461
  422. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  423. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-deps.js +0 -279
  425. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  426. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  428. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  429. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/ios-signing.js +0 -144
  431. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  432. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/ios-version.js +0 -151
  434. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  435. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  437. package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.d.ts +0 -2
  438. package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/kotlin-metadata-compiles-on-a-daemon.test.js +0 -139
  440. package/dist/src/yaml/steps/linting.d.ts +0 -47
  441. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/linting.js +0 -148
  443. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  444. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/phase2.test.js +0 -197
  446. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  447. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/phase3.test.js +0 -144
  449. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  450. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/phase4.test.js +0 -166
  452. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  453. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/phase5.test.js +0 -263
  455. package/dist/src/yaml/steps/registry.d.ts +0 -88
  456. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/registry.js +0 -125
  458. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  459. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/registry.test.js +0 -235
  461. package/dist/src/yaml/steps/release.d.ts +0 -50
  462. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/release.js +0 -154
  464. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  465. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  467. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  468. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  470. package/dist/src/yaml/steps/script.d.ts +0 -23
  471. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/script.js +0 -63
  473. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  474. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  476. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  477. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/steps.test.js +0 -881
  479. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  480. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  482. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  483. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  485. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  486. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/test-config.js +0 -25
  488. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  489. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  491. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  492. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/trim-align.js +0 -367
  494. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  495. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  497. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  498. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  500. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  501. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  503. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  504. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  506. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  507. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  509. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  510. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  512. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  513. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  515. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  516. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  518. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  519. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  521. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  522. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  524. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  525. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  527. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  528. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -279
  530. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  531. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  533. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  534. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  536. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  537. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  539. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  540. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  541. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  542. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  543. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  544. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  545. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  546. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  547. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  548. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  549. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  550. package/dist/src/yaml/steps/xcode.js +0 -1350
  551. package/dist/src/yaml/types.d.ts +0 -76
  552. package/dist/src/yaml/types.d.ts.map +0 -1
  553. package/dist/src/yaml/types.js +0 -5
  554. package/dist/src/yaml/validation-types.d.ts +0 -102
  555. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  556. package/dist/src/yaml/validation-types.js +0 -8
  557. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  558. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  559. package/dist/src/yaml/yaml-updater.js +0 -128
@@ -1,264 +0,0 @@
1
- /**
2
- * Which scheme an iOS pipeline builds.
3
- *
4
- * It used to be the first `.xcscheme` the filesystem listed, and that has a
5
- * rule: a space (0x20) sorts before a period (0x2E), so
6
- * `"<App> <Suffix>.xcscheme"` always lists before `"<App>.xcscheme"`. An app
7
- * named after its project loses to its own extension or tvOS companion every
8
- * time. Four of the eight iOS rows that built in the thirty-app study got a
9
- * non-app scheme:
10
- *
11
- * Stay → "Stay Extension" → "There are no test bundles available to test"
12
- * Swiftfin → "Swiftfin tvOS" → "Unable to find a destination matching … iOS Simulator"
13
- * wikipedia → "ContinueReadingWidget" (masked by an earlier failure)
14
- * pocketcasts → "NotificationContent" (masked by an earlier failure)
15
- *
16
- * The `.xcscheme` XML says what each scheme is, so the ranking reads it.
17
- */
18
- import { mkdtempSync, rmSync, mkdirSync, writeFileSync } from "node:fs";
19
- import { join } from "node:path";
20
- import { tmpdir } from "node:os";
21
- import { rankSchemes } from "./ios-scanner.js";
22
- let root;
23
- beforeEach(() => {
24
- root = mkdtempSync(join(tmpdir(), "cibuild-scheme-"));
25
- });
26
- afterEach(() => {
27
- rmSync(root, { recursive: true, force: true });
28
- });
29
- /** An `.xcscheme` with the parts the ranking reads, in Xcode's own shape. */
30
- function scheme(project, name, { runnable, testable, appExtension }) {
31
- const dir = join(root, `${project}.xcodeproj`, "xcshareddata", "xcschemes");
32
- mkdirSync(dir, { recursive: true });
33
- // A `.xcodeproj` is its `project.pbxproj`; without one Xcode refuses to open
34
- // it and the scanners now skip it, so a fixture that omits it is describing
35
- // a directory that cannot exist outside a test. Content is irrelevant here —
36
- // the scheme XML is what the ranking reads — but it has to be there.
37
- writeFileSync(join(root, `${project}.xcodeproj`, "project.pbxproj"), "// !$*UTF8*$!\n");
38
- writeFileSync(join(dir, `${name}.xcscheme`), `<?xml version="1.0" encoding="UTF-8"?>
39
- <Scheme LastUpgradeVersion = "1600"${appExtension ? `\n wasCreatedForAppExtension = "YES"` : ""} version = "1.7">
40
- <TestAction buildConfiguration = "Debug">
41
- <Testables>${testable
42
- ? `
43
- <TestableReference skipped = "NO">
44
- <BuildableReference BuildableName = "${name}Tests.xctest" />
45
- </TestableReference>`
46
- : ""}
47
- </Testables>
48
- </TestAction>
49
- <LaunchAction buildConfiguration = "Debug">${runnable
50
- ? `
51
- <BuildableProductRunnable runnableDebuggingMode = "0">
52
- <BuildableReference
53
- BuildableIdentifier = "primary"
54
- BuildableName = "${runnable}"
55
- BlueprintName = "${name}"
56
- ReferencedContainer = "container:${project}.xcodeproj">
57
- </BuildableReference>
58
- </BuildableProductRunnable>`
59
- : ""}
60
- </LaunchAction>
61
- </Scheme>
62
- `);
63
- }
64
- /** The ranking, given the order `readdirSync` happens to produce. */
65
- const pick = (projectPath, names) => rankSchemes(root, projectPath, names)[0];
66
- describe("rankSchemes", () => {
67
- // shenruisi/Stay. "Stay Extension" listed first and was written into the
68
- // pipeline; the app is named after its project.
69
- test("prefers the scheme named after the project", () => {
70
- scheme("Stay", "Stay", { runnable: "Stay.app", testable: true });
71
- scheme("Stay", "Stay Extension", { runnable: "Stay.app" });
72
- expect(pick("Stay.xcodeproj", ["Stay Extension", "Stay"])).toBe("Stay");
73
- });
74
- // jellyfin/Swiftfin. Every destination "Swiftfin tvOS" offered was tvOS.
75
- test("prefers the project's own name over a platform companion", () => {
76
- scheme("Swiftfin", "Swiftfin", { runnable: "Swiftfin iOS.app" });
77
- scheme("Swiftfin", "Swiftfin tvOS", { runnable: "Swiftfin tvOS.app" });
78
- expect(pick("Swiftfin.xcodeproj", ["Swiftfin tvOS", "Swiftfin"])).toBe("Swiftfin");
79
- });
80
- // Finb/Bark builds from a workspace; the schemes live in the project inside.
81
- test("matches the workspace basename too", () => {
82
- scheme("Bark", "Bark", { runnable: "Bark.app", testable: true });
83
- scheme("Bark", "NotificationContentExtension", { runnable: "Bark.app" });
84
- expect(pick("Bark.xcworkspace", ["Bark", "NotificationContentExtension"])).toBe("Bark");
85
- });
86
- // Automattic/pocket-casts-ios: the scheme is `pocketcasts`, the project is
87
- // `podcasts.xcodeproj`, so no name matches. What separates them is that one
88
- // launches an app and has tests, and the others are extensions.
89
- test("falls back to an app scheme with tests when no name matches", () => {
90
- scheme("podcasts", "pocketcasts", { runnable: "podcasts.app", testable: true });
91
- scheme("podcasts", "NotificationContent", { runnable: "podcasts.app" });
92
- scheme("podcasts", "PocketCastsWatch", { runnable: "PocketCastsWatch.app" });
93
- expect(pick("podcasts.xcodeproj", ["NotificationContent", "PocketCastsWatch", "pocketcasts"])).toBe("pocketcasts");
94
- });
95
- // thebaselab/codeapp: `Code App` launches `Code.app` and declares no tests
96
- // at all; `Code UI` has two test bundles and launches `CodeUI.app`. The
97
- // product named after the project is the app; tests are a weaker signal.
98
- test("prefers the product named after the project over one with tests", () => {
99
- scheme("Code", "Code App", { runnable: "Code.app" });
100
- scheme("Code", "Code UI", { runnable: "CodeUI.app", testable: true });
101
- scheme("Code", "extension", { runnable: "CodeUI.app" });
102
- expect(pick("Code.xcodeproj", ["Code App", "Code UI", "extension"])).toBe("Code App");
103
- });
104
- // oblador/hush: `Hush iOS` and `Hush macOS`, project `Hush.xcodeproj`.
105
- test("prefers the iOS variant over the macOS one", () => {
106
- scheme("Hush", "Hush iOS", { runnable: "Hush.app", testable: true });
107
- scheme("Hush", "Hush macOS", { runnable: "Hush.app" });
108
- expect(pick("Hush.xcodeproj", ["Hush iOS", "Hush macOS"])).toBe("Hush iOS");
109
- });
110
- // home-assistant/iOS: App-Debug and App-Release, both runnable, both with
111
- // tests. Debug is what the template builds.
112
- test("prefers the debug configuration when two app schemes tie", () => {
113
- scheme("HomeAssistant", "App-Debug", { runnable: "Home Assistant.app", testable: true });
114
- scheme("HomeAssistant", "App-Release", { runnable: "Home Assistant.app", testable: true });
115
- expect(pick("HomeAssistant.xcodeproj", ["App-Debug", "App-Release"])).toBe("App-Debug");
116
- });
117
- test("prefers the shortest name when nothing else separates them", () => {
118
- scheme("Demo", "App", { runnable: "App.app", testable: true });
119
- scheme("Demo", "App With A Longer Name", { runnable: "App.app", testable: true });
120
- expect(pick("Demo.xcodeproj", ["App With A Longer Name", "App"])).toBe("App");
121
- });
122
- // The whole defect: a space sorts before a period, so the companion is
123
- // always listed first. The answer must not depend on that.
124
- test("gives the same answer whatever order the filesystem lists", () => {
125
- scheme("Stay", "Stay", { runnable: "Stay.app", testable: true });
126
- scheme("Stay", "Stay Extension", { runnable: "Stay.app" });
127
- scheme("Stay", "Stay Widget", { runnable: "Stay.app" });
128
- const orders = [
129
- ["Stay Extension", "Stay Widget", "Stay"],
130
- ["Stay", "Stay Extension", "Stay Widget"],
131
- ["Stay Widget", "Stay", "Stay Extension"],
132
- ];
133
- for (const order of orders) {
134
- expect([order.join(","), pick("Stay.xcodeproj", order)]).toEqual([
135
- order.join(","),
136
- "Stay",
137
- ]);
138
- }
139
- });
140
- test("keeps every scheme in the list, only reordered", () => {
141
- scheme("Stay", "Stay", { runnable: "Stay.app", testable: true });
142
- scheme("Stay", "Stay Extension", { runnable: "Stay.app" });
143
- const ranked = rankSchemes(root, "Stay.xcodeproj", ["Stay Extension", "Stay"]);
144
- expect([...ranked].sort()).toEqual(["Stay", "Stay Extension"]);
145
- });
146
- test("leaves a single scheme alone", () => {
147
- scheme("Solo", "Solo", { runnable: "Solo.app", testable: true });
148
- expect(pick("Solo.xcodeproj", ["Solo"])).toBe("Solo");
149
- });
150
- // A scheme with no shared `.xcscheme` on disk — `detectSchemes` falls back
151
- // to the project name — must still come out first, not be ranked below a
152
- // companion it cannot read.
153
- test("keeps the order it was given when nothing can be read", () => {
154
- expect(pick("Solo.xcodeproj", ["Solo", "Other"])).toBe("Solo");
155
- });
156
- });
157
- /**
158
- * An app extension is launched *through its host app*, so an extension scheme's
159
- * LaunchAction runnable is the host `.app` — the same value the app's own
160
- * scheme carries. Launching the app binary is therefore not sufficient to be
161
- * the app scheme, and no name blocklist reaches the case: `Today` names nothing.
162
- *
163
- * Xcode states the fact itself, on the `<Scheme>` element of any scheme it
164
- * created for an extension target. Measured across all 125 shared schemes in
165
- * the thirty-app study's clones: 29 carry `wasCreatedForAppExtension`, all 29
166
- * are extension schemes, and 27 of them build the host `.app` too — which is
167
- * why "require an `.app` among the BuildAction entries" does not separate them.
168
- */
169
- describe("rankSchemes and app-extension schemes", () => {
170
- /**
171
- * `mozilla-mobile/firefox-ios`, all thirteen schemes of
172
- * `firefox-ios/Client.xcodeproj`, read off the clone. The project is
173
- * `Client.xcodeproj`, so five schemes launch `Client.app` and land in the
174
- * same tier; none carries an `iOS` or `Debug` token, so the tie fell to name
175
- * length and `Today` (5) beat `Fennec` (6). The build then failed compiling
176
- * `ActionExtension` — `bld_b1b38dda58f4111080415283`.
177
- */
178
- const FIREFOX_IOS = [
179
- ["Account", { runnable: "libAccount.a", testable: true }],
180
- ["Fennec", { runnable: "Client.app", testable: true }],
181
- ["Fennec_Enterprise", { runnable: "Client.app", testable: true }],
182
- ["Firefox", { runnable: "Client.app", testable: true }],
183
- ["FirefoxBeta", { runnable: "Client.app", testable: true }],
184
- ["FirefoxStaging", { runnable: "Client.app", testable: true }],
185
- ["L10nSnapshotTests", { runnable: "L10nSnapshotTests.xctest", testable: true }],
186
- ["Periphery", {}],
187
- ["ShareTo", { runnable: "ShareTo.appex", appExtension: true }],
188
- ["Storage", { runnable: "libStorage.a", testable: true }],
189
- ["Sync", { runnable: "Sync.framework", testable: true }],
190
- ["Telemetry", { runnable: "libSyncTelemetry.a", testable: true }],
191
- ["Today", { runnable: "Client.app", testable: true, appExtension: true }],
192
- ];
193
- function firefoxIos() {
194
- for (const [name, shape] of FIREFOX_IOS)
195
- scheme("Client", name, shape);
196
- return FIREFOX_IOS.map(([name]) => name);
197
- }
198
- test("picks the browser, not its widget", () => {
199
- const names = firefoxIos();
200
- expect(pick("Client.xcodeproj", names)).toBe("Fennec");
201
- });
202
- // The defect only became visible because a five-character extension name won
203
- // a length tiebreak. The answer must not depend on the order either.
204
- test("picks the browser whatever order the filesystem lists", () => {
205
- const names = firefoxIos();
206
- const orders = [
207
- names,
208
- [...names].reverse(),
209
- ["Today", ...names.filter((n) => n !== "Today")],
210
- ["ShareTo", "Today", ...names.filter((n) => n !== "Today" && n !== "ShareTo")],
211
- ];
212
- for (const order of orders) {
213
- expect([order[0], pick("Client.xcodeproj", order)]).toEqual([order[0], "Fennec"]);
214
- }
215
- });
216
- test("still keeps every scheme in the list", () => {
217
- const names = firefoxIos();
218
- expect([...rankSchemes(root, "Client.xcodeproj", names)].sort()).toEqual([...names].sort());
219
- });
220
- // The narrow statement, without the other twelve schemes around it.
221
- test("an extension scheme launching the host app is not the app scheme", () => {
222
- scheme("Client", "Fennec", { runnable: "Client.app", testable: true });
223
- scheme("Client", "Today", { runnable: "Client.app", testable: true, appExtension: true });
224
- expect(pick("Client.xcodeproj", ["Today", "Fennec"])).toBe("Fennec");
225
- });
226
- // Xcode's own word about the target outranks a name coincidence, so it
227
- // disqualifies the name-match tier too.
228
- test("outranks a scheme named exactly after the project", () => {
229
- scheme("Widget", "Widget", { runnable: "Host.app", appExtension: true });
230
- scheme("Widget", "HostApp", { runnable: "Host.app", testable: true });
231
- expect(pick("Widget.xcodeproj", ["Widget", "HostApp"])).toBe("HostApp");
232
- });
233
- /**
234
- * The attribute is a sufficient signal, not a necessary one — a hand-written
235
- * or pre-Xcode-10 scheme may omit it. Its absence must change nothing, or
236
- * every scheme that ranked correctly before this could regress.
237
- *
238
- * `chenqi92/primuse` is the row that makes the point concrete: its `Primuse`
239
- * scheme is the real app scheme and builds two widget `.appex` bundles
240
- * alongside `Primuse.app`, so "demote anything that builds an extension"
241
- * would have taken the wrong one.
242
- */
243
- test("an untagged app scheme ranks exactly as it did before", () => {
244
- scheme("Primuse", "Primuse", { runnable: "Primuse.app", testable: true });
245
- scheme("Primuse", "PrimuseWidgets", { runnable: "Primuse.app" });
246
- expect(pick("Primuse.xcodeproj", ["PrimuseWidgets", "Primuse"])).toBe("Primuse");
247
- });
248
- // When every candidate is an extension scheme there is no app scheme to
249
- // find. Both land in the bottom tier, nothing is filtered out, and the
250
- // pre-existing within-tier rule decides — so the caller still gets a
251
- // deterministic answer rather than one that depends on the directory order.
252
- test("still answers deterministically when every scheme is an extension", () => {
253
- scheme("Client", "ShareTo", { runnable: "ShareTo.appex", appExtension: true });
254
- scheme("Client", "Today", { runnable: "Client.app", appExtension: true });
255
- for (const order of [
256
- ["Today", "ShareTo"],
257
- ["ShareTo", "Today"],
258
- ]) {
259
- expect([order[0], pick("Client.xcodeproj", order)]).toEqual([order[0], "Today"]);
260
- }
261
- expect(rankSchemes(root, "Client.xcodeproj", ["ShareTo", "Today"])).toHaveLength(2);
262
- });
263
- });
264
- //# sourceMappingURL=ios-scheme-ranking.test.js.map
@@ -1,30 +0,0 @@
1
- /**
2
- * A properties file the Secrets Gradle Plugin reads is a credential like any
3
- * other, and it has to reach every workflow that builds — not just `release`.
4
- *
5
- * The scanner has always found this one: it emits a `secrets-plugin` warning
6
- * whenever a build file applies the plugin and the properties file it reads is
7
- * gitignored, and `ci init` prints *"The file is gitignored — inject it as a
8
- * file step before building"* along with the exact step to write. Then it
9
- * generates a pipeline without that step. The advice was correct and nobody
10
- * acted on it, so the pipeline it wrote could not configure Gradle at all.
11
- *
12
- * Measured, not supposed: the first build in the record to consume an uploaded
13
- * credential (`bld_f5167b731b95974e61350390`, 2026-09-09) got past
14
- * google-services and died four steps later on
15
- *
16
- * A problem occurred configuring project ':analytics'.
17
- * > The file '<repo>/local.properties' could not be found
18
- *
19
- * on a repository whose `release` workflow had a `file@` step for it and whose
20
- * `primary` and `pull-request` did not. The plugin's evaluation listener runs
21
- * for every variant, so a debug build needs the file exactly as much as a
22
- * release one does.
23
- *
24
- * Declaring the slot matters as much as the step. `unsetEnvKeys` — what
25
- * `invarn setup` searches by — reads `envs`, not step inputs, so an undeclared
26
- * `LOCAL_PROPERTIES` is never discovered on the developer's machine and never
27
- * offered for upload, however many steps name it.
28
- */
29
- export {};
30
- //# sourceMappingURL=local-properties-reaches-every-workflow.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-properties-reaches-every-workflow.test.d.ts","sourceRoot":"","sources":["../../../src/commands/local-properties-reaches-every-workflow.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG"}
@@ -1,146 +0,0 @@
1
- /**
2
- * A properties file the Secrets Gradle Plugin reads is a credential like any
3
- * other, and it has to reach every workflow that builds — not just `release`.
4
- *
5
- * The scanner has always found this one: it emits a `secrets-plugin` warning
6
- * whenever a build file applies the plugin and the properties file it reads is
7
- * gitignored, and `ci init` prints *"The file is gitignored — inject it as a
8
- * file step before building"* along with the exact step to write. Then it
9
- * generates a pipeline without that step. The advice was correct and nobody
10
- * acted on it, so the pipeline it wrote could not configure Gradle at all.
11
- *
12
- * Measured, not supposed: the first build in the record to consume an uploaded
13
- * credential (`bld_f5167b731b95974e61350390`, 2026-09-09) got past
14
- * google-services and died four steps later on
15
- *
16
- * A problem occurred configuring project ':analytics'.
17
- * > The file '<repo>/local.properties' could not be found
18
- *
19
- * on a repository whose `release` workflow had a `file@` step for it and whose
20
- * `primary` and `pull-request` did not. The plugin's evaluation listener runs
21
- * for every variant, so a debug build needs the file exactly as much as a
22
- * release one does.
23
- *
24
- * Declaring the slot matters as much as the step. `unsetEnvKeys` — what
25
- * `invarn setup` searches by — reads `envs`, not step inputs, so an undeclared
26
- * `LOCAL_PROPERTIES` is never discovered on the developer's machine and never
27
- * offered for upload, however many steps name it.
28
- */
29
- import { describe, test, expect } from '@jest/globals';
30
- import { load } from 'js-yaml';
31
- import { generateAndroidPipeline, detectSetupNeeds } from './build.js';
32
- const BASE = {
33
- keystore: false,
34
- keystoreProperties: false,
35
- googleServices: false,
36
- googlePlayDeploy: false,
37
- googlePlayPackageName: '',
38
- artifactType: 'apk',
39
- keystorePaths: {},
40
- googleServicesPaths: {},
41
- workflowFlavors: {},
42
- secretsProperties: false,
43
- secretsPropertiesPath: 'local.properties',
44
- };
45
- function parse(yaml) {
46
- return load(yaml);
47
- }
48
- function envs(parsed) {
49
- return Object.assign({}, ...(parsed.app?.envs ?? []));
50
- }
51
- function stepNames(parsed, workflow) {
52
- return (parsed.workflows?.[workflow]?.steps ?? []).map((s) => Object.keys(s)[0]);
53
- }
54
- function fileStepsOf(parsed, workflow) {
55
- return (parsed.workflows?.[workflow]?.steps ?? [])
56
- .filter((s) => Object.keys(s)[0] === 'file@1.0.0')
57
- .map((s) => s['file@1.0.0']);
58
- }
59
- describe('a properties file the build reads at configuration time', () => {
60
- test('is declared once and written in every workflow that builds', () => {
61
- const parsed = parse(generateAndroidPipeline(17, { ...BASE, secretsProperties: true }));
62
- expect(envs(parsed).LOCAL_PROPERTIES).toBe('');
63
- // One object per workflow so a failure names the workflow that lost it.
64
- const written = ['primary', 'pull-request', 'release'].map((workflow) => {
65
- const step = fileStepsOf(parsed, workflow).find((s) => s.inputs.var_name === 'LOCAL_PROPERTIES');
66
- return {
67
- workflow,
68
- target: step?.inputs.target_path,
69
- // Text, not binary: re-encoding a properties file as base64 would
70
- // write base64 to disk and the plugin would read gibberish.
71
- base64: step?.inputs.base64_encoded,
72
- };
73
- });
74
- expect(written).toEqual([
75
- { workflow: 'primary', target: 'local.properties', base64: undefined },
76
- { workflow: 'pull-request', target: 'local.properties', base64: undefined },
77
- { workflow: 'release', target: 'local.properties', base64: undefined },
78
- ]);
79
- });
80
- test('is written before anything that could read it', () => {
81
- const parsed = parse(generateAndroidPipeline(17, { ...BASE, secretsProperties: true }));
82
- const order = ['primary', 'pull-request', 'release'].map((workflow) => {
83
- const names = stepNames(parsed, workflow);
84
- const wrote = names.indexOf('file@1.0.0');
85
- const firstBuildTool = names.findIndex((n) => /^(gradle-build|android-lint|android-unit-test)@/.test(n));
86
- return { workflow, writesBeforeBuilding: wrote >= 0 && firstBuildTool > wrote };
87
- });
88
- expect(order).toEqual([
89
- { workflow: 'primary', writesBeforeBuilding: true },
90
- { workflow: 'pull-request', writesBeforeBuilding: true },
91
- { workflow: 'release', writesBeforeBuilding: true },
92
- ]);
93
- });
94
- test('follows the plugin to a properties file that is not local.properties', () => {
95
- const parsed = parse(generateAndroidPipeline(17, {
96
- ...BASE,
97
- secretsProperties: true,
98
- secretsPropertiesPath: 'config/secrets.properties',
99
- }));
100
- const written = fileStepsOf(parsed, 'primary').find((s) => s.inputs.var_name === 'LOCAL_PROPERTIES');
101
- expect(written.inputs.target_path).toBe('config/secrets.properties');
102
- });
103
- test('appears nowhere in a repository that does not use the plugin', () => {
104
- // The whole point of scanning: a pipeline must not declare a slot the
105
- // build never reads. After issue 03 a declared-and-empty slot fails the
106
- // build, so an unnecessary one turns a working repository red.
107
- const yaml = generateAndroidPipeline(17, BASE);
108
- expect(yaml).not.toContain('LOCAL_PROPERTIES');
109
- expect(fileStepsOf(parse(yaml), 'primary')).toEqual([]);
110
- });
111
- });
112
- describe('the scan that decides it', () => {
113
- const warning = (over) => ({
114
- category: 'secrets-plugin',
115
- severity: 'warning',
116
- message: 'Secrets plugin key: MAPS_API_KEY',
117
- location: 'local.properties',
118
- ...over,
119
- });
120
- test('takes the properties file from the per-key warning', () => {
121
- const needs = detectSetupNeeds([warning({})]);
122
- expect(needs.secretsProperties).toBe(true);
123
- expect(needs.secretsPropertiesPath).toBe('local.properties');
124
- });
125
- test('takes it from the message when the warning has no defaults file', () => {
126
- // The two `secrets-plugin` warnings disagree about `location`: the
127
- // per-key one carries the properties file, the fallback one carries the
128
- // *build file* that applies the plugin. Reading the wrong one would point
129
- // the step at `app/build.gradle.kts`.
130
- const needs = detectSetupNeeds([
131
- warning({
132
- message: "Google Secrets Gradle Plugin reads 'config/secrets.properties' which is absent in CI",
133
- location: 'app/build.gradle.kts',
134
- }),
135
- ]);
136
- expect(needs.secretsProperties).toBe(true);
137
- expect(needs.secretsPropertiesPath).toBe('config/secrets.properties');
138
- });
139
- test('is off when nothing reports the plugin', () => {
140
- const needs = detectSetupNeeds([
141
- { category: 'missing-file', severity: 'warning', message: 'keystore.properties not found' },
142
- ]);
143
- expect(needs.secretsProperties).toBe(false);
144
- });
145
- });
146
- //# sourceMappingURL=local-properties-reaches-every-workflow.test.js.map
@@ -1,7 +0,0 @@
1
- /**
2
- * Reset command — removes all files and folders created by cibuild.
3
- */
4
- export declare function handleResetCommand(options?: {
5
- force?: boolean;
6
- }): Promise<void>;
7
- //# sourceMappingURL=reset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/commands/reset.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,wBAAsB,kBAAkB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDzF"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Reset command — removes all files and folders created by cibuild.
3
- */
4
- import { existsSync, readFileSync, writeFileSync, rmSync } from 'node:fs';
5
- import { resolve } from 'node:path';
6
- import prompts from 'prompts';
7
- /** Paths that cibuild creates, relative to project root. */
8
- const CIBUILD_PATHS = [
9
- '.ci',
10
- '.cibuild-secrets.json',
11
- '.ci-builds',
12
- '.ci-cache',
13
- 'ci.config.json',
14
- ];
15
- /** Lines that `ci init` appends to .gitignore. */
16
- const GITIGNORE_ENTRIES = [
17
- '.cibuild-secrets.json',
18
- '.ci/.envstore.json',
19
- '.ci/keys/',
20
- ];
21
- export async function handleResetCommand(options = {}) {
22
- const cwd = process.cwd();
23
- // Discover what actually exists
24
- const existing = CIBUILD_PATHS
25
- .map((p) => ({ rel: p, abs: resolve(cwd, p) }))
26
- .filter(({ abs }) => existsSync(abs));
27
- const gitignorePath = resolve(cwd, '.gitignore');
28
- const hasGitignoreEntries = existsSync(gitignorePath) && hasAnyEntry(gitignorePath);
29
- if (existing.length === 0 && !hasGitignoreEntries) {
30
- console.log('Nothing to reset — no cibuild files found.');
31
- return;
32
- }
33
- // Show what will be removed
34
- console.log('\nThe following will be removed:\n');
35
- for (const { rel } of existing) {
36
- console.log(` • ${rel}`);
37
- }
38
- if (hasGitignoreEntries) {
39
- console.log(' • cibuild entries from .gitignore');
40
- }
41
- console.log('');
42
- // Confirm unless --force
43
- if (!options.force) {
44
- const { confirmed } = await prompts({
45
- type: 'confirm',
46
- name: 'confirmed',
47
- message: 'Are you sure? This cannot be undone.',
48
- initial: false,
49
- });
50
- if (!confirmed) {
51
- console.log('\n❌ Cancelled');
52
- return;
53
- }
54
- }
55
- // Remove paths
56
- for (const { rel, abs } of existing) {
57
- rmSync(abs, { recursive: true, force: true });
58
- console.log(` Removed ${rel}`);
59
- }
60
- // Clean .gitignore
61
- if (hasGitignoreEntries) {
62
- cleanGitignore(gitignorePath);
63
- console.log(' Cleaned .gitignore');
64
- }
65
- console.log('\n✅ Reset complete\n');
66
- }
67
- function hasAnyEntry(gitignorePath) {
68
- const content = readFileSync(gitignorePath, 'utf-8');
69
- return GITIGNORE_ENTRIES.some((entry) => content.split('\n').includes(entry));
70
- }
71
- function cleanGitignore(gitignorePath) {
72
- const lines = readFileSync(gitignorePath, 'utf-8').split('\n');
73
- const filtered = lines.filter((line) => !GITIGNORE_ENTRIES.includes(line));
74
- // Remove trailing blank lines left over from removal
75
- while (filtered.length > 0 && filtered[filtered.length - 1] === '') {
76
- filtered.pop();
77
- }
78
- const result = filtered.length > 0 ? filtered.join('\n') + '\n' : '';
79
- writeFileSync(gitignorePath, result);
80
- }
81
- //# sourceMappingURL=reset.js.map
@@ -1,22 +0,0 @@
1
- export interface RunOptions {
2
- /**
3
- * Absolute path to the pipeline file. If omitted, the handler looks
4
- * inside `./.ci/pipelines/` and prompts when multiple files exist.
5
- */
6
- pipelinePath?: string;
7
- workflow?: string;
8
- validateOnly?: boolean;
9
- production?: boolean;
10
- skipValidation?: boolean;
11
- local?: boolean;
12
- }
13
- /**
14
- * Run a pipeline locally. Mirrors `ci run <path>`.
15
- *
16
- * - `.yml` / `.yaml` → parse, validate, optionally prompt for missing
17
- * env vars, then execute via `PipelineRunner`.
18
- * - `.ts` / `.js` → dynamic-import the module, use its default export
19
- * as the `PipelineDef`, then execute.
20
- */
21
- export declare function handleRunCommand(opts?: RunOptions): Promise<void>;
22
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkJ3E"}