@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-perf-cli-reduce-bundle-size-with-tsconfig-optimization-3556aaa4

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 (543) hide show
  1. package/README.md +17 -0
  2. package/bin/catladder-gitlab-dev.js +3 -0
  3. package/bin/catladder-gitlab.js +1 -1
  4. package/dist/bash/BashExpression.d.ts +40 -0
  5. package/dist/bash/BashExpression.js +124 -0
  6. package/dist/bash/bashExpressionPerPipelineType.d.ts +6 -0
  7. package/dist/bash/bashExpressionPerPipelineType.js +11 -0
  8. package/dist/bash/bashYaml.d.ts +10 -0
  9. package/dist/bash/bashYaml.js +46 -0
  10. package/dist/bash/getInjectVarsScript.d.ts +2 -0
  11. package/dist/bash/getInjectVarsScript.js +45 -0
  12. package/dist/bash/replaceAsync.d.ts +2 -0
  13. package/dist/bash/replaceAsync.js +171 -0
  14. package/dist/build/artifacts/createBuildJobArtifact.d.ts +3 -0
  15. package/dist/build/artifacts/createBuildJobArtifact.js +97 -0
  16. package/dist/build/base/__tests__/createArtifactsConfig.test.js +42 -0
  17. package/dist/build/base/constants.d.ts +0 -1
  18. package/dist/build/base/constants.js +4 -3
  19. package/dist/build/base/createAppBuildJob.d.ts +9 -0
  20. package/dist/build/base/createAppBuildJob.js +87 -0
  21. package/dist/build/base/createArtifactsConfig.d.ts +4 -0
  22. package/dist/build/base/createArtifactsConfig.js +65 -0
  23. package/dist/build/base/index.d.ts +12 -0
  24. package/dist/build/base/index.js +68 -0
  25. package/dist/build/base/writeBuildInfo.d.ts +2 -0
  26. package/dist/build/base/writeBuildInfo.js +10 -0
  27. package/dist/build/base/writeDotEnv.d.ts +8 -0
  28. package/dist/build/base/writeDotEnv.js +66 -0
  29. package/dist/build/custom/__tests__/testJob.test.js +36 -0
  30. package/dist/build/custom/buildJob.d.ts +3 -0
  31. package/dist/build/custom/buildJob.js +67 -0
  32. package/dist/build/custom/index.d.ts +3 -0
  33. package/dist/build/custom/index.js +43 -0
  34. package/dist/build/custom/testJob.d.ts +7 -0
  35. package/dist/build/custom/testJob.js +100 -0
  36. package/dist/build/docker.d.ts +61 -22
  37. package/dist/build/docker.js +110 -73
  38. package/dist/build/index.d.ts +16 -8
  39. package/dist/build/index.js +61 -19
  40. package/dist/build/node/buildJob.d.ts +8 -3
  41. package/dist/build/node/buildJob.js +48 -68
  42. package/dist/build/node/cache.d.ts +4 -3
  43. package/dist/build/node/cache.js +45 -32
  44. package/dist/build/node/constants.d.ts +0 -1
  45. package/dist/build/node/constants.js +5 -4
  46. package/dist/build/node/index.d.ts +5 -5
  47. package/dist/build/node/index.js +6 -17
  48. package/dist/build/node/meteor.d.ts +3 -3
  49. package/dist/build/node/meteor.js +26 -37
  50. package/dist/build/node/testJob.d.ts +4 -3
  51. package/dist/build/node/testJob.js +35 -36
  52. package/dist/build/node/yarn.d.ts +6 -6
  53. package/dist/build/node/yarn.js +40 -25
  54. package/dist/build/rails/build.d.ts +3 -0
  55. package/dist/build/rails/build.js +90 -0
  56. package/dist/build/rails/index.d.ts +3 -0
  57. package/dist/build/rails/index.js +43 -0
  58. package/dist/build/rails/test.d.ts +3 -0
  59. package/dist/build/rails/test.js +103 -0
  60. package/dist/build/sbom.d.ts +5 -0
  61. package/dist/build/sbom.js +32 -0
  62. package/dist/build/types.d.ts +251 -33
  63. package/dist/build/types.js +10 -6
  64. package/dist/bundles/catladder-gitlab/index.js +41626 -0
  65. package/dist/catladder-gitlab.js +130 -68
  66. package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +13 -13
  67. package/dist/config/__tests__/getAllEnvs.test.js +79 -0
  68. package/dist/config/__tests__/getAllEnvsInAllComponents.test.d.ts +1 -0
  69. package/dist/config/__tests__/getAllEnvsInAllComponents.test.js +73 -0
  70. package/dist/config/configruedEnvs.d.ts +1 -1
  71. package/dist/config/configruedEnvs.js +10 -23
  72. package/dist/config/index.js +13 -11
  73. package/dist/config/readConfig.d.ts +3 -3
  74. package/dist/config/readConfig.js +193 -52
  75. package/dist/constants.js +5 -3
  76. package/dist/context/__tests__/resolveReferences.test.d.ts +1 -0
  77. package/dist/context/__tests__/resolveReferences.test.js +368 -0
  78. package/dist/context/createAllComponentsContext.d.ts +12 -0
  79. package/dist/context/createAllComponentsContext.js +159 -0
  80. package/dist/context/createComponentContext.d.ts +11 -0
  81. package/dist/context/createComponentContext.js +256 -0
  82. package/dist/context/createWorkspaceContext.d.ts +16 -0
  83. package/dist/context/createWorkspaceContext.js +173 -0
  84. package/dist/context/getBuildInfoVariables.d.ts +6 -0
  85. package/dist/context/getBuildInfoVariables.js +55 -0
  86. package/dist/context/getEnvConfig.d.ts +2 -0
  87. package/dist/context/getEnvConfig.js +20 -0
  88. package/dist/context/getEnvType.d.ts +4 -0
  89. package/dist/context/getEnvType.js +15 -0
  90. package/dist/context/getEnvironment.d.ts +3 -0
  91. package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +50 -86
  92. package/dist/context/getEnvironmentContext.d.ts +8 -0
  93. package/dist/context/getEnvironmentContext.js +43 -0
  94. package/dist/context/getEnvironmentVariables.d.ts +27 -0
  95. package/dist/context/getEnvironmentVariables.js +285 -0
  96. package/dist/context/getLabels.d.ts +9 -0
  97. package/dist/context/getLabels.js +41 -0
  98. package/dist/context/getReviewSlug.d.ts +4 -0
  99. package/dist/context/getReviewSlug.js +22 -0
  100. package/dist/context/index.d.ts +3 -6
  101. package/dist/context/index.js +22 -219
  102. package/dist/context/resolveReferences.d.ts +3 -3
  103. package/dist/context/resolveReferences.js +248 -55
  104. package/dist/context/transformJobOnlyVars.d.ts +13 -0
  105. package/dist/{build/tests/storybook.test.js → context/transformJobOnlyVars.js} +54 -106
  106. package/dist/context/utils/envVars.d.ts +8 -0
  107. package/dist/context/utils/envVars.js +55 -0
  108. package/dist/defaults/index.d.ts +1 -1
  109. package/dist/defaults/index.js +3 -1
  110. package/dist/deploy/base/deploy.d.ts +5 -0
  111. package/dist/deploy/base/deploy.js +121 -0
  112. package/dist/deploy/base/index.d.ts +10 -0
  113. package/dist/deploy/base/index.js +44 -0
  114. package/dist/deploy/base/rollback.d.ts +5 -0
  115. package/dist/deploy/base/rollback.js +41 -0
  116. package/dist/deploy/base/stop.d.ts +5 -0
  117. package/dist/deploy/base/stop.js +46 -0
  118. package/dist/deploy/base/types.d.ts +2 -0
  119. package/dist/deploy/base/types.js +5 -0
  120. package/dist/deploy/base/variables.d.ts +5 -0
  121. package/dist/deploy/base/variables.js +11 -0
  122. package/dist/deploy/cloudRun/artifactsRegistry.d.ts +19 -0
  123. package/dist/deploy/cloudRun/artifactsRegistry.js +125 -0
  124. package/dist/deploy/cloudRun/cleanup.d.ts +2 -0
  125. package/dist/deploy/cloudRun/cleanup.js +53 -0
  126. package/dist/deploy/cloudRun/cloudRunRevisions.d.ts +2 -0
  127. package/dist/deploy/cloudRun/cloudRunRevisions.js +62 -0
  128. package/dist/deploy/cloudRun/createJobs/cloudRunJobs.d.ts +7 -0
  129. package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +187 -0
  130. package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +4 -0
  131. package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +93 -0
  132. package/dist/deploy/cloudRun/createJobs/common.d.ts +18 -0
  133. package/dist/deploy/cloudRun/createJobs/common.js +93 -0
  134. package/dist/deploy/cloudRun/createJobs/constants.d.ts +1 -0
  135. package/dist/deploy/cloudRun/createJobs/constants.js +7 -0
  136. package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.d.ts +2 -0
  137. package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +62 -0
  138. package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.d.ts +2 -0
  139. package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +54 -0
  140. package/dist/deploy/cloudRun/createJobs/index.d.ts +3 -0
  141. package/dist/deploy/cloudRun/createJobs/index.js +58 -0
  142. package/dist/deploy/cloudRun/createJobs/volumes.d.ts +3 -0
  143. package/dist/deploy/cloudRun/createJobs/volumes.js +58 -0
  144. package/dist/deploy/cloudRun/index.d.ts +4 -0
  145. package/dist/deploy/cloudRun/index.js +128 -0
  146. package/dist/deploy/cloudRun/utils/createArgsString.d.ts +13 -0
  147. package/dist/deploy/cloudRun/utils/createArgsString.js +63 -0
  148. package/dist/deploy/cloudRun/utils/database.d.ts +6 -0
  149. package/dist/deploy/cloudRun/utils/database.js +77 -0
  150. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
  151. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +12 -0
  152. package/dist/deploy/cloudRun/utils/getServiceName.d.ts +2 -0
  153. package/dist/deploy/cloudRun/utils/getServiceName.js +10 -0
  154. package/dist/deploy/cloudRun/utils/jobName.d.ts +2 -0
  155. package/dist/deploy/cloudRun/utils/jobName.js +10 -0
  156. package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.d.ts +9 -0
  157. package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +18 -0
  158. package/dist/deploy/cloudSql/utils.d.ts +4 -0
  159. package/dist/deploy/cloudSql/utils.js +14 -0
  160. package/dist/deploy/custom/deployJob.d.ts +3 -3
  161. package/dist/deploy/custom/deployJob.js +28 -25
  162. package/dist/deploy/custom/index.d.ts +2 -1
  163. package/dist/deploy/custom/index.js +16 -19
  164. package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
  165. package/dist/deploy/dockerTag/deployJob.js +65 -0
  166. package/dist/deploy/dockerTag/index.d.ts +2 -0
  167. package/dist/deploy/dockerTag/index.js +19 -0
  168. package/dist/deploy/index.d.ts +15 -9
  169. package/dist/deploy/index.js +20 -27
  170. package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +8 -0
  171. package/dist/deploy/kubernetes/additionalSecretKeys.js +30 -0
  172. package/dist/deploy/kubernetes/cloudSql/index.d.ts +14 -0
  173. package/dist/deploy/kubernetes/cloudSql/index.js +55 -0
  174. package/dist/deploy/kubernetes/deployJob.d.ts +3 -3
  175. package/dist/deploy/kubernetes/deployJob.js +43 -124
  176. package/dist/deploy/kubernetes/index.d.ts +3 -1
  177. package/dist/deploy/kubernetes/index.js +86 -11
  178. package/dist/deploy/kubernetes/kubeEnv.d.ts +10 -0
  179. package/dist/deploy/kubernetes/kubeEnv.js +76 -0
  180. package/dist/deploy/kubernetes/kubeValues.d.ts +90 -0
  181. package/dist/deploy/kubernetes/kubeValues.js +123 -0
  182. package/dist/deploy/kubernetes/mongodb.d.ts +19 -6
  183. package/dist/deploy/kubernetes/mongodb.js +100 -11
  184. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +27 -29
  185. package/dist/deploy/kubernetes/processSecretsAsFiles.js +5 -11
  186. package/dist/deploy/sbom.d.ts +4 -0
  187. package/dist/deploy/sbom.js +20 -0
  188. package/dist/deploy/types/base.d.ts +36 -0
  189. package/dist/deploy/types/base.js +5 -0
  190. package/dist/deploy/types/custom.d.ts +33 -0
  191. package/dist/deploy/types/custom.js +5 -0
  192. package/dist/deploy/types/dockerTag.d.ts +12 -0
  193. package/dist/deploy/types/dockerTag.js +5 -0
  194. package/dist/deploy/types/googleCloudRun.d.ts +208 -0
  195. package/dist/deploy/types/googleCloudRun.js +5 -0
  196. package/dist/deploy/types/index.d.ts +22 -0
  197. package/dist/deploy/types/index.js +37 -0
  198. package/dist/deploy/types/kubernetes.d.ts +355 -0
  199. package/dist/deploy/types/kubernetes.js +5 -0
  200. package/dist/deploy/utils.d.ts +3 -3
  201. package/dist/deploy/utils.js +8 -12
  202. package/dist/index.d.ts +3 -2
  203. package/dist/index.js +16 -19
  204. package/dist/packageInfos.d.ts +4 -0
  205. package/dist/packageInfos.js +20 -0
  206. package/dist/pipeline/__tests__/getPipelineStages.test.d.ts +1 -0
  207. package/dist/pipeline/__tests__/getPipelineStages.test.js +73 -0
  208. package/dist/pipeline/createAllJobs.d.ts +18 -0
  209. package/dist/pipeline/createAllJobs.js +236 -0
  210. package/dist/pipeline/createChildPipeline.d.ts +3 -3
  211. package/dist/pipeline/createChildPipeline.js +45 -157
  212. package/dist/pipeline/createJobsForComponent.d.ts +3 -0
  213. package/dist/{build/base/createBuildJob.js → pipeline/createJobsForComponent.js} +32 -51
  214. package/dist/pipeline/createJobsForWorkspace.d.ts +3 -0
  215. package/dist/pipeline/createJobsForWorkspace.js +12 -0
  216. package/dist/pipeline/createMainPipeline.d.ts +3 -0
  217. package/dist/pipeline/createMainPipeline.js +269 -0
  218. package/dist/pipeline/generatePipelineFiles.d.ts +40 -0
  219. package/dist/pipeline/generatePipelineFiles.js +240 -0
  220. package/dist/pipeline/getPipelineStages.d.ts +7 -0
  221. package/dist/pipeline/getPipelineStages.js +56 -0
  222. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +11 -0
  223. package/dist/pipeline/gitlab/createGitlabJobs.js +461 -0
  224. package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +8 -0
  225. package/dist/pipeline/gitlab/createGitlabPipeline.js +41 -0
  226. package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.d.ts +1 -0
  227. package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.js +29 -0
  228. package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +35 -0
  229. package/dist/pipeline/gitlab/gitlabReleaseJobs.js +27 -0
  230. package/dist/pipeline/gitlab/sortGitLabJobDefProps.d.ts +7 -0
  231. package/dist/pipeline/gitlab/sortGitLabJobDefProps.js +27 -0
  232. package/dist/pipeline/index.d.ts +3 -1
  233. package/dist/pipeline/index.js +16 -12
  234. package/dist/pipeline/packageManager.d.ts +3 -2
  235. package/dist/pipeline/packageManager.js +69 -196
  236. package/dist/pipeline/yarn/yarnUtils.d.ts +5 -0
  237. package/dist/pipeline/yarn/yarnUtils.js +241 -0
  238. package/dist/rules/index.d.ts +10 -2
  239. package/dist/rules/index.js +36 -16
  240. package/dist/runner/index.d.ts +2 -3
  241. package/dist/runner/index.js +3 -4
  242. package/dist/tsconfig.tsbuildinfo +1 -1
  243. package/dist/types/config.d.ts +56 -32
  244. package/dist/types/config.js +11 -18
  245. package/dist/types/context.d.ts +143 -27
  246. package/dist/types/context.js +12 -1
  247. package/dist/types/environmentContext.d.ts +31 -0
  248. package/dist/types/environmentContext.js +5 -0
  249. package/dist/types/gitlab-ci-yml.d.ts +769 -0
  250. package/dist/types/gitlab-ci-yml.js +10 -0
  251. package/dist/types/gitlab-types.d.ts +12 -60
  252. package/dist/types/gitlab-types.js +3 -1
  253. package/dist/types/index.js +13 -13
  254. package/dist/types/jobs.d.ts +55 -21
  255. package/dist/types/jobs.js +4 -2
  256. package/dist/types/pipeline.d.ts +5 -4
  257. package/dist/types/pipeline.js +3 -1
  258. package/dist/types/utils.d.ts +1 -0
  259. package/dist/types/utils.js +5 -0
  260. package/dist/utils/gitlab.d.ts +6 -0
  261. package/dist/utils/gitlab.js +56 -0
  262. package/dist/utils/index.d.ts +1 -1
  263. package/dist/utils/index.js +8 -16
  264. package/dist/utils/jsonParse.d.ts +1 -0
  265. package/dist/utils/jsonParse.js +14 -0
  266. package/dist/utils/removeUndefined.d.ts +1 -0
  267. package/dist/utils/removeUndefined.js +36 -0
  268. package/dist/utils/writeFiles.d.ts +11 -0
  269. package/dist/utils/writeFiles.js +180 -0
  270. package/examples/.test-gen-ignore +1 -0
  271. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +3300 -0
  272. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +3260 -0
  273. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +3300 -0
  274. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +3404 -0
  275. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +3300 -0
  276. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +3322 -0
  277. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +3300 -0
  278. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +3300 -0
  279. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +3388 -0
  280. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +2900 -0
  281. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +3300 -0
  282. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +6760 -0
  283. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +6030 -0
  284. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +3316 -0
  285. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +2983 -0
  286. package/examples/__snapshots__/custom-build-job.test.ts.snap +2572 -0
  287. package/examples/__snapshots__/custom-deploy.test.ts.snap +2824 -0
  288. package/examples/__snapshots__/custom-envs.test.ts.snap +1884 -0
  289. package/examples/__snapshots__/custom-sbom-java.test.ts.snap +2588 -0
  290. package/examples/__snapshots__/git-submodule.test.ts.snap +3304 -0
  291. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +4228 -0
  292. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.test.ts.snap +4252 -0
  293. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +4268 -0
  294. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +7910 -0
  295. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +4476 -0
  296. package/examples/__snapshots__/local-dot-env.test.ts.snap +3300 -0
  297. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +4342 -0
  298. package/examples/__snapshots__/multiline-var.test.ts.snap +7864 -0
  299. package/examples/__snapshots__/native-app.test.ts.snap +5316 -0
  300. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +3300 -0
  301. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +3316 -0
  302. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +2011 -0
  303. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +3465 -0
  304. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +3380 -0
  305. package/examples/__utils__/helpers.ts +27 -0
  306. package/examples/cloud-run-memory-limit.test.ts +18 -0
  307. package/examples/cloud-run-memory-limit.ts +33 -0
  308. package/examples/cloud-run-meteor-with-worker.test.ts +18 -0
  309. package/examples/cloud-run-meteor-with-worker.ts +37 -0
  310. package/examples/cloud-run-no-cpu-throttling.test.ts +18 -0
  311. package/examples/cloud-run-no-cpu-throttling.ts +35 -0
  312. package/examples/cloud-run-no-service.test.ts +18 -0
  313. package/examples/cloud-run-no-service.ts +33 -0
  314. package/examples/cloud-run-non-public.test.ts +18 -0
  315. package/examples/cloud-run-non-public.ts +28 -0
  316. package/examples/cloud-run-post-stop-job.test.ts +18 -0
  317. package/examples/cloud-run-post-stop-job.ts +42 -0
  318. package/examples/cloud-run-service-gen2.test.ts +18 -0
  319. package/examples/cloud-run-service-gen2.ts +29 -0
  320. package/examples/cloud-run-service-increase-timout.test.ts +18 -0
  321. package/examples/cloud-run-service-increase-timout.ts +29 -0
  322. package/examples/cloud-run-service-with-volumes.test.ts +18 -0
  323. package/examples/cloud-run-service-with-volumes.ts +56 -0
  324. package/examples/cloud-run-storybook.test.ts +18 -0
  325. package/examples/cloud-run-storybook.ts +33 -0
  326. package/examples/cloud-run-with-ngnix.test.ts +18 -0
  327. package/examples/cloud-run-with-ngnix.ts +29 -0
  328. package/examples/cloud-run-with-sql-reuse-db.test.ts +18 -0
  329. package/examples/cloud-run-with-sql-reuse-db.ts +55 -0
  330. package/examples/cloud-run-with-sql.test.ts +18 -0
  331. package/examples/cloud-run-with-sql.ts +71 -0
  332. package/examples/cloud-run-with-worker.test.ts +18 -0
  333. package/examples/cloud-run-with-worker.ts +37 -0
  334. package/examples/custom-build-job-with-tests.test.ts +18 -0
  335. package/examples/custom-build-job-with-tests.ts +56 -0
  336. package/examples/custom-build-job.test.ts +18 -0
  337. package/examples/custom-build-job.ts +29 -0
  338. package/examples/custom-deploy.test.ts +18 -0
  339. package/examples/custom-deploy.ts +36 -0
  340. package/examples/custom-envs.test.ts +18 -0
  341. package/examples/custom-envs.ts +32 -0
  342. package/examples/custom-sbom-java.test.ts +18 -0
  343. package/examples/custom-sbom-java.ts +38 -0
  344. package/examples/git-submodule.test.ts +18 -0
  345. package/examples/git-submodule.ts +30 -0
  346. package/examples/kubernetes-application-customization.test.ts +18 -0
  347. package/examples/kubernetes-application-customization.ts +59 -0
  348. package/examples/kubernetes-with-cloud-sql-legacy.test.ts +18 -0
  349. package/examples/kubernetes-with-cloud-sql-legacy.ts +35 -0
  350. package/examples/kubernetes-with-cloud-sql.test.ts +18 -0
  351. package/examples/kubernetes-with-cloud-sql.ts +37 -0
  352. package/examples/kubernetes-with-jobs.test.ts +18 -0
  353. package/examples/kubernetes-with-jobs.ts +70 -0
  354. package/examples/kubernetes-with-mongodb.test.ts +18 -0
  355. package/examples/kubernetes-with-mongodb.ts +51 -0
  356. package/examples/local-dot-env.test.ts +18 -0
  357. package/examples/local-dot-env.ts +27 -0
  358. package/examples/meteor-kubernetes.test.ts +18 -0
  359. package/examples/meteor-kubernetes.ts +64 -0
  360. package/examples/multiline-var.test.ts +18 -0
  361. package/examples/multiline-var.ts +65 -0
  362. package/examples/native-app.test.ts +18 -0
  363. package/examples/native-app.ts +83 -0
  364. package/examples/node-build-with-custom-image.test.ts +18 -0
  365. package/examples/node-build-with-custom-image.ts +26 -0
  366. package/examples/node-build-with-docker-additions.test.ts +18 -0
  367. package/examples/node-build-with-docker-additions.ts +29 -0
  368. package/examples/rails-k8s-with-worker-dockerfile.test.ts +9 -0
  369. package/examples/rails-k8s-with-worker.test.ts +18 -0
  370. package/examples/rails-k8s-with-worker.ts +95 -0
  371. package/examples/wait-for-other-deploy.test.ts +18 -0
  372. package/examples/wait-for-other-deploy.ts +37 -0
  373. package/package.json +76 -17
  374. package/scripts/bundle +2 -0
  375. package/scripts/generate-examples-test.ts +93 -0
  376. package/scripts/generate-gitlab-ci-types.ts +51 -0
  377. package/scripts/tsconfig.json +7 -0
  378. package/src/bash/BashExpression.ts +81 -0
  379. package/src/bash/bashExpressionPerPipelineType.ts +16 -0
  380. package/src/bash/bashYaml.ts +46 -0
  381. package/src/bash/getInjectVarsScript.ts +12 -0
  382. package/src/bash/replaceAsync.ts +50 -0
  383. package/src/build/artifacts/createBuildJobArtifact.ts +61 -0
  384. package/src/build/base/__tests__/__snapshots__/createArtifactsConfig.test.ts.snap +49 -0
  385. package/src/build/base/__tests__/createArtifactsConfig.test.ts +41 -0
  386. package/src/build/base/constants.ts +2 -2
  387. package/src/build/base/createAppBuildJob.ts +70 -0
  388. package/src/build/base/createArtifactsConfig.ts +34 -0
  389. package/src/build/base/index.ts +62 -0
  390. package/src/build/base/writeBuildInfo.ts +7 -0
  391. package/src/build/base/writeDotEnv.ts +40 -0
  392. package/src/build/custom/__tests__/testJob.test.ts +29 -0
  393. package/src/build/custom/buildJob.ts +41 -0
  394. package/src/build/custom/index.ts +8 -0
  395. package/src/build/custom/testJob.ts +93 -0
  396. package/src/build/docker.ts +173 -63
  397. package/src/build/index.ts +59 -8
  398. package/src/build/node/buildJob.ts +84 -64
  399. package/src/build/node/cache.ts +59 -24
  400. package/src/build/node/constants.ts +2 -3
  401. package/src/build/node/index.ts +9 -5
  402. package/src/build/node/meteor.ts +41 -44
  403. package/src/build/node/testJob.ts +57 -16
  404. package/src/build/node/yarn.ts +81 -25
  405. package/src/build/rails/build.ts +69 -0
  406. package/src/build/rails/index.ts +8 -0
  407. package/src/build/rails/test.ts +103 -0
  408. package/src/build/sbom.ts +48 -0
  409. package/src/build/types.ts +301 -27
  410. package/src/catladder-gitlab.ts +12 -52
  411. package/src/config/__tests__/__snapshots__/getAllEnvs.test.ts.snap +31 -0
  412. package/src/config/__tests__/__snapshots__/getAllEnvsInAllComponents.test.ts.snap +15 -0
  413. package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
  414. package/src/config/__tests__/getAllEnvs.test.ts +71 -0
  415. package/src/config/__tests__/getAllEnvsInAllComponents.test.ts +63 -0
  416. package/src/config/configruedEnvs.ts +8 -13
  417. package/src/config/readConfig.ts +17 -23
  418. package/src/constants.ts +5 -2
  419. package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +34 -44
  420. package/src/context/createAllComponentsContext.ts +31 -0
  421. package/src/context/createComponentContext.ts +135 -0
  422. package/src/context/createWorkspaceContext.ts +56 -0
  423. package/src/context/getBuildInfoVariables.ts +36 -0
  424. package/src/context/getEnvConfig.ts +21 -0
  425. package/src/context/getEnvType.ts +17 -0
  426. package/src/context/getEnvironment.ts +26 -0
  427. package/src/context/getEnvironmentContext.ts +53 -0
  428. package/src/context/getEnvironmentVariables.ts +210 -0
  429. package/src/context/getLabels.ts +21 -0
  430. package/src/context/getReviewSlug.ts +27 -0
  431. package/src/context/index.ts +3 -232
  432. package/src/context/resolveReferences.ts +67 -40
  433. package/src/context/transformJobOnlyVars.ts +45 -0
  434. package/src/context/utils/envVars.ts +27 -0
  435. package/src/defaults/index.ts +1 -1
  436. package/src/deploy/base/deploy.ts +136 -0
  437. package/src/deploy/base/index.ts +22 -0
  438. package/src/deploy/base/rollback.ts +38 -0
  439. package/src/deploy/base/stop.ts +43 -0
  440. package/src/deploy/base/types.ts +3 -0
  441. package/src/deploy/base/variables.ts +5 -0
  442. package/src/deploy/cloudRun/artifactsRegistry.ts +126 -0
  443. package/src/deploy/cloudRun/cleanup.ts +30 -0
  444. package/src/deploy/cloudRun/cloudRunRevisions.ts +65 -0
  445. package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +198 -0
  446. package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +86 -0
  447. package/src/deploy/cloudRun/createJobs/common.ts +59 -0
  448. package/src/deploy/cloudRun/createJobs/constants.ts +1 -0
  449. package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +79 -0
  450. package/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.ts +34 -0
  451. package/src/deploy/cloudRun/createJobs/index.ts +51 -0
  452. package/src/deploy/cloudRun/createJobs/volumes.ts +23 -0
  453. package/src/deploy/cloudRun/index.ts +127 -0
  454. package/src/deploy/cloudRun/utils/createArgsString.ts +34 -0
  455. package/src/deploy/cloudRun/utils/database.ts +77 -0
  456. package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +12 -0
  457. package/src/deploy/cloudRun/utils/getServiceName.ts +3 -0
  458. package/src/deploy/cloudRun/utils/jobName.ts +7 -0
  459. package/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.ts +12 -0
  460. package/src/deploy/cloudSql/utils.ts +26 -0
  461. package/src/deploy/custom/deployJob.ts +41 -16
  462. package/src/deploy/custom/index.ts +9 -1
  463. package/src/deploy/dockerTag/deployJob.ts +29 -0
  464. package/src/deploy/dockerTag/index.ts +10 -0
  465. package/src/deploy/index.ts +32 -17
  466. package/src/deploy/kubernetes/additionalSecretKeys.ts +25 -0
  467. package/src/deploy/kubernetes/cloudSql/index.ts +76 -0
  468. package/src/deploy/kubernetes/deployJob.ts +61 -115
  469. package/src/deploy/kubernetes/index.ts +50 -1
  470. package/src/deploy/kubernetes/kubeEnv.ts +50 -0
  471. package/src/deploy/kubernetes/kubeValues.ts +100 -0
  472. package/src/deploy/kubernetes/mongodb.ts +106 -8
  473. package/src/deploy/kubernetes/processSecretsAsFiles.ts +6 -5
  474. package/src/deploy/sbom.ts +32 -0
  475. package/src/deploy/types/base.ts +43 -0
  476. package/src/deploy/types/custom.ts +36 -0
  477. package/src/deploy/types/dockerTag.ts +14 -0
  478. package/src/deploy/types/googleCloudRun.ts +282 -0
  479. package/src/deploy/types/index.ts +28 -0
  480. package/src/deploy/types/kubernetes.ts +390 -0
  481. package/src/deploy/utils.ts +10 -6
  482. package/src/index.ts +2 -1
  483. package/src/packageInfos.ts +14 -0
  484. package/src/pipeline/__tests__/__snapshots__/getPipelineStages.test.ts.snap +69 -0
  485. package/src/pipeline/__tests__/getPipelineStages.test.ts +63 -0
  486. package/src/pipeline/createAllJobs.ts +72 -0
  487. package/src/pipeline/createChildPipeline.ts +24 -43
  488. package/src/pipeline/createJobsForComponent.ts +35 -0
  489. package/src/pipeline/createJobsForWorkspace.ts +12 -0
  490. package/src/pipeline/createMainPipeline.ts +111 -0
  491. package/src/pipeline/generatePipelineFiles.ts +76 -0
  492. package/src/pipeline/getPipelineStages.ts +23 -0
  493. package/src/pipeline/gitlab/createGitlabJobs.ts +445 -0
  494. package/src/pipeline/gitlab/createGitlabPipeline.ts +28 -0
  495. package/src/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.ts +46 -0
  496. package/src/pipeline/gitlab/gitlabReleaseJobs.ts +25 -0
  497. package/src/pipeline/gitlab/sortGitLabJobDefProps.ts +59 -0
  498. package/src/pipeline/index.ts +3 -1
  499. package/src/pipeline/packageManager.ts +47 -64
  500. package/src/pipeline/yarn/yarnUtils.ts +66 -0
  501. package/src/rules/index.ts +46 -13
  502. package/src/runner/index.ts +2 -1
  503. package/src/types/config.ts +72 -16
  504. package/src/types/context.ts +194 -25
  505. package/src/types/environmentContext.ts +38 -0
  506. package/src/types/gitlab-ci-yml.ts +891 -0
  507. package/src/types/gitlab-types.ts +52 -57
  508. package/src/types/jobs.ts +66 -11
  509. package/src/types/pipeline.ts +5 -1
  510. package/src/types/utils.ts +7 -0
  511. package/src/utils/gitlab.ts +33 -0
  512. package/src/utils/index.ts +3 -3
  513. package/src/utils/jsonParse.ts +7 -0
  514. package/src/utils/removeUndefined.ts +4 -0
  515. package/src/utils/writeFiles.ts +53 -0
  516. package/tsconfig.json +4 -2
  517. package/dist/build/base/createBuildJob.d.ts +0 -7
  518. package/dist/build/base/getBuildInfo.d.ts +0 -2
  519. package/dist/build/base/getBuildInfo.js +0 -12
  520. package/dist/context/resolveReferences.test.js +0 -141
  521. package/dist/deploy/base.d.ts +0 -8
  522. package/dist/deploy/base.js +0 -107
  523. package/dist/deploy/kubernetes/cloudsql.d.ts +0 -6
  524. package/dist/deploy/kubernetes/cloudsql.js +0 -16
  525. package/dist/deploy/types.d.ts +0 -196
  526. package/dist/deploy/types.js +0 -16
  527. package/dist/pipeline/createJobs.d.ts +0 -3
  528. package/dist/pipeline/createJobs.js +0 -383
  529. package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
  530. package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
  531. package/src/build/base/createBuildJob.ts +0 -43
  532. package/src/build/base/getBuildInfo.ts +0 -7
  533. package/src/build/tests/storybook.test.ts +0 -54
  534. package/src/deploy/base.ts +0 -120
  535. package/src/deploy/kubernetes/cloudsql.ts +0 -12
  536. package/src/deploy/types.ts +0 -189
  537. package/src/pipeline/createChildPipeline.test.ts +0 -49
  538. package/src/pipeline/createJobs.ts +0 -195
  539. package/src/pipeline/gitlab/makeGitlabJob.ts +0 -16
  540. /package/dist/build/{tests/storybook.test.d.ts → base/__tests__/createArtifactsConfig.test.d.ts} +0 -0
  541. /package/dist/{config/configruedEnvs.test.d.ts → build/custom/__tests__/testJob.test.d.ts} +0 -0
  542. /package/dist/{context/resolveReferences.test.d.ts → config/__tests__/configruedEnvs.test.d.ts} +0 -0
  543. /package/dist/{pipeline/createChildPipeline.test.d.ts → config/__tests__/getAllEnvs.test.d.ts} +0 -0
@@ -1,23 +1,112 @@
1
1
  "use strict";
2
2
 
3
- exports.__esModule = true;
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
4
16
  exports.createMongodbBaseConfig = void 0;
5
-
17
+ var lodash_1 = require("lodash");
18
+ var getEnvironmentVariables_1 = require("../../context/getEnvironmentVariables");
19
+ var types_1 = require("../types");
20
+ var getCredentialString = function (context) {
21
+ return "root:$".concat((0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "MONGODB_ROOT_PASSWORD"), "@");
22
+ };
23
+ var getMongodbHost = function (context, name) {
24
+ var namespace = context.environment.envVars.KUBE_NAMESPACE;
25
+ return "".concat(name, ".").concat(namespace, ".svc.cluster.local:27017");
26
+ };
27
+ var getMongodbStandaloneHost = function (context) {
28
+ var fullAppname = context.environment.envVars.KUBE_APP_NAME;
29
+ return getMongodbHost(context, "".concat(fullAppname, "-mongodb"));
30
+ };
31
+ var getMongodbReplicasetHost = function (context, index) {
32
+ var fullAppname = context.environment.envVars.KUBE_APP_NAME;
33
+ return getMongodbHost(context, "".concat(fullAppname, "-mongodb-").concat(index, ".").concat(fullAppname, "-mongodb-headless"));
34
+ };
35
+ var createMongodbUrl = function (context, dbName) {
36
+ var _a, _b, _c, _d;
37
+ if (!(0, types_1.isOfDeployType)((_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config, "kubernetes")) {
38
+ throw new Error("can only createMongodbUrl on supported deploys");
39
+ }
40
+ var mongodbConfig = (_c = (_b = context.deploy) === null || _b === void 0 ? void 0 : _b.config.values) === null || _c === void 0 ? void 0 : _c.mongodb;
41
+ var queryParams = undefined;
42
+ var hosts = "";
43
+ if ((mongodbConfig === null || mongodbConfig === void 0 ? void 0 : mongodbConfig.architecture) === "replicaset") {
44
+ hosts = (0, lodash_1.range)(0, (_d = mongodbConfig === null || mongodbConfig === void 0 ? void 0 : mongodbConfig.replicaCount) !== null && _d !== void 0 ? _d : 2).map(function (i) {
45
+ return getMongodbReplicasetHost(context, i);
46
+ }).join(",");
47
+ queryParams = "replicaSet=rs0&authSource=admin";
48
+ } else {
49
+ hosts = getMongodbStandaloneHost(context);
50
+ queryParams = "authSource=admin";
51
+ }
52
+ return "mongodb://".concat(getCredentialString(context)).concat(hosts, "/").concat(dbName).concat(queryParams ? "?".concat(queryParams) : "");
53
+ };
54
+ var createMongoBackupDefaultConfig = function (context) {
55
+ var _a, _b, _c;
56
+ if (!(0, types_1.isOfDeployType)((_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config, "kubernetes")) {
57
+ throw new Error("can only create mongodb base config on supported deploys");
58
+ }
59
+ var mongodbConfig = (_c = (_b = context.deploy) === null || _b === void 0 ? void 0 : _b.config.values) === null || _c === void 0 ? void 0 : _c.mongodb;
60
+ var fullAppName = context.environment.envVars.KUBE_APP_NAME;
61
+ var backupEnabled = ["prod", "stage"].includes(context.environment.envType);
62
+ var hostToBackup;
63
+ var pvcToBackup;
64
+ if ((mongodbConfig === null || mongodbConfig === void 0 ? void 0 : mongodbConfig.architecture) === "replicaset") {
65
+ // bit quirky, we need to specify the host and its volume
66
+ // on replicaset its probably best to not use the first one, whcih usually starts as master, so we take the second (last one would also be ok)
67
+ var backupHostIndex = (mongodbConfig === null || mongodbConfig === void 0 ? void 0 : mongodbConfig.architecture) === "replicaset" && mongodbConfig.replicaCount && mongodbConfig.replicaCount > 1 ? 1 : 0;
68
+ hostToBackup = getMongodbReplicasetHost(context, backupHostIndex);
69
+ pvcToBackup = "datadir-".concat(fullAppName, "-mongodb-").concat(backupHostIndex);
70
+ } else {
71
+ hostToBackup = getMongodbStandaloneHost(context);
72
+ pvcToBackup = "".concat(fullAppName, "-mongodb");
73
+ }
74
+ return {
75
+ enabled: backupEnabled,
76
+ hostToBackup: hostToBackup,
77
+ pvcToBackup: pvcToBackup,
78
+ image: "mrelite/kubectlmongoshell:v1.0",
79
+ schedule: "0 4 * * *",
80
+ volumeSnapshotClass: "snapshotclass"
81
+ };
82
+ };
6
83
  var createMongodbBaseConfig = function (context) {
84
+ var _a, _b, _c, _d;
85
+ if (!(0, types_1.isOfDeployType)((_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config, "kubernetes")) {
86
+ throw new Error("can only create mongodb base config on supported deploys");
87
+ }
88
+ var mongodbConfig = (_c = (_b = context.deploy) === null || _b === void 0 ? void 0 : _b.config.values) === null || _c === void 0 ? void 0 : _c.mongodb;
7
89
  return {
8
90
  mongodb: {
9
91
  enabled: true,
10
- backup: {
11
- enabled: ["prod", "stage"].includes(context.environment.envType)
12
- }
92
+ auth: {
93
+ enabled: true,
94
+ rootPassword: "$" + (0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "MONGODB_ROOT_PASSWORD"),
95
+ replicaSetKey: "$" + (0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "MONGODB_REPLICASET_KEY")
96
+ },
97
+ persistence: {
98
+ storageClass: "standard-rwo"
99
+ },
100
+ backup: createMongoBackupDefaultConfig(context)
13
101
  },
14
- "mongodb-replicaset": {
15
- replicas: 1,
16
- persistentVolume: {
17
- storageClass: "standard"
18
- }
102
+ env: {
103
+ secret: __assign({
104
+ MONGO_URL: createMongodbUrl(context, (_d = mongodbConfig === null || mongodbConfig === void 0 ? void 0 : mongodbConfig.dbName) !== null && _d !== void 0 ? _d : "app")
105
+ }, (mongodbConfig === null || mongodbConfig === void 0 ? void 0 : mongodbConfig.architecture) === "replicaset" ? {
106
+ MONGO_OPLOG_URL: createMongodbUrl(context, "local")
107
+ } // oplog only works with replicasets
108
+ : {})
19
109
  }
20
110
  };
21
111
  };
22
-
23
112
  exports.createMongodbBaseConfig = createMongodbBaseConfig;
@@ -1,44 +1,32 @@
1
+ import type { StringOrBashExpression } from "../../bash/BashExpression";
1
2
  export declare const processSecretsAsFiles: <T extends {
2
3
  env: {
3
- secret: Record<string, string>;
4
+ secret: Record<string, StringOrBashExpression>;
4
5
  };
5
6
  } & {
6
- cloudsql?: {
7
- enabled: boolean;
8
- instanceId?: string | undefined;
9
- projectId?: string | undefined;
10
- region?: string | undefined;
11
- } | undefined;
12
- mongodb?: ({
13
- enabled: boolean;
14
- } & Record<string, unknown>) | undefined;
7
+ cloudsql?: import("../types").DeployConfigKubernetesValuesCloudSQL | undefined;
8
+ mongodb?: import("../types").DeployConfigMongodb | undefined;
15
9
  mailhog?: {
16
10
  enabled: boolean;
17
11
  } | undefined;
18
- jobs?: Record<string, {
12
+ jobs?: Record<string, false | import("../types/base").AllowUnknownProps<{
19
13
  command: string;
20
- } & Record<string, unknown>> | undefined;
21
- cronjobs?: Record<string, {
14
+ hook?: string | undefined;
15
+ }>> | undefined;
16
+ cronjobs?: Record<string, false | import("../types/base").AllowUnknownProps<{
22
17
  schedule: string;
23
18
  command: string;
24
19
  concurrencyPolicy?: "Forbid" | "Allow" | "Replace" | undefined;
25
- } & Record<string, unknown>> | undefined;
26
- application?: ({
27
- redirects?: ({
28
- host: string;
29
- } & Record<string, unknown>)[] | undefined;
20
+ }>> | undefined;
21
+ application?: false | import("../types/base").AllowUnknownProps<{
22
+ command?: string | undefined;
23
+ enabled?: boolean | undefined;
24
+ redirects?: import("../types").KubernetesRedirect[] | undefined;
25
+ hostAliases?: string[] | undefined;
30
26
  replicas?: number | undefined;
31
27
  autoscale?: import("../types").KubernetesAutoscale | undefined;
32
- resources?: {
33
- limits?: {
34
- cpu?: string | undefined;
35
- memory?: string | undefined;
36
- } | undefined;
37
- requests?: {
38
- cpu?: string | undefined;
39
- memory?: string | undefined;
40
- } | undefined;
41
- } | undefined;
28
+ updateStrategy?: import("../types").KubernetesUpdateStrategy | undefined;
29
+ resources?: import("../types").KubernetesResourcesDef | undefined;
42
30
  healthRoute?: string | undefined;
43
31
  startupProbe?: {
44
32
  httpGet?: {
@@ -82,6 +70,16 @@ export declare const processSecretsAsFiles: <T extends {
82
70
  successThreshold?: number | undefined;
83
71
  } | undefined;
84
72
  } | undefined;
85
- } & Record<string, unknown>) | undefined;
73
+ worker?: import("../types").KubernetesWorkerDef | undefined;
74
+ jobDefaults?: {
75
+ resources: import("../types").KubernetesResourcesDef;
76
+ } | undefined;
77
+ }> | undefined;
78
+ secretsFromOtherComponent?: {
79
+ [envVar: string]: string;
80
+ } | undefined;
81
+ mapServiceUrlToEnv?: {
82
+ [envVar: string]: string;
83
+ } | undefined;
86
84
  secretsAsFile?: string[] | undefined;
87
85
  } & Record<string, unknown>>(values: T) => T;
@@ -4,29 +4,24 @@ var __assign = this && this.__assign || function () {
4
4
  __assign = Object.assign || function (t) {
5
5
  for (var s, i = 1, n = arguments.length; i < n; i++) {
6
6
  s = arguments[i];
7
-
8
7
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9
8
  }
10
-
11
9
  return t;
12
10
  };
13
-
14
11
  return __assign.apply(this, arguments);
15
12
  };
16
-
17
- exports.__esModule = true;
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
18
16
  exports.processSecretsAsFiles = void 0;
19
-
20
17
  var lodash_1 = require("lodash");
21
-
22
18
  var processSecretsAsFiles = function (values) {
23
19
  if (!values.secretsAsFile || values.secretsAsFile.length === 0) {
24
20
  return values;
25
- } // the initial idea was that we "shadow" secrets that we mount as files,
21
+ }
22
+ // the initial idea was that we "shadow" secrets that we mount as files,
26
23
  // but there is a weird kubernetes issue with that (https://github.com/kubernetes/kubernetes/issues/46861),
27
24
  // so instead we rename the secrets and append _content, so that inside kuberentes, we can use the original name to contain the path and name+_content as the actual content
28
-
29
-
30
25
  return __assign(__assign({}, values), {
31
26
  env: __assign(__assign({}, values.env), {
32
27
  secret: __assign(__assign({}, (0, lodash_1.omit)(values.env.secret, values.secretsAsFile)), Object.fromEntries(values.secretsAsFile.map(function (key) {
@@ -35,5 +30,4 @@ var processSecretsAsFiles = function (values) {
35
30
  })
36
31
  });
37
32
  };
38
-
39
33
  exports.processSecretsAsFiles = processSecretsAsFiles;
@@ -0,0 +1,4 @@
1
+ import { type ComponentContext } from "../types/context";
2
+ export declare const sbomDeactivated: (context: ComponentContext) => boolean;
3
+ export declare const getDependencyTrackUploadScript: (context: ComponentContext) => string[];
4
+ export declare const getDependencyTrackDeleteScript: (context: ComponentContext) => string[];
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDependencyTrackDeleteScript = exports.getDependencyTrackUploadScript = exports.sbomDeactivated = void 0;
7
+ var sbom_1 = require("../build/sbom");
8
+ var context_1 = require("../types/context");
9
+ var sbomDeactivated = function (context) {
10
+ return (0, context_1.componentContextIsStandaloneBuild)(context) && context.build.config.type === "custom" && context.build.config.sbom === false;
11
+ };
12
+ exports.sbomDeactivated = sbomDeactivated;
13
+ var getDependencyTrackUploadScript = function (context) {
14
+ return (0, exports.sbomDeactivated)(context) ? [] : ["echo 'Uploading SBOM to Dependency Track'", "/dtrackuploader https://dep.panter.swiss/ \"$DT_KEY_PROD\" upload \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.name, "\" \"").concat(context.environment.url, "\" \"").concat(sbom_1.SBOM_FILE, "\" vex.json || true")];
15
+ };
16
+ exports.getDependencyTrackUploadScript = getDependencyTrackUploadScript;
17
+ var getDependencyTrackDeleteScript = function (context) {
18
+ return (0, exports.sbomDeactivated)(context) ? [] : ["echo 'Disabling component in Dependency Track'", "/dtrackuploader https://dep.panter.swiss/ \"$DT_KEY_PROD\" disable \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.name, "\" \"").concat(context.environment.url, "\" || true")];
19
+ };
20
+ exports.getDependencyTrackDeleteScript = getDependencyTrackDeleteScript;
@@ -0,0 +1,36 @@
1
+ import type { EnvVars } from "../../types/config";
2
+ export type DeployConfigBase = {
3
+ /**
4
+ * whether to deploy automatically or manual. If not defined, these rules apply:
5
+ * - prod: manual
6
+ * - all other envs: auto
7
+ */
8
+ when?: "manual" | "auto";
9
+ /**
10
+ * EXPERIMENTAL
11
+ * wait for other components to deploy first, before doing this deployment
12
+ */
13
+ waitFor?: string[];
14
+ /**
15
+ * tags for the underlying job runner (e.g gitlab)
16
+ */
17
+ jobTags?: string[];
18
+ /**
19
+ * vars that only exist in the deploy job.
20
+ * Can curently not reference other variables from other components
21
+ */
22
+ jobVars?: EnvVars;
23
+ /**
24
+ * additional env vars for the deploy job
25
+ *
26
+ * @deprecated use deploy.jobVars for deploy job specific variables
27
+ */
28
+ extraVars?: Record<string, string>;
29
+ /**
30
+ * additional vars only for the runner.
31
+ * Also if you use services: that require env vars, you need to set them here.
32
+ *
33
+ */
34
+ runnerVariables?: Record<string, string>;
35
+ };
36
+ export type AllowUnknownProps<T extends Record<string, unknown>> = T & Record<string, unknown>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,33 @@
1
+ import type { GitlabJobImage } from "../../types";
2
+ import type { CatladderJob } from "../../types/jobs";
3
+ import type { DeployConfigBase } from "./base";
4
+ export type DeployConfigCustom = {
5
+ /**
6
+ * custom deploy types allow you to specify custom commands to deploy your app
7
+ */
8
+ type: "custom";
9
+ /**
10
+ * whether the deploy script requires a docker image to be built
11
+ */
12
+ requiresDocker: boolean;
13
+ /**
14
+ * whether your custom script requires yarn install
15
+ */
16
+ requiresYarnInstall?: boolean;
17
+ /**
18
+ * your custom script
19
+ */
20
+ script: string[];
21
+ /**
22
+ * script to run to stop the environment
23
+ */
24
+ stopScript?: string[];
25
+ /**
26
+ * image to use
27
+ */
28
+ jobImage?: GitlabJobImage;
29
+ /**
30
+ * customize cache for the job
31
+ */
32
+ jobCache?: CatladderJob["cache"];
33
+ } & DeployConfigBase;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,12 @@
1
+ import type { DeployConfigBase } from "./base";
2
+ export type DeployConfigDockerTag = {
3
+ /**
4
+ * adds a custom tag on the repo to deploy it.
5
+ *
6
+ * only used in veloplus atm, generally not recommended to use
7
+ * because run-time environment variables have to be coordinated
8
+ * manually with the platform running the container.
9
+ */
10
+ type: "dockerTag";
11
+ tag: string;
12
+ } & DeployConfigBase;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,208 @@
1
+ import type { DeployConfigBase } from "./base";
2
+ export type Gcloudregion = "asia-east1" | "asia-northeast1" | "asia-northeast2" | "europe-north1" | "europe-southwest1" | "europe-west1" | "europe-west4" | "europe-west8" | "europe-west9" | "me-west1" | "us-central1" | "us-east1" | "us-east4" | "us-east5" | "us-south1" | "us-west1" | "asia-east2" | "asia-northeast3" | "asia-southeast1" | "asia-southeast2" | "asia-south1" | "asia-south2" | "australia-southeast1" | "australia-southeast2" | "europe-central2" | "europe-west2" | "europe-west3" | "europe-west6" | "northamerica-northeast1" | "northamerica-northeast2" | "southamerica-east1" | "southamerica-west1" | "us-west2" | "us-west3" | "us-west4";
3
+ export type DeployConfigCloudRunCloudSql = {
4
+ type: "unmanaged";
5
+ instanceConnectionName: string;
6
+ /**
7
+ * the database username, defaults to "postgres"
8
+ */
9
+ dbUser?: string;
10
+ /**
11
+ * the prefix of the database, the full db name is this plus the environment slug prefix plus the componentName
12
+ *
13
+ * defaults to customerName-appName
14
+ */
15
+ dbNamePrefix?: string | false;
16
+ /**
17
+ * the base name of the db, defaults to the componentName
18
+ */
19
+ dbBaseName?: string;
20
+ /**
21
+ * whether to delete the database if the environment is stopped
22
+ * defaults to true for review envs, to false for every other environment
23
+ */
24
+ deleteDatabaseOnStop?: boolean;
25
+ /**
26
+ * format of the `DATABASE_URL` environment variable
27
+ *
28
+ * the options are:
29
+ * - prisma: adds [required but ignored hostname](https://www.prisma.io/docs/orm/overview/databases/postgresql#connecting-via-sockets):
30
+ * `postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME`
31
+ * - rails: percent-encodes the socket in the host part
32
+ * `postgresql://$DB_USER:$DB_PASSWORD@%2Fcloudsql%2FprojectId%3Aregion%3Ainstancename/$DB_NAME?`
33
+ * - jdbc: for use with Google Cloud SQL Connector for Java
34
+ * `jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD`
35
+ *
36
+ * defaults to prisma
37
+ */
38
+ dbConnectionStringFormat?: "prisma" | "rails" | "jdbc";
39
+ /**
40
+ * add additional query params to the database connection string
41
+ */
42
+ dbAdditionalQueryParams?: Record<string, string | number> & {
43
+ /**
44
+ * set to 0 for prisma in review or dev apps where you reset the db occasionally without restarting any server
45
+ */
46
+ statement_cache_size?: number;
47
+ };
48
+ };
49
+ type Memory = `${number}${"M" | "G" | "Mi" | "Gi"}`;
50
+ type Cpu = 1 | 2 | 4 | 6 | 8;
51
+ export type DeployConfigCloudRunService = {
52
+ /**
53
+ * command / entrypoint, fallsback to buildConfig.startcommand
54
+ */
55
+ command?: string | string[];
56
+ /**
57
+ * how many instances to keep around when there are no requests. defaults to 0.
58
+ * Set to 1 for workers
59
+ */
60
+ minInstances?: number;
61
+ /**
62
+ * maximum amount of instances. Defaults to 100
63
+ */
64
+ maxInstances?: number;
65
+ /**
66
+ * set to true to allways allocate cpu, e.g. for workers. Careful that this is expensive, unless you get really regularly requests!
67
+ */
68
+ noCpuThrottling?: true;
69
+ /**
70
+ * whether to allow public access without authentification (defaults to true)
71
+ */
72
+ allowUnauthenticated?: boolean;
73
+ /**
74
+ * whether to expose the service to the internet.
75
+ *
76
+ * The options are:
77
+ * - all: expose to the internet and internal traffic
78
+ * - internal: only expose to internal traffic
79
+ * - internal-and-cloud-load-balancing: expose to internal traffic and cloud load balancing
80
+ *
81
+ * Defaults to "all"
82
+ */
83
+ ingress?: "all" | "internal" | "internal-and-cloud-load-balancing";
84
+ /**
85
+ * CPU limit.
86
+ */
87
+ cpu?: Cpu;
88
+ /**
89
+ * memory limit. Defaults to 512MB
90
+ */
91
+ memory?: Memory;
92
+ /**
93
+ * timeout of the service, defaults to 5 minutes.
94
+ *
95
+ * you can specify something like 10m30s. if its just a number, it will be interpreted as seconds
96
+ *
97
+ * max supported is 60min
98
+ */
99
+ timeout?: string;
100
+ /**
101
+ *
102
+ * set the execution environment.
103
+ *
104
+ * see https://cloud.google.com/run/docs/about-execution-environments
105
+ *
106
+ * defaults to gen1 according to gcloud
107
+ */
108
+ executionEnvironment?: "gen2" | "gen1";
109
+ } & DeployConfigCloudRunWithVolumes;
110
+ export type DeployConfigCloudRunJobBase = {
111
+ /**
112
+ * command
113
+ */
114
+ command: string | string[];
115
+ /**
116
+ * custom image to use. Defaults to the image from the build
117
+ */
118
+ image?: string;
119
+ /**
120
+ * CPU limit of the job.
121
+ */
122
+ cpu?: Cpu;
123
+ /**
124
+ * memory limit of the job, defaults to 512Mi
125
+ */
126
+ memory?: `${number}${"M" | "G" | "Mi" | "Gi"}`;
127
+ /**
128
+ * timeout of job, defaults to 10 minutes
129
+ *
130
+ * you can specify something like 10m30s
131
+ */
132
+ timeout?: string;
133
+ /**
134
+ * number of tasks that may run concurrently, defaults to 1
135
+ */
136
+ parallelism?: number;
137
+ } & DeployConfigCloudRunWithVolumes;
138
+ type Minute = string;
139
+ type Hour = string;
140
+ type DayOfMonth = string;
141
+ type DayOfWeek = string;
142
+ type Month = string;
143
+ export type DeployConfigCloudRunJobWithSchedule = DeployConfigCloudRunJobBase & {
144
+ when: "schedule";
145
+ schedule: `${Minute} ${Hour} ${DayOfMonth} ${Month} ${DayOfWeek}`;
146
+ /**
147
+ * Max number of retries of the cloud scheduler.
148
+ * Note: the task itself is never retried.
149
+ *
150
+ * defaults to 0 (no retries)
151
+ */
152
+ maxRetryAttempts?: 0 | 1 | 2 | 3 | 4 | 5;
153
+ };
154
+ export type DeployConfigCloudRunJobNormal = DeployConfigCloudRunJobBase & {
155
+ when: "manual" | "preDeploy" | "postDeploy" | "preStop" | "postStop";
156
+ };
157
+ export type DeployConfigCloudRunWithVolumes = {
158
+ /**
159
+ * adds volumes to the service. This is an experimental feature and requires beta gcloud.
160
+ * sets executionEnvironment to gen2 automatically, since that is required
161
+ */
162
+ volumes?: DeployConfigCloudRunVolumes;
163
+ };
164
+ export type DeployConfigCloudRunJob = DeployConfigCloudRunJobNormal | DeployConfigCloudRunJobWithSchedule;
165
+ export type DeployConfigCloudRun = {
166
+ /**
167
+ * cloud run deployment.
168
+ *
169
+ * This will deploy a cloud run service. You can optionally define one-time and scheduled jobs running on cloud run
170
+ *
171
+ * Requires that cloud run is enabled on the project, as well as cloud run api and artifacts registry.
172
+ */
173
+ type: "google-cloudrun";
174
+ /**
175
+ * the google cloud porject id
176
+ */
177
+ projectId: string;
178
+ /**
179
+ * the region. Set to europe-west6 for switzerland
180
+ */
181
+ region: Gcloudregion;
182
+ /**
183
+ * whether to enable the service, defaults to true
184
+ */
185
+ service?: boolean | DeployConfigCloudRunService;
186
+ /**
187
+ * deploy additional services with different entry points.
188
+ */
189
+ additionalServices?: {
190
+ [name: string]: DeployConfigCloudRunService;
191
+ };
192
+ jobs?: {
193
+ [name: string]: DeployConfigCloudRunJob | false | null;
194
+ };
195
+ /**
196
+ * add cloudSql
197
+ */
198
+ cloudSql?: DeployConfigCloudRunCloudSql | false;
199
+ debug?: boolean;
200
+ } & DeployConfigBase;
201
+ export type DeployConfigCloudRunVolumes = Record<string, DeployConfigCloudRunVolume>;
202
+ export type DeployConfigCloudRunVolume = {
203
+ type: "cloud-storage";
204
+ bucket: string;
205
+ mountPath: string;
206
+ readonly?: boolean;
207
+ };
208
+ export {};
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,22 @@
1
+ import type { DeployConfigCustom } from "./custom";
2
+ import type { DeployConfigDockerTag } from "./dockerTag";
3
+ import type { DeployConfigCloudRun } from "./googleCloudRun";
4
+ import type { DeployConfigKubernetes } from "./kubernetes";
5
+ export * from "./custom";
6
+ export * from "./googleCloudRun";
7
+ export * from "./kubernetes";
8
+ export * from "./dockerTag";
9
+ export type DeployConfig = DeployConfigKubernetes | DeployConfigCustom | DeployConfigCloudRun | DeployConfigDockerTag;
10
+ export type DeployConfigType = DeployConfig["type"];
11
+ export type DeployConfigGeneric<T extends DeployConfigType> = Extract<DeployConfig, {
12
+ type: T;
13
+ }>;
14
+ export declare const isOfDeployType: <T extends ("custom" | "dockerTag" | "google-cloudrun" | "kubernetes")[]>(t: DeployConfig | false | null | undefined, ...types: T) => t is Extract<DeployConfigCustom, {
15
+ type: T[number];
16
+ }> | Extract<DeployConfigDockerTag, {
17
+ type: T[number];
18
+ }> | Extract<DeployConfigCloudRun, {
19
+ type: T[number];
20
+ }> | Extract<DeployConfigKubernetes, {
21
+ type: T[number];
22
+ }>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = this && this.__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ exports.isOfDeployType = void 0;
26
+ __exportStar(require("./custom"), exports);
27
+ __exportStar(require("./googleCloudRun"), exports);
28
+ __exportStar(require("./kubernetes"), exports);
29
+ __exportStar(require("./dockerTag"), exports);
30
+ var isOfDeployType = function (t) {
31
+ var types = [];
32
+ for (var _i = 1; _i < arguments.length; _i++) {
33
+ types[_i - 1] = arguments[_i];
34
+ }
35
+ return t && types.includes(t.type) ? true : false;
36
+ };
37
+ exports.isOfDeployType = isOfDeployType;