@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,147 +0,0 @@
1
- /**
2
- * Android signing step: sign-apk
3
- */
4
- import { BaseStepExecutor } from './base.js';
5
- /**
6
- * Signs APK/AAB files using apksigner or jarsigner with zipalign.
7
- */
8
- export class SignApkStepExecutor extends BaseStepExecutor {
9
- getValidationRequirements(inputs, env, _config) {
10
- return [
11
- this.requireCommand('zipalign', 'Android zipalign tool is required', 'Install Android SDK Build Tools'),
12
- ];
13
- }
14
- getOutputs() {
15
- return [
16
- { name: 'CIBUILD_SIGNED_APK_PATH', type: 'environment', description: 'Path to the signed APK' },
17
- { name: 'CIBUILD_SIGNED_AAB_PATH', type: 'environment', description: 'Path to the signed AAB' },
18
- ];
19
- }
20
- async execute(inputs, _env, _config) {
21
- const stepName = 'sign-apk';
22
- const androidApp = this.getInput(inputs, 'android_app', '$CIBUILD_APK_PATH');
23
- const keystoreUrl = this.getInput(inputs, 'keystore_url', '$KEYSTORE_URL');
24
- const keystorePassword = this.getInput(inputs, 'keystore_password', '$KEYSTORE_PASSWORD');
25
- const keystoreAlias = this.getInput(inputs, 'keystore_alias', '$KEYSTORE_ALIAS');
26
- const privateKeyPassword = this.getInput(inputs, 'private_key_password', '');
27
- const pageAlign = this.getInput(inputs, 'page_align', 'automatic');
28
- const signerTool = this.getInput(inputs, 'signer_tool', 'automatic');
29
- const outputName = this.getInput(inputs, 'output_name', '');
30
- const verboseLog = this.getInput(inputs, 'verbose_log', false);
31
- const commands = [];
32
- commands.push('# sign-apk — sign Android APK/AAB');
33
- commands.push('echo "🔐 Signing Android app..."');
34
- commands.push('');
35
- // Resolve keystore
36
- commands.push('# Resolve keystore file');
37
- commands.push(`KEYSTORE_URL="${keystoreUrl}"`);
38
- commands.push(`KEYSTORE_PASSWORD="${keystorePassword}"`);
39
- commands.push(`KEYSTORE_ALIAS="${keystoreAlias}"`);
40
- if (privateKeyPassword) {
41
- commands.push(`KEY_PASSWORD="${this.escapeBash(privateKeyPassword)}"`);
42
- }
43
- else {
44
- commands.push('KEY_PASSWORD="$KEYSTORE_PASSWORD"');
45
- }
46
- commands.push('');
47
- commands.push('if [ -z "$KEYSTORE_URL" ] || [ -z "$KEYSTORE_PASSWORD" ] || [ -z "$KEYSTORE_ALIAS" ]; then');
48
- commands.push(' echo "❌ Error: keystore_url, keystore_password, and keystore_alias are required"');
49
- commands.push(' exit 1');
50
- commands.push('fi');
51
- commands.push('');
52
- // Download or resolve keystore
53
- commands.push('# Download or resolve keystore file');
54
- commands.push('if [[ "$KEYSTORE_URL" == file://* ]]; then');
55
- commands.push(' KEYSTORE_PATH="${KEYSTORE_URL#file://}"');
56
- commands.push('elif [[ "$KEYSTORE_URL" == http* ]]; then');
57
- commands.push(' KEYSTORE_PATH="$(mktemp -t keystore).jks"');
58
- commands.push(' curl -sSfL "$KEYSTORE_URL" -o "$KEYSTORE_PATH"');
59
- commands.push('else');
60
- commands.push(' KEYSTORE_PATH="$KEYSTORE_URL"');
61
- commands.push('fi');
62
- commands.push('');
63
- commands.push('if [ ! -f "$KEYSTORE_PATH" ]; then');
64
- commands.push(' echo "❌ Error: Keystore file not found: $KEYSTORE_PATH"');
65
- commands.push(' exit 1');
66
- commands.push('fi');
67
- commands.push('');
68
- // Determine signer tool
69
- commands.push('# Determine signing tool');
70
- if (signerTool === 'automatic') {
71
- commands.push('if command -v apksigner &>/dev/null; then');
72
- commands.push(' SIGNER="apksigner"');
73
- commands.push('elif command -v jarsigner &>/dev/null; then');
74
- commands.push(' SIGNER="jarsigner"');
75
- commands.push('else');
76
- commands.push(' echo "❌ Error: Neither apksigner nor jarsigner found"');
77
- commands.push(' exit 1');
78
- commands.push('fi');
79
- }
80
- else {
81
- commands.push(`SIGNER="${this.escapeBash(signerTool)}"`);
82
- }
83
- commands.push('echo "Using signer: $SIGNER"');
84
- commands.push('');
85
- // Process each app file
86
- commands.push(`ANDROID_APP="${androidApp}"`);
87
- commands.push('SIGNED_APK_PATH=""');
88
- commands.push('SIGNED_AAB_PATH=""');
89
- commands.push('');
90
- commands.push('IFS="|" read -ra APP_FILES <<< "$ANDROID_APP"');
91
- commands.push('for APP_FILE in "${APP_FILES[@]}"; do');
92
- commands.push(' APP_FILE="$(echo "$APP_FILE" | xargs)" # trim whitespace');
93
- commands.push(' [ -z "$APP_FILE" ] && continue');
94
- commands.push(' ');
95
- commands.push(' if [ ! -f "$APP_FILE" ]; then');
96
- commands.push(' echo "⚠️ File not found: $APP_FILE — skipping"');
97
- commands.push(' continue');
98
- commands.push(' fi');
99
- commands.push(' ');
100
- commands.push(' EXT="${APP_FILE##*.}"');
101
- commands.push(' DIR="$(dirname "$APP_FILE")"');
102
- commands.push(' BASE="$(basename "$APP_FILE" ".$EXT")"');
103
- if (outputName) {
104
- commands.push(` OUT_NAME="${this.escapeBash(outputName)}"`);
105
- }
106
- else {
107
- commands.push(' OUT_NAME="${BASE}-signed"');
108
- }
109
- commands.push(' SIGNED_FILE="$DIR/${OUT_NAME}.${EXT}"');
110
- commands.push(' ');
111
- // zipalign for APKs
112
- commands.push(' if [ "$EXT" = "apk" ]; then');
113
- commands.push(' echo "Zipaligning: $APP_FILE"');
114
- const alignFlag = pageAlign === 'true' ? '-p' : '';
115
- commands.push(` zipalign ${alignFlag} -f 4 "$APP_FILE" "$DIR/\${BASE}-aligned.apk"`);
116
- commands.push(' APP_FILE="$DIR/${BASE}-aligned.apk"');
117
- commands.push(' fi');
118
- commands.push(' ');
119
- // Sign
120
- commands.push(' echo "Signing: $APP_FILE → $SIGNED_FILE"');
121
- commands.push(' if [ "$SIGNER" = "apksigner" ]; then');
122
- const verboseFlag = verboseLog ? ' --verbose' : '';
123
- commands.push(` apksigner sign${verboseFlag} --ks "$KEYSTORE_PATH" --ks-pass "pass:$KEYSTORE_PASSWORD" --ks-key-alias "$KEYSTORE_ALIAS" --key-pass "pass:$KEY_PASSWORD" --out "$SIGNED_FILE" "$APP_FILE"`);
124
- commands.push(' else');
125
- commands.push(' cp "$APP_FILE" "$SIGNED_FILE"');
126
- commands.push(` jarsigner${verboseLog ? ' -verbose' : ''} -keystore "$KEYSTORE_PATH" -storepass "$KEYSTORE_PASSWORD" -keypass "$KEY_PASSWORD" "$SIGNED_FILE" "$KEYSTORE_ALIAS"`);
127
- commands.push(' fi');
128
- commands.push(' ');
129
- // Track outputs
130
- commands.push(' if [ "$EXT" = "apk" ]; then');
131
- commands.push(' SIGNED_APK_PATH="$SIGNED_FILE"');
132
- commands.push(' elif [ "$EXT" = "aab" ]; then');
133
- commands.push(' SIGNED_AAB_PATH="$SIGNED_FILE"');
134
- commands.push(' fi');
135
- commands.push(' echo "✅ Signed: $SIGNED_FILE"');
136
- commands.push('done');
137
- commands.push('');
138
- // Export
139
- commands.push('# Export signed paths');
140
- commands.push('[ -n "$SIGNED_APK_PATH" ] && envman add --key CIBUILD_SIGNED_APK_PATH --value "$SIGNED_APK_PATH"');
141
- commands.push('[ -n "$SIGNED_AAB_PATH" ] && envman add --key CIBUILD_SIGNED_AAB_PATH --value "$SIGNED_AAB_PATH"');
142
- commands.push('echo "✅ Signing complete"');
143
- const script = this.createBashScriptFromCommands(commands, stepName);
144
- return this.createScriptStep(script, stepName);
145
- }
146
- }
147
- //# sourceMappingURL=android-sign.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=android-variant-resolution.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"android-variant-resolution.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/android-variant-resolution.test.ts"],"names":[],"mappings":""}
@@ -1,260 +0,0 @@
1
- /**
2
- * When the pipeline's variant is a guess Gradle cannot resolve.
3
- *
4
- * `android/nowinandroid` declares its product flavors as an enum in
5
- * `build-logic/convention/…/NiaFlavor.kt` and applies them through a
6
- * convention plugin, so `app/build.gradle.kts` has no `productFlavors {}`
7
- * block. The literal scan saw no flavors, `VARIANT` stayed `debug`, and
8
- * Gradle refused the very first Android step of the thirty-app study.
9
- *
10
- * Convention plugins are the norm in modern Android, so "literal or nothing"
11
- * will keep missing them. Gradle names the candidates in its own error; this
12
- * reads them back.
13
- *
14
- * The function under test is the one that ships — the shell is executed here,
15
- * not re-implemented.
16
- */
17
- import { execFileSync } from "node:child_process";
18
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
19
- import { tmpdir } from "node:os";
20
- import { join } from "node:path";
21
- import { AndroidBuildForUITestingStepExecutor, AndroidLintStepExecutor, AndroidUnitTestStepExecutor, GradleBuildStepExecutor, PICK_VARIANT_TASK_FUNCTION, gradleProjectDir, gradleTaskPath, variantTaskCommands, } from "./android.js";
22
- import { testConfig } from "./test-config.js";
23
- /** Run the shipped shell function over some Gradle output. */
24
- function pick(gradleOutput, prefix, suffix, buildType) {
25
- const script = `${PICK_VARIANT_TASK_FUNCTION}\ncibuild_pick_variant_task "${prefix}" "${suffix}" "${buildType}"`;
26
- return execFileSync("bash", ["-c", script], {
27
- input: gradleOutput,
28
- encoding: "utf-8",
29
- }).trim();
30
- }
31
- /** The error nowinandroid produced, verbatim. */
32
- const NOW_IN_ANDROID = `
33
- FAILURE: Build failed with an exception.
34
-
35
- * What went wrong:
36
- Cannot locate tasks that match ':app:lintDebug' as task 'lintDebug' is ambiguous in project ':app'. Candidates are: 'lintDemoDebug', 'lintDemoRelease', 'lintProdDebug', 'lintProdRelease'.
37
-
38
- * Try:
39
- > Run gradlew tasks to get a list of available tasks.
40
- `;
41
- describe("cibuild_pick_variant_task", () => {
42
- test("reads the candidates out of the nowinandroid error", () => {
43
- expect(pick(NOW_IN_ANDROID, "lint", "", "Debug")).toBe("lintDemoDebug");
44
- });
45
- // The order Gradle happens to list them in is not a ranking, but a debug
46
- // candidate must win over a release one wherever it appears.
47
- test("prefers a debug candidate whatever order they are listed in", () => {
48
- const reordered = NOW_IN_ANDROID.replace("'lintDemoDebug', 'lintDemoRelease', 'lintProdDebug', 'lintProdRelease'", "'lintProdRelease', 'lintDemoRelease', 'lintProdDebug', 'lintDemoDebug'");
49
- expect(pick(reordered, "lint", "", "Debug")).toBe("lintProdDebug");
50
- });
51
- test("reads a unit-test task, suffix and all", () => {
52
- const output = "task 'testDebugUnitTest' is ambiguous in project ':app'. Candidates are: " +
53
- "'testDemoDebugUnitTest', 'testProdDebugUnitTest', 'testDemoReleaseUnitTest'.";
54
- expect(pick(output, "test", "UnitTest", "Debug")).toBe("testDemoDebugUnitTest");
55
- });
56
- test("honours a build type that is not Debug", () => {
57
- expect(pick(NOW_IN_ANDROID, "lint", "", "Release")).toBe("lintDemoRelease");
58
- });
59
- // Retrying with a task that builds the wrong thing is worse than failing
60
- // with the error the user can read.
61
- test("says nothing when no candidate matches the build type", () => {
62
- const output = "task 'lintDebug' is ambiguous in project ':app'. Candidates are: " +
63
- "'lintProdRelease', 'lintStagingRelease'.";
64
- expect(pick(output, "lint", "", "Debug")).toBe("");
65
- });
66
- test("says nothing when the failure is not an ambiguity", () => {
67
- expect(pick("FAILURE: Could not resolve all dependencies.", "lint", "", "Debug")).toBe("");
68
- });
69
- });
70
- describe("the step that uses it", () => {
71
- const escape = (value) => value;
72
- test("runs the composed task first, and only resolves if Gradle refuses it", () => {
73
- const script = variantTaskCommands({
74
- module: "app",
75
- variant: "debug",
76
- prefix: "lint",
77
- suffix: "",
78
- escape,
79
- }).join("\n");
80
- expect(script).toContain("$GRADLE_CMD :app:lintDebug");
81
- expect(script).toContain("is ambiguous in project");
82
- // A flavourless project pays for nothing: the retry is inside the branch.
83
- expect(script.indexOf("cibuild_pick_variant_task \"lint\"")).toBeGreaterThan(script.indexOf("$GRADLE_CMD :app:lintDebug"));
84
- });
85
- // Whichever of lint and unit tests runs first pays for the discovery; the
86
- // other reads VARIANT out of the envstore.
87
- test("exports the variant it resolved", () => {
88
- const script = variantTaskCommands({
89
- module: "app",
90
- variant: "debug",
91
- prefix: "test",
92
- suffix: "UnitTest",
93
- escape,
94
- }).join("\n");
95
- expect(script).toContain("envman add --key VARIANT");
96
- expect(script).toContain("$GRADLE_CMD :app:$RESOLVED_TASK");
97
- });
98
- test("keeps a test filter on both the first attempt and the retry", () => {
99
- const script = variantTaskCommands({
100
- module: "app",
101
- variant: "debug",
102
- prefix: "test",
103
- suffix: "UnitTest",
104
- gradleArgs: "--tests 'com.acme.*'",
105
- escape,
106
- }).join("\n");
107
- const withFilter = script.split("\n").filter((l) => l.includes("--tests 'com.acme.*'"));
108
- expect(withFilter).toHaveLength(2);
109
- });
110
- test("propagates a failure that is not an ambiguity", () => {
111
- const script = variantTaskCommands({
112
- module: "app",
113
- variant: "debug",
114
- prefix: "lint",
115
- suffix: "",
116
- escape,
117
- }).join("\n");
118
- expect(script).toContain('exit "$VARIANT_STATUS"');
119
- });
120
- });
121
- /**
122
- * An app whose root project is the application: no `include`, the Android
123
- * application plugin applied in the root build file, sources in `src/`.
124
- * Gradle's path for that project is `:`, so a pipeline says `module: ":"`.
125
- */
126
- describe("a module that names the root project", () => {
127
- const escape = (value) => value;
128
- test("runs the root project's own task, with no empty module segment", () => {
129
- const script = variantTaskCommands({
130
- module: ":",
131
- variant: "debug",
132
- prefix: "test",
133
- suffix: "UnitTest",
134
- escape,
135
- }).join("\n");
136
- expect(script).toContain("$GRADLE_CMD :testDebugUnitTest");
137
- expect(script).not.toContain("::");
138
- });
139
- test("retries the resolved task on the root project too", () => {
140
- const script = variantTaskCommands({
141
- module: ":",
142
- variant: "debug",
143
- prefix: "lint",
144
- suffix: "",
145
- escape,
146
- }).join("\n");
147
- expect(script).toContain("$GRADLE_CMD :lintDebug");
148
- expect(script).toContain("$GRADLE_CMD :$RESOLVED_TASK");
149
- expect(script).toContain('echo "Using :$RESOLVED_TASK');
150
- expect(script).not.toContain("::");
151
- });
152
- // An explicit empty string reaches the step as is; it must not become
153
- // `::testDebugUnitTest`.
154
- test("treats an empty module as the root", () => {
155
- const script = variantTaskCommands({
156
- module: "",
157
- variant: "debug",
158
- prefix: "test",
159
- suffix: "UnitTest",
160
- escape,
161
- }).join("\n");
162
- expect(script).toContain("$GRADLE_CMD :testDebugUnitTest");
163
- expect(script).not.toContain("::");
164
- });
165
- test("leaves a named module exactly as it was", () => {
166
- const options = { variant: "debug", prefix: "test", suffix: "UnitTest", escape };
167
- const script = variantTaskCommands({ module: "app", ...options }).join("\n");
168
- expect(script).toContain("$GRADLE_CMD :app:testDebugUnitTest 2>&1");
169
- expect(script).toContain(" echo \"Using :app:$RESOLVED_TASK — resolved VARIANT=$RESOLVED_VARIANT\"");
170
- expect(script).toContain(" $GRADLE_CMD :app:$RESOLVED_TASK");
171
- });
172
- test("keeps a nested module's path", () => {
173
- const script = variantTaskCommands({
174
- module: "feature:store",
175
- variant: "debug",
176
- prefix: "lint",
177
- suffix: "",
178
- escape,
179
- }).join("\n");
180
- expect(script).toContain("$GRADLE_CMD :feature:store:lintDebug");
181
- });
182
- });
183
- describe("gradleTaskPath and gradleProjectDir", () => {
184
- test("compose a task path", () => {
185
- expect(gradleTaskPath(":", "lintDebug")).toBe(":lintDebug");
186
- expect(gradleTaskPath("", "lintDebug")).toBe(":lintDebug");
187
- expect(gradleTaskPath("app", "lintDebug")).toBe(":app:lintDebug");
188
- });
189
- test("compose the project directory, empty for the root", () => {
190
- expect(gradleProjectDir(":")).toBe("");
191
- expect(gradleProjectDir("")).toBe("");
192
- expect(gradleProjectDir("app")).toBe("app/");
193
- });
194
- });
195
- describe("the steps, for the root project", () => {
196
- test("lint runs :lintDebug and reports under build/", async () => {
197
- const result = await new AndroidLintStepExecutor().execute({ module: ":" }, {}, testConfig);
198
- const script = result.script;
199
- expect(script).toContain("$GRADLE_CMD :lintDebug");
200
- expect(script).not.toContain("::");
201
- expect(script).toContain('echo "Lint report location: build/reports/lint-results-debug.html"');
202
- expect(script).toContain('echo "Running lint on the root project"');
203
- });
204
- test("unit tests run :testDebugUnitTest and report under build/", async () => {
205
- const result = await new AndroidUnitTestStepExecutor().execute({ module: ":" }, {}, testConfig);
206
- const script = result.script;
207
- expect(script).toContain("$GRADLE_CMD :testDebugUnitTest");
208
- expect(script).not.toContain("::");
209
- expect(script).toContain('echo "Test report location: build/reports/tests/testDebugUnitTest/index.html"');
210
- });
211
- test("an absent module still means app", async () => {
212
- const lint = await new AndroidLintStepExecutor().execute({}, {}, testConfig);
213
- const unit = await new AndroidUnitTestStepExecutor().execute({}, {}, testConfig);
214
- expect(lint.script).toContain("$GRADLE_CMD :app:lintDebug");
215
- expect(lint.script).toContain('echo "Running lint on module: app"');
216
- expect(unit.script).toContain('echo "Running unit tests on module: app"');
217
- expect(lint.script).toContain('echo "Lint report location: app/build/reports/lint-results-debug.html"');
218
- expect(unit.script).toContain("$GRADLE_CMD :app:testDebugUnitTest");
219
- });
220
- test("UI testing assembles on the root and finds its APKs", async () => {
221
- const result = await new AndroidBuildForUITestingStepExecutor().execute({ module: ":" }, {}, testConfig);
222
- const script = result.script;
223
- expect(script).toContain("$GRADLE_CMD :assembleDebug :assembleDebugAndroidTest");
224
- expect(script).not.toContain("::");
225
- const find = script.split("\n").find((l) => l.startsWith("APP_APK="));
226
- const pattern = find.match(/-path "([^"]+)"/)[1];
227
- const dir = mkdtempSync(join(tmpdir(), "cibuild-root-apk-"));
228
- try {
229
- mkdirSync(join(dir, "build/outputs/apk/debug"), { recursive: true });
230
- writeFileSync(join(dir, "build/outputs/apk/debug/x.apk"), "");
231
- const found = execFileSync("find", [".", "-path", pattern], { cwd: dir, encoding: "utf-8" }).trim();
232
- expect(found).toBe("./build/outputs/apk/debug/x.apk");
233
- }
234
- finally {
235
- rmSync(dir, { recursive: true, force: true });
236
- }
237
- });
238
- });
239
- /**
240
- * gradle-build takes a bare `assembleDebug`, which a root project satisfies.
241
- * Its artifact collection must still see `./build/outputs/...`.
242
- */
243
- describe("gradle-build's artifact collection", () => {
244
- test("finds an APK the root project wrote", async () => {
245
- const result = await new GradleBuildStepExecutor().execute({}, {}, testConfig);
246
- const script = result.script;
247
- const pattern = script.match(/-path "(\*\/build\/outputs\/apk\/[^"]+)"/)[1];
248
- const dir = mkdtempSync(join(tmpdir(), "cibuild-root-apk-"));
249
- try {
250
- mkdirSync(join(dir, "build/outputs/apk/debug"), { recursive: true });
251
- writeFileSync(join(dir, "build/outputs/apk/debug/x.apk"), "");
252
- const found = execFileSync("find", [".", "-path", pattern], { cwd: dir, encoding: "utf-8" }).trim();
253
- expect(found).toBe("./build/outputs/apk/debug/x.apk");
254
- }
255
- finally {
256
- rmSync(dir, { recursive: true, force: true });
257
- }
258
- });
259
- });
260
- //# sourceMappingURL=android-variant-resolution.test.js.map
@@ -1,26 +0,0 @@
1
- /**
2
- * Android version code and version name step implementation
3
- * Updates versionCode and versionName in build.gradle
4
- */
5
- import { BaseStepExecutor } from './base.js';
6
- import type { StepDef, CIConfig } from '../../types.js';
7
- import type { ValidationRequirement, StepOutput } from '../validation-types.js';
8
- /**
9
- * Inputs for change-android-versioncode-and-versionname step
10
- */
11
- export interface ChangeAndroidVersionInputs {
12
- build_gradle_path?: string;
13
- new_version_name?: string;
14
- new_version_code?: string;
15
- version_code_offset?: string;
16
- }
17
- /**
18
- * Change Android versionCode and versionName step executor
19
- * Modifies build.gradle in-place using sed before the build runs
20
- */
21
- export declare class ChangeAndroidVersionStepExecutor extends BaseStepExecutor {
22
- getOutputs(): StepOutput[];
23
- getValidationRequirements(inputs: ChangeAndroidVersionInputs, _env: Record<string, string>, _config: CIConfig): ValidationRequirement[];
24
- execute(inputs: ChangeAndroidVersionInputs, _env: Record<string, string>, _config: CIConfig): Promise<StepDef>;
25
- }
26
- //# sourceMappingURL=android-version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"android-version.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/android-version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,gCAAiC,SAAQ,gBAAgB;IACpE,UAAU,IAAI,UAAU,EAAE;IAO1B,yBAAyB,CACvB,MAAM,EAAE,0BAA0B,EAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,QAAQ,GAChB,qBAAqB,EAAE;IAMpB,OAAO,CAAC,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAoHrH"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Android version code and version name step implementation
3
- * Updates versionCode and versionName in build.gradle
4
- */
5
- import { BaseStepExecutor } from './base.js';
6
- /**
7
- * Change Android versionCode and versionName step executor
8
- * Modifies build.gradle in-place using sed before the build runs
9
- */
10
- export class ChangeAndroidVersionStepExecutor extends BaseStepExecutor {
11
- getOutputs() {
12
- return [
13
- { name: 'ANDROID_VERSION_CODE', type: 'environment', description: 'Final versionCode set in build.gradle' },
14
- { name: 'ANDROID_VERSION_NAME', type: 'environment', description: 'Final versionName set in build.gradle' },
15
- ];
16
- }
17
- getValidationRequirements(inputs, _env, _config) {
18
- return [
19
- this.requireInput('build_gradle_path', inputs, 'Path to build.gradle file'),
20
- ];
21
- }
22
- async execute(inputs, _env, _config) {
23
- const stepName = 'change-android-versioncode-and-versionname';
24
- const commands = [];
25
- const buildGradlePath = this.getInput(inputs, 'build_gradle_path', '$PROJECT_LOCATION/app/build.gradle');
26
- const newVersionName = this.getInput(inputs, 'new_version_name', '');
27
- const newVersionCode = this.getInput(inputs, 'new_version_code', '');
28
- const versionCodeOffset = this.getInput(inputs, 'version_code_offset', '');
29
- commands.push('# change-android-versioncode-and-versionname step');
30
- commands.push('echo "📝 Updating Android version in build.gradle..."');
31
- commands.push('');
32
- // Set variables
33
- commands.push(`BUILD_GRADLE="${this.escapeBash(buildGradlePath)}"`);
34
- commands.push(`NEW_VERSION_NAME="${this.escapeBash(newVersionName)}"`);
35
- commands.push(`NEW_VERSION_CODE="${this.escapeBash(newVersionCode)}"`);
36
- commands.push(`VERSION_CODE_OFFSET="${this.escapeBash(versionCodeOffset)}"`);
37
- commands.push('');
38
- // Validate build_gradle_path
39
- commands.push('if [ -z "$BUILD_GRADLE" ]; then');
40
- commands.push(' echo "❌ Error: build_gradle_path is required"');
41
- commands.push(' exit 1');
42
- commands.push('fi');
43
- commands.push('');
44
- commands.push('# Auto-detect Kotlin DSL (.kts) if plain .gradle not found');
45
- commands.push('if [ ! -f "$BUILD_GRADLE" ] && [ -f "${BUILD_GRADLE}.kts" ]; then');
46
- commands.push(' BUILD_GRADLE="${BUILD_GRADLE}.kts"');
47
- commands.push(' echo "Auto-detected Kotlin DSL: $BUILD_GRADLE"');
48
- commands.push('fi');
49
- commands.push('');
50
- commands.push('if [ ! -f "$BUILD_GRADLE" ]; then');
51
- commands.push(' echo "❌ Error: build.gradle not found: $BUILD_GRADLE"');
52
- commands.push(' exit 1');
53
- commands.push('fi');
54
- commands.push('');
55
- commands.push('echo "build.gradle: $BUILD_GRADLE"');
56
- commands.push('');
57
- // When version_code_offset is used alone (without new_version_code), we must read the
58
- // current versionCode from the file — it must be a direct integer for that to work.
59
- commands.push('# Validate direct integer only when version_code_offset is used without new_version_code');
60
- commands.push('if [ -n "$VERSION_CODE_OFFSET" ] && [ -z "$NEW_VERSION_CODE" ]; then');
61
- commands.push(' VCODE_LINE=$(grep -E "^[[:space:]]*versionCode" "$BUILD_GRADLE" | grep -v \'//\' | head -n 1)');
62
- commands.push(' VCODE_DIRECT=$(echo "$VCODE_LINE" | grep -E "^[[:space:]]*versionCode[[:space:]]*(=[[:space:]]*)?[0-9]+[[:space:]]*$" || true)');
63
- commands.push(' if [ -z "$VCODE_DIRECT" ]; then');
64
- commands.push(' VCODE_FOUND=$(echo "$VCODE_LINE" | sed -E \'s/^[[:space:]]*versionCode[[:space:]]*(=[[:space:]]*)?//\')');
65
- commands.push(' echo "❌ Error: version_code_offset requires a direct integer versionCode in the file"');
66
- commands.push(' echo " Found: $VCODE_FOUND"');
67
- commands.push(' echo " Only direct values work with version_code_offset, e.g.: versionCode = 42"');
68
- commands.push(' echo " Use new_version_code instead to set an explicit value."');
69
- commands.push(' exit 1');
70
- commands.push(' fi');
71
- commands.push('fi');
72
- commands.push('');
73
- // Handle version_code_offset: if no new_version_code, read current from file
74
- commands.push('# Resolve version code with optional offset');
75
- commands.push('if [ -n "$VERSION_CODE_OFFSET" ] && [ -z "$NEW_VERSION_CODE" ]; then');
76
- commands.push(' CURRENT_CODE=$(grep -E "^[[:space:]]*versionCode" "$BUILD_GRADLE" | grep -v \'//\' | sed -E \'s/.*versionCode[[:space:]]*(=[[:space:]]*)?([0-9]+).*/\\2/\' | head -n 1)');
77
- commands.push(' if [ -z "$CURRENT_CODE" ]; then');
78
- commands.push(' echo "❌ Error: Could not read current versionCode from $BUILD_GRADLE"');
79
- commands.push(' exit 1');
80
- commands.push(' fi');
81
- commands.push(' NEW_VERSION_CODE=$((CURRENT_CODE + VERSION_CODE_OFFSET))');
82
- commands.push(' echo "Applied offset $VERSION_CODE_OFFSET to current versionCode $CURRENT_CODE → $NEW_VERSION_CODE"');
83
- commands.push('elif [ -n "$VERSION_CODE_OFFSET" ] && [ -n "$NEW_VERSION_CODE" ]; then');
84
- commands.push(' NEW_VERSION_CODE=$((NEW_VERSION_CODE + VERSION_CODE_OFFSET))');
85
- commands.push(' echo "Applied offset $VERSION_CODE_OFFSET → final versionCode: $NEW_VERSION_CODE"');
86
- commands.push('fi');
87
- commands.push('');
88
- // Update versionCode
89
- commands.push('# Update versionCode if provided');
90
- commands.push('if [ -n "$NEW_VERSION_CODE" ]; then');
91
- commands.push(' sed -i.bak -E "s/(^[[:space:]]*versionCode[[:space:]]*(=[[:space:]]*)?).*$/\\1${NEW_VERSION_CODE}/" "$BUILD_GRADLE"');
92
- commands.push(' rm -f "${BUILD_GRADLE}.bak"');
93
- commands.push(' echo "Updated versionCode to: $NEW_VERSION_CODE"');
94
- commands.push('else');
95
- commands.push(' echo "versionCode: not changed (new_version_code not set)"');
96
- commands.push('fi');
97
- commands.push('');
98
- // Update versionName
99
- commands.push('# Update versionName if provided');
100
- commands.push('if [ -n "$NEW_VERSION_NAME" ]; then');
101
- commands.push(' sed -i.bak -E "s/(^[[:space:]]*versionName[[:space:]]*(=[[:space:]]*)?).*$/\\1\\"${NEW_VERSION_NAME}\\"/" "$BUILD_GRADLE"');
102
- commands.push(' rm -f "${BUILD_GRADLE}.bak"');
103
- commands.push(' echo "Updated versionName to: $NEW_VERSION_NAME"');
104
- commands.push('else');
105
- commands.push(' echo "versionName: not changed (new_version_name not set)"');
106
- commands.push('fi');
107
- commands.push('');
108
- // Read back final values
109
- commands.push('# Read back final values from file');
110
- commands.push('FINAL_VERSION_CODE=$(grep -E "^[[:space:]]*versionCode" "$BUILD_GRADLE" | grep -v \'//\' | sed -E \'s/.*versionCode[[:space:]]*(=[[:space:]]*)?([0-9]+).*/\\2/\' | head -n 1)');
111
- commands.push('FINAL_VERSION_NAME=$(grep -E "^[[:space:]]*versionName" "$BUILD_GRADLE" | grep -v \'//\' | sed -E \'s/.*versionName[[:space:]]*(=[[:space:]]*)?"([^"]*)".*/\\2/\' | head -n 1)');
112
- commands.push('');
113
- commands.push('echo ""');
114
- commands.push('echo "Final versionCode: $FINAL_VERSION_CODE"');
115
- commands.push('echo "Final versionName: $FINAL_VERSION_NAME"');
116
- commands.push('');
117
- // Export via envman
118
- commands.push('# Export as environment variables for subsequent steps');
119
- commands.push('envman add --key ANDROID_VERSION_CODE --value "$FINAL_VERSION_CODE"');
120
- commands.push('envman add --key ANDROID_VERSION_NAME --value "$FINAL_VERSION_NAME"');
121
- commands.push('');
122
- commands.push('echo ""');
123
- commands.push('echo "✅ Android version updated successfully"');
124
- const script = this.createBashScriptFromCommands(commands, stepName);
125
- return this.createScriptStep(script, stepName);
126
- }
127
- }
128
- //# sourceMappingURL=android-version.js.map
@@ -1,5 +0,0 @@
1
- /**
2
- * Unit tests for change-android-versioncode-and-versionname step
3
- */
4
- export {};
5
- //# sourceMappingURL=android-version.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"android-version.test.d.ts","sourceRoot":"","sources":["../../../../src/yaml/steps/android-version.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}