@invarn/cibuild 2.9.4 → 2.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/dist/chunk-35SI42CD.mjs +1 -0
  2. package/dist/chunk-IC45KVLJ.mjs +1 -0
  3. package/dist/chunk-XDY4V23V.mjs +1 -0
  4. package/dist/cli.cjs +14 -14
  5. package/dist/commands.mjs +1 -0
  6. package/dist/lib.mjs +3934 -0
  7. package/package.json +6 -10
  8. package/dist/src/cli.d.ts +0 -3
  9. package/dist/src/cli.d.ts.map +0 -1
  10. package/dist/src/cli.js +0 -399
  11. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts +0 -38
  12. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.d.ts.map +0 -1
  13. package/dist/src/commands/a-credential-target-follows-the-flavor-source-set.test.js +0 -222
  14. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts +0 -41
  15. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.d.ts.map +0 -1
  16. package/dist/src/commands/a-credential-two-workflows-cannot-share-is-declared-per-workflow.test.js +0 -324
  17. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts +0 -2
  18. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.d.ts.map +0 -1
  19. package/dist/src/commands/a-properties-stand-in-declares-the-keys-the-build-reads.test.js +0 -382
  20. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts +0 -29
  21. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.d.ts.map +0 -1
  22. package/dist/src/commands/an-already-stored-value-does-not-answer-the-target-question.test.js +0 -160
  23. package/dist/src/commands/android-gms-guard.test.d.ts +0 -9
  24. package/dist/src/commands/android-gms-guard.test.d.ts.map +0 -1
  25. package/dist/src/commands/android-gms-guard.test.js +0 -78
  26. package/dist/src/commands/android-java-version.test.d.ts +0 -12
  27. package/dist/src/commands/android-java-version.test.d.ts.map +0 -1
  28. package/dist/src/commands/android-java-version.test.js +0 -209
  29. package/dist/src/commands/android-scanner-java.test.d.ts +0 -2
  30. package/dist/src/commands/android-scanner-java.test.d.ts.map +0 -1
  31. package/dist/src/commands/android-scanner-java.test.js +0 -130
  32. package/dist/src/commands/android-scanner.d.ts +0 -250
  33. package/dist/src/commands/android-scanner.d.ts.map +0 -1
  34. package/dist/src/commands/android-scanner.js +0 -1639
  35. package/dist/src/commands/build.d.ts +0 -215
  36. package/dist/src/commands/build.d.ts.map +0 -1
  37. package/dist/src/commands/build.js +0 -1433
  38. package/dist/src/commands/build.test.d.ts +0 -13
  39. package/dist/src/commands/build.test.d.ts.map +0 -1
  40. package/dist/src/commands/build.test.js +0 -121
  41. package/dist/src/commands/detect-platform.d.ts +0 -13
  42. package/dist/src/commands/detect-platform.d.ts.map +0 -1
  43. package/dist/src/commands/detect-platform.js +0 -51
  44. package/dist/src/commands/detect-project.d.ts +0 -7
  45. package/dist/src/commands/detect-project.d.ts.map +0 -1
  46. package/dist/src/commands/detect-project.js +0 -12
  47. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts +0 -26
  48. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.d.ts.map +0 -1
  49. package/dist/src/commands/each-flavor-is-asked-for-its-own-properties-file.test.js +0 -196
  50. package/dist/src/commands/edit.d.ts +0 -12
  51. package/dist/src/commands/edit.d.ts.map +0 -1
  52. package/dist/src/commands/edit.js +0 -652
  53. package/dist/src/commands/edit.test.d.ts +0 -6
  54. package/dist/src/commands/edit.test.d.ts.map +0 -1
  55. package/dist/src/commands/edit.test.js +0 -45
  56. package/dist/src/commands/fidelity-trim.d.ts +0 -13
  57. package/dist/src/commands/fidelity-trim.d.ts.map +0 -1
  58. package/dist/src/commands/fidelity-trim.js +0 -21
  59. package/dist/src/commands/fidelity-trim.test.d.ts +0 -8
  60. package/dist/src/commands/fidelity-trim.test.d.ts.map +0 -1
  61. package/dist/src/commands/fidelity-trim.test.js +0 -79
  62. package/dist/src/commands/file-secret-collector.d.ts +0 -50
  63. package/dist/src/commands/file-secret-collector.d.ts.map +0 -1
  64. package/dist/src/commands/file-secret-collector.js +0 -217
  65. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts +0 -38
  66. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.d.ts.map +0 -1
  67. package/dist/src/commands/flavors-a-convention-plugin-creates-are-still-found.test.js +0 -300
  68. package/dist/src/commands/github-workflow.d.ts +0 -5
  69. package/dist/src/commands/github-workflow.d.ts.map +0 -1
  70. package/dist/src/commands/github-workflow.js +0 -45
  71. package/dist/src/commands/index.d.ts +0 -33
  72. package/dist/src/commands/index.d.ts.map +0 -1
  73. package/dist/src/commands/index.js +0 -33
  74. package/dist/src/commands/init.d.ts +0 -20
  75. package/dist/src/commands/init.d.ts.map +0 -1
  76. package/dist/src/commands/init.js +0 -264
  77. package/dist/src/commands/ios-scanner.d.ts +0 -104
  78. package/dist/src/commands/ios-scanner.d.ts.map +0 -1
  79. package/dist/src/commands/ios-scanner.js +0 -492
  80. package/dist/src/commands/ios-scheme-ranking.test.d.ts +0 -2
  81. package/dist/src/commands/ios-scheme-ranking.test.d.ts.map +0 -1
  82. package/dist/src/commands/ios-scheme-ranking.test.js +0 -264
  83. package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts +0 -30
  84. package/dist/src/commands/local-properties-reaches-every-workflow.test.d.ts.map +0 -1
  85. package/dist/src/commands/local-properties-reaches-every-workflow.test.js +0 -146
  86. package/dist/src/commands/reset.d.ts +0 -7
  87. package/dist/src/commands/reset.d.ts.map +0 -1
  88. package/dist/src/commands/reset.js +0 -81
  89. package/dist/src/commands/run.d.ts +0 -22
  90. package/dist/src/commands/run.d.ts.map +0 -1
  91. package/dist/src/commands/run.js +0 -141
  92. package/dist/src/commands/secrets-sync-workflow.d.ts +0 -15
  93. package/dist/src/commands/secrets-sync-workflow.d.ts.map +0 -1
  94. package/dist/src/commands/secrets-sync-workflow.js +0 -255
  95. package/dist/src/commands/secrets-upload.d.ts +0 -21
  96. package/dist/src/commands/secrets-upload.d.ts.map +0 -1
  97. package/dist/src/commands/secrets-upload.js +0 -177
  98. package/dist/src/commands/secrets-upload.test.d.ts +0 -5
  99. package/dist/src/commands/secrets-upload.test.d.ts.map +0 -1
  100. package/dist/src/commands/secrets-upload.test.js +0 -60
  101. package/dist/src/commands/validate.d.ts +0 -10
  102. package/dist/src/commands/validate.d.ts.map +0 -1
  103. package/dist/src/commands/validate.js +0 -46
  104. package/dist/src/config.d.ts +0 -3
  105. package/dist/src/config.d.ts.map +0 -1
  106. package/dist/src/config.js +0 -47
  107. package/dist/src/envman/cli.d.ts +0 -21
  108. package/dist/src/envman/cli.d.ts.map +0 -1
  109. package/dist/src/envman/cli.js +0 -240
  110. package/dist/src/envman/envman.d.ts +0 -83
  111. package/dist/src/envman/envman.d.ts.map +0 -1
  112. package/dist/src/envman/envman.js +0 -361
  113. package/dist/src/envman/envman.test.d.ts +0 -5
  114. package/dist/src/envman/envman.test.d.ts.map +0 -1
  115. package/dist/src/envman/envman.test.js +0 -236
  116. package/dist/src/envman/envstore-round-trip.test.d.ts +0 -27
  117. package/dist/src/envman/envstore-round-trip.test.d.ts.map +0 -1
  118. package/dist/src/envman/envstore-round-trip.test.js +0 -130
  119. package/dist/src/envman/index.d.ts +0 -23
  120. package/dist/src/envman/index.d.ts.map +0 -1
  121. package/dist/src/envman/index.js +0 -23
  122. package/dist/src/envman/shim.d.ts +0 -16
  123. package/dist/src/envman/shim.d.ts.map +0 -1
  124. package/dist/src/envman/shim.js +0 -66
  125. package/dist/src/envman/types.d.ts +0 -55
  126. package/dist/src/envman/types.d.ts.map +0 -1
  127. package/dist/src/envman/types.js +0 -12
  128. package/dist/src/lib.d.ts +0 -33
  129. package/dist/src/lib.d.ts.map +0 -1
  130. package/dist/src/lib.js +0 -37
  131. package/dist/src/pipeline.d.ts +0 -3
  132. package/dist/src/pipeline.d.ts.map +0 -1
  133. package/dist/src/pipeline.js +0 -57
  134. package/dist/src/runner-node-step.test.d.ts +0 -12
  135. package/dist/src/runner-node-step.test.d.ts.map +0 -1
  136. package/dist/src/runner-node-step.test.js +0 -61
  137. package/dist/src/runner.d.ts +0 -31
  138. package/dist/src/runner.d.ts.map +0 -1
  139. package/dist/src/runner.js +0 -240
  140. package/dist/src/shared/detect-project.d.ts +0 -57
  141. package/dist/src/shared/detect-project.d.ts.map +0 -1
  142. package/dist/src/shared/detect-project.js +0 -219
  143. package/dist/src/shared/detect-project.test.d.ts +0 -2
  144. package/dist/src/shared/detect-project.test.d.ts.map +0 -1
  145. package/dist/src/shared/detect-project.test.js +0 -161
  146. package/dist/src/shared/git.d.ts +0 -25
  147. package/dist/src/shared/git.d.ts.map +0 -1
  148. package/dist/src/shared/git.js +0 -53
  149. package/dist/src/shared/git.test.d.ts +0 -9
  150. package/dist/src/shared/git.test.d.ts.map +0 -1
  151. package/dist/src/shared/git.test.js +0 -66
  152. package/dist/src/shared/gitignore.d.ts +0 -6
  153. package/dist/src/shared/gitignore.d.ts.map +0 -1
  154. package/dist/src/shared/gitignore.js +0 -26
  155. package/dist/src/shared/gradle-settings.d.ts +0 -49
  156. package/dist/src/shared/gradle-settings.d.ts.map +0 -1
  157. package/dist/src/shared/gradle-settings.js +0 -138
  158. package/dist/src/shared/gradle-settings.test.d.ts +0 -2
  159. package/dist/src/shared/gradle-settings.test.d.ts.map +0 -1
  160. package/dist/src/shared/gradle-settings.test.js +0 -65
  161. package/dist/src/shared/prompts.d.ts +0 -30
  162. package/dist/src/shared/prompts.d.ts.map +0 -1
  163. package/dist/src/shared/prompts.js +0 -121
  164. package/dist/src/shared/xcode-container.test.d.ts +0 -2
  165. package/dist/src/shared/xcode-container.test.d.ts.map +0 -1
  166. package/dist/src/shared/xcode-container.test.js +0 -123
  167. package/dist/src/step-marker.d.ts +0 -12
  168. package/dist/src/step-marker.d.ts.map +0 -1
  169. package/dist/src/step-marker.js +0 -29
  170. package/dist/src/step-marker.test.d.ts +0 -11
  171. package/dist/src/step-marker.test.d.ts.map +0 -1
  172. package/dist/src/step-marker.test.js +0 -45
  173. package/dist/src/types.d.ts +0 -58
  174. package/dist/src/types.d.ts.map +0 -1
  175. package/dist/src/types.js +0 -2
  176. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts +0 -28
  177. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.d.ts.map +0 -1
  178. package/dist/src/yaml/a-cache-path-must-not-swallow-a-credential.test.js +0 -223
  179. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts +0 -20
  180. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.d.ts.map +0 -1
  181. package/dist/src/yaml/a-declared-secret-reaches-the-file-step.test.js +0 -201
  182. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts +0 -37
  183. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.d.ts.map +0 -1
  184. package/dist/src/yaml/a-declared-slot-may-name-the-workflow-it-belongs-to.test.js +0 -255
  185. package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts +0 -32
  186. package/dist/src/yaml/a-missing-credential-is-loud.test.d.ts.map +0 -1
  187. package/dist/src/yaml/a-missing-credential-is-loud.test.js +0 -301
  188. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts +0 -18
  189. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.d.ts.map +0 -1
  190. package/dist/src/yaml/a-runtime-requirement-names-a-real-provider.test.js +0 -66
  191. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts +0 -34
  192. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.d.ts.map +0 -1
  193. package/dist/src/yaml/a-scoped-slot-must-name-a-workflow-the-pipeline-has.test.js +0 -218
  194. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts +0 -27
  195. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.d.ts.map +0 -1
  196. package/dist/src/yaml/a-value-this-instance-stored-is-a-value-it-has.test.js +0 -126
  197. package/dist/src/yaml/bitrise-compat.d.ts +0 -65
  198. package/dist/src/yaml/bitrise-compat.d.ts.map +0 -1
  199. package/dist/src/yaml/bitrise-compat.js +0 -206
  200. package/dist/src/yaml/bitrise-compat.test.d.ts +0 -5
  201. package/dist/src/yaml/bitrise-compat.test.d.ts.map +0 -1
  202. package/dist/src/yaml/bitrise-compat.test.js +0 -347
  203. package/dist/src/yaml/cache-key-missing-file.test.d.ts +0 -12
  204. package/dist/src/yaml/cache-key-missing-file.test.d.ts.map +0 -1
  205. package/dist/src/yaml/cache-key-missing-file.test.js +0 -116
  206. package/dist/src/yaml/converter.d.ts +0 -103
  207. package/dist/src/yaml/converter.d.ts.map +0 -1
  208. package/dist/src/yaml/converter.js +0 -420
  209. package/dist/src/yaml/converter.test.d.ts +0 -5
  210. package/dist/src/yaml/converter.test.d.ts.map +0 -1
  211. package/dist/src/yaml/converter.test.js +0 -548
  212. package/dist/src/yaml/e2e.test.d.ts +0 -6
  213. package/dist/src/yaml/e2e.test.d.ts.map +0 -1
  214. package/dist/src/yaml/e2e.test.js +0 -446
  215. package/dist/src/yaml/env-resolver.d.ts +0 -218
  216. package/dist/src/yaml/env-resolver.d.ts.map +0 -1
  217. package/dist/src/yaml/env-resolver.js +0 -591
  218. package/dist/src/yaml/env-resolver.test.d.ts +0 -5
  219. package/dist/src/yaml/env-resolver.test.d.ts.map +0 -1
  220. package/dist/src/yaml/env-resolver.test.js +0 -502
  221. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts +0 -16
  222. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.d.ts.map +0 -1
  223. package/dist/src/yaml/every-build-log-witnesses-the-commit-on-disk.test.js +0 -126
  224. package/dist/src/yaml/fidelity-input-digest.d.ts +0 -37
  225. package/dist/src/yaml/fidelity-input-digest.d.ts.map +0 -1
  226. package/dist/src/yaml/fidelity-input-digest.js +0 -208
  227. package/dist/src/yaml/fidelity-input-digest.test.d.ts +0 -2
  228. package/dist/src/yaml/fidelity-input-digest.test.d.ts.map +0 -1
  229. package/dist/src/yaml/fidelity-input-digest.test.js +0 -167
  230. package/dist/src/yaml/fidelity-manifest.d.ts +0 -126
  231. package/dist/src/yaml/fidelity-manifest.d.ts.map +0 -1
  232. package/dist/src/yaml/fidelity-manifest.js +0 -134
  233. package/dist/src/yaml/fidelity-manifest.test.d.ts +0 -12
  234. package/dist/src/yaml/fidelity-manifest.test.d.ts.map +0 -1
  235. package/dist/src/yaml/fidelity-manifest.test.js +0 -251
  236. package/dist/src/yaml/interactive-prompts.d.ts +0 -71
  237. package/dist/src/yaml/interactive-prompts.d.ts.map +0 -1
  238. package/dist/src/yaml/interactive-prompts.js +0 -260
  239. package/dist/src/yaml/meta-helpers.d.ts +0 -28
  240. package/dist/src/yaml/meta-helpers.d.ts.map +0 -1
  241. package/dist/src/yaml/meta-helpers.js +0 -46
  242. package/dist/src/yaml/missing-env-handler.d.ts +0 -45
  243. package/dist/src/yaml/missing-env-handler.d.ts.map +0 -1
  244. package/dist/src/yaml/missing-env-handler.js +0 -64
  245. package/dist/src/yaml/parser.d.ts +0 -33
  246. package/dist/src/yaml/parser.d.ts.map +0 -1
  247. package/dist/src/yaml/parser.js +0 -148
  248. package/dist/src/yaml/parser.test.d.ts +0 -5
  249. package/dist/src/yaml/parser.test.d.ts.map +0 -1
  250. package/dist/src/yaml/parser.test.js +0 -83
  251. package/dist/src/yaml/pipeline-with-secrets.d.ts +0 -25
  252. package/dist/src/yaml/pipeline-with-secrets.d.ts.map +0 -1
  253. package/dist/src/yaml/pipeline-with-secrets.js +0 -76
  254. package/dist/src/yaml/platform-detector.d.ts +0 -83
  255. package/dist/src/yaml/platform-detector.d.ts.map +0 -1
  256. package/dist/src/yaml/platform-detector.js +0 -189
  257. package/dist/src/yaml/platform-detector.test.d.ts +0 -5
  258. package/dist/src/yaml/platform-detector.test.d.ts.map +0 -1
  259. package/dist/src/yaml/platform-detector.test.js +0 -525
  260. package/dist/src/yaml/preflight-validation.d.ts +0 -29
  261. package/dist/src/yaml/preflight-validation.d.ts.map +0 -1
  262. package/dist/src/yaml/preflight-validation.js +0 -21
  263. package/dist/src/yaml/secrets-manager.d.ts +0 -87
  264. package/dist/src/yaml/secrets-manager.d.ts.map +0 -1
  265. package/dist/src/yaml/secrets-manager.js +0 -230
  266. package/dist/src/yaml/shell-assignments.d.ts +0 -40
  267. package/dist/src/yaml/shell-assignments.d.ts.map +0 -1
  268. package/dist/src/yaml/shell-assignments.js +0 -77
  269. package/dist/src/yaml/step-validator-check-failure.test.d.ts +0 -24
  270. package/dist/src/yaml/step-validator-check-failure.test.d.ts.map +0 -1
  271. package/dist/src/yaml/step-validator-check-failure.test.js +0 -130
  272. package/dist/src/yaml/step-validator-self-assigned.test.d.ts +0 -23
  273. package/dist/src/yaml/step-validator-self-assigned.test.d.ts.map +0 -1
  274. package/dist/src/yaml/step-validator-self-assigned.test.js +0 -191
  275. package/dist/src/yaml/step-validator.d.ts +0 -67
  276. package/dist/src/yaml/step-validator.d.ts.map +0 -1
  277. package/dist/src/yaml/step-validator.js +0 -466
  278. package/dist/src/yaml/step-validator.test.d.ts +0 -18
  279. package/dist/src/yaml/step-validator.test.d.ts.map +0 -1
  280. package/dist/src/yaml/step-validator.test.js +0 -140
  281. package/dist/src/yaml/steps/android-sign.d.ts +0 -35
  282. package/dist/src/yaml/steps/android-sign.d.ts.map +0 -1
  283. package/dist/src/yaml/steps/android-sign.js +0 -147
  284. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts +0 -2
  285. package/dist/src/yaml/steps/android-variant-resolution.test.d.ts.map +0 -1
  286. package/dist/src/yaml/steps/android-variant-resolution.test.js +0 -260
  287. package/dist/src/yaml/steps/android-version.d.ts +0 -26
  288. package/dist/src/yaml/steps/android-version.d.ts.map +0 -1
  289. package/dist/src/yaml/steps/android-version.js +0 -128
  290. package/dist/src/yaml/steps/android-version.test.d.ts +0 -5
  291. package/dist/src/yaml/steps/android-version.test.d.ts.map +0 -1
  292. package/dist/src/yaml/steps/android-version.test.js +0 -196
  293. package/dist/src/yaml/steps/android.d.ts +0 -156
  294. package/dist/src/yaml/steps/android.d.ts.map +0 -1
  295. package/dist/src/yaml/steps/android.js +0 -1084
  296. package/dist/src/yaml/steps/app-store-deploy.d.ts +0 -48
  297. package/dist/src/yaml/steps/app-store-deploy.d.ts.map +0 -1
  298. package/dist/src/yaml/steps/app-store-deploy.js +0 -167
  299. package/dist/src/yaml/steps/base.d.ts +0 -263
  300. package/dist/src/yaml/steps/base.d.ts.map +0 -1
  301. package/dist/src/yaml/steps/base.js +0 -380
  302. package/dist/src/yaml/steps/bitrise-android-tools.d.ts +0 -26
  303. package/dist/src/yaml/steps/bitrise-android-tools.d.ts.map +0 -1
  304. package/dist/src/yaml/steps/bitrise-android-tools.js +0 -200
  305. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts +0 -5
  306. package/dist/src/yaml/steps/bitrise-android-tools.test.d.ts.map +0 -1
  307. package/dist/src/yaml/steps/bitrise-android-tools.test.js +0 -280
  308. package/dist/src/yaml/steps/bitrise-apk-info.d.ts +0 -22
  309. package/dist/src/yaml/steps/bitrise-apk-info.d.ts.map +0 -1
  310. package/dist/src/yaml/steps/bitrise-apk-info.js +0 -144
  311. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts +0 -5
  312. package/dist/src/yaml/steps/bitrise-apk-info.test.d.ts.map +0 -1
  313. package/dist/src/yaml/steps/bitrise-apk-info.test.js +0 -331
  314. package/dist/src/yaml/steps/bitrise-slack.d.ts +0 -49
  315. package/dist/src/yaml/steps/bitrise-slack.d.ts.map +0 -1
  316. package/dist/src/yaml/steps/bitrise-slack.js +0 -280
  317. package/dist/src/yaml/steps/bitrise-slack.test.d.ts +0 -5
  318. package/dist/src/yaml/steps/bitrise-slack.test.d.ts.map +0 -1
  319. package/dist/src/yaml/steps/bitrise-slack.test.js +0 -484
  320. package/dist/src/yaml/steps/bitrise-ssh.d.ts +0 -27
  321. package/dist/src/yaml/steps/bitrise-ssh.d.ts.map +0 -1
  322. package/dist/src/yaml/steps/bitrise-ssh.js +0 -134
  323. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts +0 -5
  324. package/dist/src/yaml/steps/bitrise-ssh.test.d.ts.map +0 -1
  325. package/dist/src/yaml/steps/bitrise-ssh.test.js +0 -205
  326. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts +0 -27
  327. package/dist/src/yaml/steps/cache-pull-daemon.test.d.ts.map +0 -1
  328. package/dist/src/yaml/steps/cache-pull-daemon.test.js +0 -212
  329. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts +0 -42
  330. package/dist/src/yaml/steps/cache-pull-restore-roots.test.d.ts.map +0 -1
  331. package/dist/src/yaml/steps/cache-pull-restore-roots.test.js +0 -209
  332. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts +0 -27
  333. package/dist/src/yaml/steps/cache-push-daemon.test.d.ts.map +0 -1
  334. package/dist/src/yaml/steps/cache-push-daemon.test.js +0 -171
  335. package/dist/src/yaml/steps/cache.d.ts +0 -59
  336. package/dist/src/yaml/steps/cache.d.ts.map +0 -1
  337. package/dist/src/yaml/steps/cache.js +0 -1027
  338. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts +0 -42
  339. package/dist/src/yaml/steps/cocoapods-deployment-floor.d.ts.map +0 -1
  340. package/dist/src/yaml/steps/cocoapods-deployment-floor.js +0 -140
  341. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts +0 -11
  342. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.d.ts.map +0 -1
  343. package/dist/src/yaml/steps/cocoapods-deployment-floor.test.js +0 -176
  344. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts +0 -22
  345. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.d.ts.map +0 -1
  346. package/dist/src/yaml/steps/cocoapods-install-emits-valid-bash.test.js +0 -97
  347. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts +0 -17
  348. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.d.ts.map +0 -1
  349. package/dist/src/yaml/steps/cocoapods-locked-bundler.test.js +0 -282
  350. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts +0 -17
  351. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.d.ts.map +0 -1
  352. package/dist/src/yaml/steps/cocoapods-skip-if-absent.test.js +0 -132
  353. package/dist/src/yaml/steps/envstore-loader.test.d.ts +0 -15
  354. package/dist/src/yaml/steps/envstore-loader.test.d.ts.map +0 -1
  355. package/dist/src/yaml/steps/envstore-loader.test.js +0 -143
  356. package/dist/src/yaml/steps/fastlane.d.ts +0 -27
  357. package/dist/src/yaml/steps/fastlane.d.ts.map +0 -1
  358. package/dist/src/yaml/steps/fastlane.js +0 -79
  359. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts +0 -53
  360. package/dist/src/yaml/steps/fidelity-aspect-guard.d.ts.map +0 -1
  361. package/dist/src/yaml/steps/fidelity-aspect-guard.js +0 -72
  362. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts +0 -11
  363. package/dist/src/yaml/steps/fidelity-aspect-guard.test.d.ts.map +0 -1
  364. package/dist/src/yaml/steps/fidelity-aspect-guard.test.js +0 -50
  365. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts +0 -87
  366. package/dist/src/yaml/steps/fidelity-reference-provenance.d.ts.map +0 -1
  367. package/dist/src/yaml/steps/fidelity-reference-provenance.js +0 -111
  368. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts +0 -22
  369. package/dist/src/yaml/steps/fidelity-reference-provenance.test.d.ts.map +0 -1
  370. package/dist/src/yaml/steps/fidelity-reference-provenance.test.js +0 -118
  371. package/dist/src/yaml/steps/file.d.ts +0 -52
  372. package/dist/src/yaml/steps/file.d.ts.map +0 -1
  373. package/dist/src/yaml/steps/file.js +0 -108
  374. package/dist/src/yaml/steps/flutter.d.ts +0 -63
  375. package/dist/src/yaml/steps/flutter.d.ts.map +0 -1
  376. package/dist/src/yaml/steps/flutter.js +0 -215
  377. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts +0 -16
  378. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.d.ts.map +0 -1
  379. package/dist/src/yaml/steps/git-clone-names-the-inputs-it-ignores.test.js +0 -127
  380. package/dist/src/yaml/steps/git-clone.d.ts +0 -32
  381. package/dist/src/yaml/steps/git-clone.d.ts.map +0 -1
  382. package/dist/src/yaml/steps/git-clone.js +0 -171
  383. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts +0 -10
  384. package/dist/src/yaml/steps/git-fetch-retry-exec.test.d.ts.map +0 -1
  385. package/dist/src/yaml/steps/git-fetch-retry-exec.test.js +0 -162
  386. package/dist/src/yaml/steps/git-fetch-retry.d.ts +0 -62
  387. package/dist/src/yaml/steps/git-fetch-retry.d.ts.map +0 -1
  388. package/dist/src/yaml/steps/git-fetch-retry.js +0 -155
  389. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts +0 -5
  390. package/dist/src/yaml/steps/git-fetch-retry.test.d.ts.map +0 -1
  391. package/dist/src/yaml/steps/git-fetch-retry.test.js +0 -86
  392. package/dist/src/yaml/steps/google-play-deploy.d.ts +0 -37
  393. package/dist/src/yaml/steps/google-play-deploy.d.ts.map +0 -1
  394. package/dist/src/yaml/steps/google-play-deploy.js +0 -193
  395. package/dist/src/yaml/steps/google-play-deploy.test.d.ts +0 -5
  396. package/dist/src/yaml/steps/google-play-deploy.test.d.ts.map +0 -1
  397. package/dist/src/yaml/steps/google-play-deploy.test.js +0 -310
  398. package/dist/src/yaml/steps/gradle-memory.d.ts +0 -61
  399. package/dist/src/yaml/steps/gradle-memory.d.ts.map +0 -1
  400. package/dist/src/yaml/steps/gradle-memory.js +0 -311
  401. package/dist/src/yaml/steps/gradle-memory.test.d.ts +0 -2
  402. package/dist/src/yaml/steps/gradle-memory.test.d.ts.map +0 -1
  403. package/dist/src/yaml/steps/gradle-memory.test.js +0 -297
  404. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts +0 -28
  405. package/dist/src/yaml/steps/gradle-sdk-cmake.d.ts.map +0 -1
  406. package/dist/src/yaml/steps/gradle-sdk-cmake.js +0 -107
  407. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts +0 -2
  408. package/dist/src/yaml/steps/gradle-sdk-cmake.test.d.ts.map +0 -1
  409. package/dist/src/yaml/steps/gradle-sdk-cmake.test.js +0 -183
  410. package/dist/src/yaml/steps/index.d.ts +0 -10
  411. package/dist/src/yaml/steps/index.d.ts.map +0 -1
  412. package/dist/src/yaml/steps/index.js +0 -1461
  413. package/dist/src/yaml/steps/ios-deps.d.ts +0 -78
  414. package/dist/src/yaml/steps/ios-deps.d.ts.map +0 -1
  415. package/dist/src/yaml/steps/ios-deps.js +0 -279
  416. package/dist/src/yaml/steps/ios-deps.test.d.ts +0 -5
  417. package/dist/src/yaml/steps/ios-deps.test.d.ts.map +0 -1
  418. package/dist/src/yaml/steps/ios-deps.test.js +0 -90
  419. package/dist/src/yaml/steps/ios-signing.d.ts +0 -31
  420. package/dist/src/yaml/steps/ios-signing.d.ts.map +0 -1
  421. package/dist/src/yaml/steps/ios-signing.js +0 -144
  422. package/dist/src/yaml/steps/ios-version.d.ts +0 -47
  423. package/dist/src/yaml/steps/ios-version.d.ts.map +0 -1
  424. package/dist/src/yaml/steps/ios-version.js +0 -151
  425. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts +0 -10
  426. package/dist/src/yaml/steps/java-home-version-spec.test.d.ts.map +0 -1
  427. package/dist/src/yaml/steps/java-home-version-spec.test.js +0 -58
  428. package/dist/src/yaml/steps/linting.d.ts +0 -47
  429. package/dist/src/yaml/steps/linting.d.ts.map +0 -1
  430. package/dist/src/yaml/steps/linting.js +0 -148
  431. package/dist/src/yaml/steps/phase2.test.d.ts +0 -6
  432. package/dist/src/yaml/steps/phase2.test.d.ts.map +0 -1
  433. package/dist/src/yaml/steps/phase2.test.js +0 -197
  434. package/dist/src/yaml/steps/phase3.test.d.ts +0 -5
  435. package/dist/src/yaml/steps/phase3.test.d.ts.map +0 -1
  436. package/dist/src/yaml/steps/phase3.test.js +0 -144
  437. package/dist/src/yaml/steps/phase4.test.d.ts +0 -5
  438. package/dist/src/yaml/steps/phase4.test.d.ts.map +0 -1
  439. package/dist/src/yaml/steps/phase4.test.js +0 -166
  440. package/dist/src/yaml/steps/phase5.test.d.ts +0 -6
  441. package/dist/src/yaml/steps/phase5.test.d.ts.map +0 -1
  442. package/dist/src/yaml/steps/phase5.test.js +0 -263
  443. package/dist/src/yaml/steps/registry.d.ts +0 -88
  444. package/dist/src/yaml/steps/registry.d.ts.map +0 -1
  445. package/dist/src/yaml/steps/registry.js +0 -125
  446. package/dist/src/yaml/steps/registry.test.d.ts +0 -5
  447. package/dist/src/yaml/steps/registry.test.d.ts.map +0 -1
  448. package/dist/src/yaml/steps/registry.test.js +0 -235
  449. package/dist/src/yaml/steps/release.d.ts +0 -50
  450. package/dist/src/yaml/steps/release.d.ts.map +0 -1
  451. package/dist/src/yaml/steps/release.js +0 -154
  452. package/dist/src/yaml/steps/render-post-processor.d.ts +0 -100
  453. package/dist/src/yaml/steps/render-post-processor.d.ts.map +0 -1
  454. package/dist/src/yaml/steps/render-post-processor.js +0 -270
  455. package/dist/src/yaml/steps/render-post-processor.test.d.ts +0 -13
  456. package/dist/src/yaml/steps/render-post-processor.test.d.ts.map +0 -1
  457. package/dist/src/yaml/steps/render-post-processor.test.js +0 -220
  458. package/dist/src/yaml/steps/script.d.ts +0 -23
  459. package/dist/src/yaml/steps/script.d.ts.map +0 -1
  460. package/dist/src/yaml/steps/script.js +0 -63
  461. package/dist/src/yaml/steps/spec-validation.test.d.ts +0 -6
  462. package/dist/src/yaml/steps/spec-validation.test.d.ts.map +0 -1
  463. package/dist/src/yaml/steps/spec-validation.test.js +0 -130
  464. package/dist/src/yaml/steps/steps.test.d.ts +0 -6
  465. package/dist/src/yaml/steps/steps.test.d.ts.map +0 -1
  466. package/dist/src/yaml/steps/steps.test.js +0 -881
  467. package/dist/src/yaml/steps/structural-facts.d.ts +0 -992
  468. package/dist/src/yaml/steps/structural-facts.d.ts.map +0 -1
  469. package/dist/src/yaml/steps/structural-facts.js +0 -3276
  470. package/dist/src/yaml/steps/structural-facts.test.d.ts +0 -12
  471. package/dist/src/yaml/steps/structural-facts.test.d.ts.map +0 -1
  472. package/dist/src/yaml/steps/structural-facts.test.js +0 -3039
  473. package/dist/src/yaml/steps/test-config.d.ts +0 -5
  474. package/dist/src/yaml/steps/test-config.d.ts.map +0 -1
  475. package/dist/src/yaml/steps/test-config.js +0 -25
  476. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts +0 -28
  477. package/dist/src/yaml/steps/trim-align-corpus.test.d.ts.map +0 -1
  478. package/dist/src/yaml/steps/trim-align-corpus.test.js +0 -383
  479. package/dist/src/yaml/steps/trim-align.d.ts +0 -87
  480. package/dist/src/yaml/steps/trim-align.d.ts.map +0 -1
  481. package/dist/src/yaml/steps/trim-align.js +0 -367
  482. package/dist/src/yaml/steps/trim-align.test.d.ts +0 -11
  483. package/dist/src/yaml/steps/trim-align.test.d.ts.map +0 -1
  484. package/dist/src/yaml/steps/trim-align.test.js +0 -261
  485. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts +0 -66
  486. package/dist/src/yaml/steps/ui-fidelity-preview-android.d.ts.map +0 -1
  487. package/dist/src/yaml/steps/ui-fidelity-preview-android.js +0 -251
  488. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts +0 -13
  489. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.d.ts.map +0 -1
  490. package/dist/src/yaml/steps/ui-fidelity-preview-android.test.js +0 -302
  491. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts +0 -134
  492. package/dist/src/yaml/steps/ui-fidelity-preview.d.ts.map +0 -1
  493. package/dist/src/yaml/steps/ui-fidelity-preview.js +0 -173
  494. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts +0 -11
  495. package/dist/src/yaml/steps/ui-fidelity-preview.test.d.ts.map +0 -1
  496. package/dist/src/yaml/steps/ui-fidelity-preview.test.js +0 -210
  497. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts +0 -155
  498. package/dist/src/yaml/steps/ui-fidelity-render-android.d.ts.map +0 -1
  499. package/dist/src/yaml/steps/ui-fidelity-render-android.js +0 -1389
  500. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts +0 -2
  501. package/dist/src/yaml/steps/ui-fidelity-render-android.test.d.ts.map +0 -1
  502. package/dist/src/yaml/steps/ui-fidelity-render-android.test.js +0 -1106
  503. package/dist/src/yaml/steps/ui-fidelity-render.d.ts +0 -230
  504. package/dist/src/yaml/steps/ui-fidelity-render.d.ts.map +0 -1
  505. package/dist/src/yaml/steps/ui-fidelity-render.js +0 -1597
  506. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts +0 -18
  507. package/dist/src/yaml/steps/ui-fidelity-render.test.d.ts.map +0 -1
  508. package/dist/src/yaml/steps/ui-fidelity-render.test.js +0 -1871
  509. package/dist/src/yaml/steps/xcode-app-product.d.ts +0 -90
  510. package/dist/src/yaml/steps/xcode-app-product.d.ts.map +0 -1
  511. package/dist/src/yaml/steps/xcode-app-product.js +0 -247
  512. package/dist/src/yaml/steps/xcode-app-product.test.d.ts +0 -2
  513. package/dist/src/yaml/steps/xcode-app-product.test.d.ts.map +0 -1
  514. package/dist/src/yaml/steps/xcode-app-product.test.js +0 -202
  515. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts +0 -30
  516. package/dist/src/yaml/steps/xcode-derived-data.test.d.ts.map +0 -1
  517. package/dist/src/yaml/steps/xcode-derived-data.test.js +0 -253
  518. package/dist/src/yaml/steps/xcode-destination.d.ts +0 -47
  519. package/dist/src/yaml/steps/xcode-destination.d.ts.map +0 -1
  520. package/dist/src/yaml/steps/xcode-destination.js +0 -202
  521. package/dist/src/yaml/steps/xcode-destination.test.d.ts +0 -9
  522. package/dist/src/yaml/steps/xcode-destination.test.d.ts.map +0 -1
  523. package/dist/src/yaml/steps/xcode-destination.test.js +0 -227
  524. package/dist/src/yaml/steps/xcode-new.test.d.ts +0 -5
  525. package/dist/src/yaml/steps/xcode-new.test.d.ts.map +0 -1
  526. package/dist/src/yaml/steps/xcode-new.test.js +0 -211
  527. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts +0 -9
  528. package/dist/src/yaml/steps/xcode-resolve-retry.test.d.ts.map +0 -1
  529. package/dist/src/yaml/steps/xcode-resolve-retry.test.js +0 -146
  530. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts +0 -53
  531. package/dist/src/yaml/steps/xcode-simulator-archs.d.ts.map +0 -1
  532. package/dist/src/yaml/steps/xcode-simulator-archs.js +0 -98
  533. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts +0 -21
  534. package/dist/src/yaml/steps/xcode-simulator-archs.test.d.ts.map +0 -1
  535. package/dist/src/yaml/steps/xcode-simulator-archs.test.js +0 -155
  536. package/dist/src/yaml/steps/xcode.d.ts +0 -230
  537. package/dist/src/yaml/steps/xcode.d.ts.map +0 -1
  538. package/dist/src/yaml/steps/xcode.js +0 -1340
  539. package/dist/src/yaml/types.d.ts +0 -76
  540. package/dist/src/yaml/types.d.ts.map +0 -1
  541. package/dist/src/yaml/types.js +0 -5
  542. package/dist/src/yaml/validation-types.d.ts +0 -102
  543. package/dist/src/yaml/validation-types.d.ts.map +0 -1
  544. package/dist/src/yaml/validation-types.js +0 -8
  545. package/dist/src/yaml/yaml-updater.d.ts +0 -24
  546. package/dist/src/yaml/yaml-updater.d.ts.map +0 -1
  547. package/dist/src/yaml/yaml-updater.js +0 -128
@@ -1,205 +0,0 @@
1
- /**
2
- * Unit tests for Bitrise activate-ssh-key step
3
- */
4
- import { describe, test, expect } from '@jest/globals';
5
- import { BitriseSSHStepExecutor } from './bitrise-ssh.js';
6
- describe('BitriseSSHStepExecutor', () => {
7
- const mockConfig = {
8
- artifactsDir: '/ci/artifacts',
9
- interpreters: {
10
- python: '/usr/bin/python3',
11
- ruby: '/usr/bin/ruby',
12
- node: '/usr/bin/node',
13
- bash: '/bin/bash',
14
- },
15
- maxConcurrentJobs: 4,
16
- paths: {
17
- buildsDir: '/ci/builds',
18
- cacheDir: '/ci/cache',
19
- derivedDataDir: '/ci/derived_data',
20
- },
21
- };
22
- describe('Basic functionality', () => {
23
- test('should create SSH activation script with default values', async () => {
24
- const executor = new BitriseSSHStepExecutor();
25
- const env = {
26
- SSH_RSA_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----\ntest-key-content\n-----END RSA PRIVATE KEY-----',
27
- };
28
- const result = await executor.execute({}, env, mockConfig);
29
- expect(result.kind).toBe('script');
30
- expect(result.name).toBe('activate-ssh-key');
31
- expect(result.script).toContain('mkdir -p ~/.ssh');
32
- expect(result.script).toContain('chmod 700 ~/.ssh');
33
- expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}" | tr \'\\r\' \'\\n\' > ~/.ssh/default.pem');
34
- expect(result.script).toContain('chmod 600 ~/.ssh/default.pem');
35
- });
36
- test('should include SSH agent commands', async () => {
37
- const executor = new BitriseSSHStepExecutor();
38
- const env = {
39
- SSH_RSA_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----\ntest-key\n-----END RSA PRIVATE KEY-----',
40
- };
41
- const result = await executor.execute({}, env, mockConfig);
42
- expect(result.script).toContain('eval "$(ssh-agent -s)"');
43
- expect(result.script).toContain('ssh-add ~/.ssh/default.pem');
44
- });
45
- test('should configure SSH client settings', async () => {
46
- const executor = new BitriseSSHStepExecutor();
47
- const env = {
48
- SSH_RSA_PRIVATE_KEY: 'test-key',
49
- };
50
- const result = await executor.execute({}, env, mockConfig);
51
- expect(result.script).toContain('cat >> ~/.ssh/config');
52
- expect(result.script).toContain('StrictHostKeyChecking no');
53
- expect(result.script).toContain('UserKnownHostsFile=/dev/null');
54
- expect(result.script).toContain('chmod 600 ~/.ssh/config');
55
- });
56
- });
57
- describe('Custom SSH key path', () => {
58
- test('should use custom ssh_key_save_path when provided', async () => {
59
- const executor = new BitriseSSHStepExecutor();
60
- const env = {
61
- SSH_RSA_PRIVATE_KEY: 'test-key',
62
- };
63
- const inputs = {
64
- ssh_key_save_path: '~/.ssh/custom_key',
65
- };
66
- const result = await executor.execute(inputs, env, mockConfig);
67
- expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}" | tr \'\\r\' \'\\n\' > ~/.ssh/custom_key');
68
- expect(result.script).toContain('chmod 600 ~/.ssh/custom_key');
69
- expect(result.script).toContain('ssh-add ~/.ssh/custom_key');
70
- });
71
- });
72
- describe('Remove other identities', () => {
73
- test('should remove other SSH identities when is_remove_other_identities is true', async () => {
74
- const executor = new BitriseSSHStepExecutor();
75
- const env = {
76
- SSH_RSA_PRIVATE_KEY: 'test-key',
77
- };
78
- const inputs = {
79
- is_remove_other_identities: 'true',
80
- };
81
- const result = await executor.execute(inputs, env, mockConfig);
82
- expect(result.script).toContain('ssh-add -D');
83
- });
84
- test('should remove other SSH identities when is_remove_other_identities is yes', async () => {
85
- const executor = new BitriseSSHStepExecutor();
86
- const env = {
87
- SSH_RSA_PRIVATE_KEY: 'test-key',
88
- };
89
- const inputs = {
90
- is_remove_other_identities: 'yes',
91
- };
92
- const result = await executor.execute(inputs, env, mockConfig);
93
- expect(result.script).toContain('ssh-add -D');
94
- });
95
- test('should not remove other identities when is_remove_other_identities is false', async () => {
96
- const executor = new BitriseSSHStepExecutor();
97
- const env = {
98
- SSH_RSA_PRIVATE_KEY: 'test-key',
99
- };
100
- const inputs = {
101
- is_remove_other_identities: 'false',
102
- };
103
- const result = await executor.execute(inputs, env, mockConfig);
104
- expect(result.script).not.toContain('ssh-add -D');
105
- });
106
- test('should remove other identities by default', async () => {
107
- const executor = new BitriseSSHStepExecutor();
108
- const env = {
109
- SSH_RSA_PRIVATE_KEY: 'test-key',
110
- };
111
- const result = await executor.execute({}, env, mockConfig);
112
- // Default is 'true'
113
- expect(result.script).toContain('ssh-add -D');
114
- });
115
- });
116
- describe('Error handling', () => {
117
- test('should throw error when SSH_RSA_PRIVATE_KEY is missing', async () => {
118
- const executor = new BitriseSSHStepExecutor();
119
- const env = {}; // No SSH key
120
- await expect(executor.execute({}, env, mockConfig)).rejects.toThrow(/Missing environment variable: 'SSH_RSA_PRIVATE_KEY'/);
121
- });
122
- test('should include helpful error message for missing SSH key', async () => {
123
- const executor = new BitriseSSHStepExecutor();
124
- const env = {};
125
- await expect(executor.execute({}, env, mockConfig)).rejects.toThrow(/SSH private key used for Git authentication/);
126
- });
127
- test('should suggest how to configure SSH key in error message', async () => {
128
- const executor = new BitriseSSHStepExecutor();
129
- const env = {};
130
- await expect(executor.execute({}, env, mockConfig)).rejects.toThrow(/Store private key in CI secrets/);
131
- });
132
- });
133
- describe('Script structure', () => {
134
- test('should include bash error handling directives', async () => {
135
- const executor = new BitriseSSHStepExecutor();
136
- const env = {
137
- SSH_RSA_PRIVATE_KEY: 'test-key',
138
- };
139
- const result = await executor.execute({}, env, mockConfig);
140
- expect(result.script).toContain('#!/bin/bash');
141
- expect(result.script).toContain('set -e');
142
- expect(result.script).toContain('set -o pipefail');
143
- });
144
- test('should include informative messages', async () => {
145
- const executor = new BitriseSSHStepExecutor();
146
- const env = {
147
- SSH_RSA_PRIVATE_KEY: 'test-key',
148
- };
149
- const result = await executor.execute({}, env, mockConfig);
150
- expect(result.script).toContain('Bitrise activate-ssh-key step → CI Build SSH activation');
151
- expect(result.script).toContain('Setting up SSH key for Git operations');
152
- expect(result.script).toContain('SSH key activated successfully');
153
- });
154
- });
155
- describe('Integration scenarios', () => {
156
- test('should handle complex SSH key with newlines', async () => {
157
- const executor = new BitriseSSHStepExecutor();
158
- const env = {
159
- SSH_RSA_PRIVATE_KEY: `-----BEGIN RSA PRIVATE KEY-----
160
- MIIEpAIBAAKCAQEA1234567890abcdef
161
- ghijklmnopqrstuvwxyz0123456789
162
- -----END RSA PRIVATE KEY-----`,
163
- };
164
- const result = await executor.execute({}, env, mockConfig);
165
- expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}"');
166
- expect(result.kind).toBe('script');
167
- });
168
- test('should work with custom path and remove identities disabled', async () => {
169
- const executor = new BitriseSSHStepExecutor();
170
- const env = {
171
- SSH_RSA_PRIVATE_KEY: 'custom-key-content',
172
- };
173
- const inputs = {
174
- ssh_key_save_path: '~/.ssh/my_ssh_key',
175
- is_remove_other_identities: 'false',
176
- };
177
- const result = await executor.execute(inputs, env, mockConfig);
178
- expect(result.script).toContain('echo "${SSH_RSA_PRIVATE_KEY}" | tr \'\\r\' \'\\n\' > ~/.ssh/my_ssh_key');
179
- expect(result.script).toContain('chmod 600 ~/.ssh/my_ssh_key');
180
- expect(result.script).toContain('ssh-add ~/.ssh/my_ssh_key');
181
- expect(result.script).not.toContain('ssh-add -D');
182
- });
183
- });
184
- describe('Bitrise compatibility', () => {
185
- test('should support Bitrise environment variable naming', async () => {
186
- const executor = new BitriseSSHStepExecutor();
187
- const env = {
188
- SSH_RSA_PRIVATE_KEY: 'bitrise-compatible-key',
189
- };
190
- const result = await executor.execute({}, env, mockConfig);
191
- // Should reference the exact environment variable name
192
- expect(result.script).toContain('${SSH_RSA_PRIVATE_KEY}');
193
- });
194
- test('should map to CI Build SSH activation pattern', async () => {
195
- const executor = new BitriseSSHStepExecutor();
196
- const env = {
197
- SSH_RSA_PRIVATE_KEY: 'test-key',
198
- };
199
- const result = await executor.execute({}, env, mockConfig);
200
- // Should include CI Build branding
201
- expect(result.script).toContain('CI Build SSH activation');
202
- });
203
- });
204
- });
205
- //# sourceMappingURL=bitrise-ssh.test.js.map
@@ -1,27 +0,0 @@
1
- /**
2
- * `cache-pull` over the daemon: a miss and a broken daemon are different things.
3
- *
4
- * `{ curl | zstd | tar; } 2>/dev/null` swallowed curl's message entirely, so a
5
- * 401, a 400, a 503, a 500 and a daemon that was not listening all printed the
6
- * same line as an empty cache:
7
- *
8
- * No cache found for key: pods-0fc6c3e8f03403bc5fb869d95e505969-HEAD
9
- *
10
- * Same class as the push-side defect in `27e05e5`, where `curl -f` threw the
11
- * response body away so `invalid_cache_key` never reached the log. A cold cache
12
- * is the normal case and must stay quiet; the point is only that a broken
13
- * daemon stops looking like one.
14
- *
15
- * These tests RUN the generated script against a **real listener with the real
16
- * curl**. Stubbing curl onto PATH cannot see this: the whole question is what
17
- * the real curl reports and where it writes it, so a stub that emits the status
18
- * itself would pass against a step that never asked for one.
19
- *
20
- * `zstd` and `tar` *are* stubbed, for two different reasons. zstd is not on
21
- * every host, and without it the pipeline fails before curl is reached — which
22
- * would make these pass vacuously. tar is stubbed because the generated script
23
- * extracts with `-C /`: nothing under test here is worth writing to the root of
24
- * the machine running the suite.
25
- */
26
- export {};
27
- //# sourceMappingURL=cache-pull-daemon.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-pull-daemon.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cache-pull-daemon.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
@@ -1,212 +0,0 @@
1
- /**
2
- * `cache-pull` over the daemon: a miss and a broken daemon are different things.
3
- *
4
- * `{ curl | zstd | tar; } 2>/dev/null` swallowed curl's message entirely, so a
5
- * 401, a 400, a 503, a 500 and a daemon that was not listening all printed the
6
- * same line as an empty cache:
7
- *
8
- * No cache found for key: pods-0fc6c3e8f03403bc5fb869d95e505969-HEAD
9
- *
10
- * Same class as the push-side defect in `27e05e5`, where `curl -f` threw the
11
- * response body away so `invalid_cache_key` never reached the log. A cold cache
12
- * is the normal case and must stay quiet; the point is only that a broken
13
- * daemon stops looking like one.
14
- *
15
- * These tests RUN the generated script against a **real listener with the real
16
- * curl**. Stubbing curl onto PATH cannot see this: the whole question is what
17
- * the real curl reports and where it writes it, so a stub that emits the status
18
- * itself would pass against a step that never asked for one.
19
- *
20
- * `zstd` and `tar` *are* stubbed, for two different reasons. zstd is not on
21
- * every host, and without it the pipeline fails before curl is reached — which
22
- * would make these pass vacuously. tar is stubbed because the generated script
23
- * extracts with `-C /`: nothing under test here is worth writing to the root of
24
- * the machine running the suite.
25
- */
26
- import { describe, test, expect } from '@jest/globals';
27
- import { execFile } from 'child_process';
28
- import { createHash } from 'crypto';
29
- import { mkdtempSync, writeFileSync, rmSync, mkdirSync, chmodSync } from 'fs';
30
- import { createServer } from 'http';
31
- import { join } from 'path';
32
- import { tmpdir } from 'os';
33
- import { promisify } from 'util';
34
- import { CachePullStepExecutor } from './cache.js';
35
- import { testConfigNoPeer } from './test-config.js';
36
- /**
37
- * Async on purpose. The listener below lives in this process, and
38
- * `execFileSync` blocks the event loop — so it would never answer curl, every
39
- * request would time out, and every case would look like a dead daemon
40
- * whatever the test asked for.
41
- */
42
- const run = promisify(execFile);
43
- const CACHE_KEY = 'pods-abc123def456-release-1.4';
44
- /**
45
- * An explicit `cache_key` is prefixed with a project scope so two repositories
46
- * writing the same key don't share a tarball. These fixtures run outside a git
47
- * remote, so the step's shell hashes the literal `"no-remote"` — derived here
48
- * rather than pasted, so it tracks the step.
49
- */
50
- const PROJECT_SCOPE = createHash('sha256').update('no-remote', 'utf8').digest('hex').slice(0, 8);
51
- const SCOPED_CACHE_KEY = `${PROJECT_SCOPE}-${CACHE_KEY}`;
52
- async function listen(handler, paths) {
53
- const server = createServer((req, res) => {
54
- const path = req.url ?? '/';
55
- paths.push(path);
56
- const { status, body } = handler(path);
57
- res.writeHead(status, { 'content-type': 'application/octet-stream' });
58
- res.end(body);
59
- });
60
- const port = await new Promise((resolve, reject) => {
61
- server.once('error', reject);
62
- server.listen(0, '127.0.0.1', () => {
63
- const address = server.address();
64
- resolve(typeof address === 'object' && address !== null ? address.port : 0);
65
- });
66
- });
67
- return { server, port };
68
- }
69
- async function runPull(options) {
70
- const dir = mkdtempSync(join(tmpdir(), 'cibuild-pull-'));
71
- const paths = [];
72
- const { server, port } = await listen((path) => {
73
- if (path.includes('/scope/')) {
74
- return { status: options.scopeStatus ?? 404, body: '{"error":"no_cache_for_scope"}' };
75
- }
76
- const status = options.keyStatus === 'dead' ? 404 : options.keyStatus;
77
- return {
78
- status,
79
- body: status === 200 ? 'a-tarball-shaped-payload' : '{"error":"cache_miss"}',
80
- };
81
- }, paths);
82
- // A dead daemon is a port nothing answers on — the one the listener just
83
- // released. Anything else and curl would be diagnosing the wrong failure.
84
- if (options.keyStatus === 'dead') {
85
- await new Promise((resolve) => server.close(() => resolve()));
86
- }
87
- try {
88
- const bin = join(dir, 'bin');
89
- mkdirSync(bin, { recursive: true });
90
- writeFileSync(join(bin, 'zstd'), '#!/bin/bash\ncat\n', 'utf-8');
91
- chmodSync(join(bin, 'zstd'), 0o755);
92
- // Writes nothing: see the file header on `-C /`.
93
- //
94
- // It has to answer `-tf` as well as extract. A restore now stages the
95
- // archive and reads its top-level names to decide which of them were
96
- // recorded against `/` and which against the checkout, so a stub that only
97
- // drained the stream made every hit look like a miss. Both project-relative
98
- // names this suite can ask about are listed, so the split runs whichever
99
- // form is under test. Where the bytes actually land is asserted against a
100
- // real tar in `cache-pull-restore-roots.test.ts`.
101
- writeFileSync(join(bin, 'tar'), [
102
- '#!/bin/bash',
103
- "case \"$1\" in",
104
- " -tf) printf 'Pods/\\nPods/marker\\nnode_modules/\\n'; exit 0 ;;",
105
- 'esac',
106
- '# `-xf -` must drain the stream, or the writer upstream dies of SIGPIPE',
107
- '# and the pipeline reports a failure that never happened.',
108
- 'for a in "$@"; do',
109
- ' if [ "$a" = "-" ]; then cat > /dev/null; exit 0; fi',
110
- 'done',
111
- 'exit 0',
112
- '',
113
- ].join('\n'), 'utf-8');
114
- chmodSync(join(bin, 'tar'), 0o755);
115
- // The preset form derives its key from a lockfile, so it needs one.
116
- if (options.technology) {
117
- writeFileSync(join(dir, 'package-lock.json'), '{"lockfileVersion":3}\n', 'utf-8');
118
- }
119
- const { script } = await new CachePullStepExecutor().execute(options.technology
120
- ? { technology: options.technology }
121
- : { cache_key: CACHE_KEY, cache_paths: ['Pods'] }, {}, testConfigNoPeer);
122
- const scriptPath = join(dir, '__cache_pull.sh');
123
- writeFileSync(scriptPath, script, 'utf-8');
124
- let stdout = '';
125
- try {
126
- const result = await run('bash', [scriptPath], {
127
- cwd: dir,
128
- encoding: 'utf-8',
129
- env: {
130
- ...process.env,
131
- PATH: `${bin}:${process.env.PATH}`,
132
- CIBUILD_CACHE_DAEMON: `http://127.0.0.1:${port}`,
133
- CIBUILD_CACHE_TOKEN: 'tok',
134
- },
135
- timeout: 20000,
136
- });
137
- stdout = String(result.stdout) + String(result.stderr);
138
- }
139
- catch (e) {
140
- const err = e;
141
- stdout = String(err.stdout ?? '') + String(err.stderr ?? '');
142
- }
143
- return { stdout, paths };
144
- }
145
- finally {
146
- if (options.keyStatus !== 'dead') {
147
- await new Promise((resolve) => server.close(() => resolve()));
148
- }
149
- rmSync(dir, { recursive: true, force: true });
150
- }
151
- }
152
- describe('cache-pull with an explicit key, over the daemon', () => {
153
- test('an empty cache is reported, and nothing else', async () => {
154
- // 404 is the daemon's answer for `cache_miss`. The normal case on any
155
- // first build: it must not start printing warnings.
156
- const { stdout, paths } = await runPull({ keyStatus: 404 });
157
- expect(paths).toEqual([`/cache/${SCOPED_CACHE_KEY}.tar.zst`]);
158
- expect(stdout).toContain(`No cache found for key: ${SCOPED_CACHE_KEY}`);
159
- expect(stdout).toContain('CACHE_SOURCE=cold');
160
- expect(stdout).not.toContain('Warning');
161
- });
162
- test('an auth failure no longer looks like an empty cache', async () => {
163
- const { stdout } = await runPull({ keyStatus: 401 });
164
- expect(stdout).toContain('Warning: cache-pull could not restore');
165
- expect(stdout).toContain('401');
166
- // Still not fatal, and still cold: a build that cannot read a cache builds
167
- // anyway. Only the silence is gone.
168
- expect(stdout).toContain('CACHE_SOURCE=cold');
169
- });
170
- test.each([
171
- ['a rejected key', 400],
172
- ['a busy cache', 503],
173
- ['a daemon that broke', 500],
174
- ])('%s says so, with the status', async (_label, status) => {
175
- const { stdout } = await runPull({ keyStatus: status });
176
- expect(stdout).toContain('Warning: cache-pull could not restore');
177
- expect(stdout).toContain(String(status));
178
- });
179
- test('a daemon that is not listening says so, rather than reporting a miss', async () => {
180
- const { stdout } = await runPull({ keyStatus: 'dead' });
181
- expect(stdout).toContain('Warning: cache-pull could not restore');
182
- // curl's own words for it. There is no HTTP status to report — which is
183
- // itself the distinction from every case above.
184
- expect(stdout).toMatch(/Failed to connect|Couldn't connect|Connection refused/u);
185
- });
186
- test('a hit is still a hit', async () => {
187
- const { stdout } = await runPull({ keyStatus: 200 });
188
- expect(stdout).toContain('Cache found (daemon), extracting...');
189
- expect(stdout).toContain('CACHE_SOURCE=daemon');
190
- expect(stdout).not.toContain('Warning');
191
- });
192
- });
193
- describe('cache-pull from a preset, over the daemon', () => {
194
- test('an empty cache is quiet through the scope fallback too', async () => {
195
- const { stdout, paths } = await runPull({ keyStatus: 404, technology: 'npm' });
196
- // Exact key first, then the scope's newest — the shape the fallback needs.
197
- expect(paths).toHaveLength(2);
198
- expect(paths[1]).toContain('/cache/scope/');
199
- expect(stdout).toContain('No cache found for key: npm-');
200
- expect(stdout).not.toContain('Warning');
201
- });
202
- test('a broken daemon is named on the preset path as well', async () => {
203
- // The two forms emit the same diagnosis from one definition. They used to
204
- // carry byte-identical copies of the upload block, and that is exactly how
205
- // the push-side defect got in.
206
- const { stdout } = await runPull({ keyStatus: 401, technology: 'npm' });
207
- expect(stdout).toContain('Warning: cache-pull could not restore');
208
- expect(stdout).toContain('401');
209
- expect(stdout).toContain('CACHE_SOURCE=cold');
210
- });
211
- });
212
- //# sourceMappingURL=cache-pull-daemon.test.js.map
@@ -1,42 +0,0 @@
1
- /**
2
- * `cache-pull` restores every cached path to the root it was recorded against.
3
- *
4
- * `cache-push` archives two kinds of entry in one tarball. A `~`- or `/`-rooted
5
- * path is expanded and tar stores it with the leading `/` stripped
6
- * (`/home/builder/.gradle/caches` -> `home/builder/.gradle/caches`). A
7
- * project-relative path (`Pods`, `.gradle`, `node_modules`) is stored as-is,
8
- * relative to the step's working directory. Every restore then used a single
9
- * `tar -xf - -C /`, which is right for the first kind and impossible for the
10
- * second: the build user cannot create `/Pods`.
11
- *
12
- * Three shapes, three different failures, all measured before this was fixed:
13
- *
14
- * | `cache_paths` | before |
15
- * |------------------------------------------|---------------------------------|
16
- * | all `~`-rooted | correct |
17
- * | mixed (every Gradle/Android pipeline) | `~` half landed, relative half never did, tar exited non-zero, reported **cold** on a build that was warm |
18
- * | all project-relative (Pods, node_modules)| **nothing** landed — those caches were written on every build and had never restored |
19
- *
20
- * So the mixed shape lied and the all-relative shape silently did nothing. Both
21
- * are asserted here, and the all-`~` shape is asserted too because it already
22
- * worked and the fix must not cost it anything.
23
- *
24
- * ### Why this runs the real `tar`
25
- *
26
- * The sibling daemon suite stubs `tar` to `cat > /dev/null`, because the
27
- * generated script extracts with `-C /` and nothing there is worth writing to
28
- * the root of the machine running the suite. This suite cannot: *where the
29
- * bytes land* is the entire question, and a stub answers it by construction.
30
- *
31
- * It stays out of the real root by pointing `CIBUILD_USER_HOME` at a temporary
32
- * directory. `~/.gradle/caches` then expands to an absolute path *inside* that
33
- * directory, so `-C /` reassembles it exactly where it belongs and writes
34
- * nothing outside the temp tree. The path is resolved through `realpath` first:
35
- * on macOS `/var` is a symlink to `/private/var`, and tar refuses to extract
36
- * through a symlink.
37
- *
38
- * `zstd` is stubbed to an identity copy, as in the sibling suite — it is not on
39
- * every host, and compression is not what is under test.
40
- */
41
- export {};
42
- //# sourceMappingURL=cache-pull-restore-roots.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-pull-restore-roots.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/cache-pull-restore-roots.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG"}