@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
@@ -0,0 +1,355 @@
1
+ import type { AllowUnknownProps, DeployConfigBase } from "./base";
2
+ export type DeployConfigKubernetesClusterGCloud = {
3
+ type: "gcloud";
4
+ /**
5
+ * gcoud name of the cluster
6
+ */
7
+ name: string;
8
+ /**
9
+ * google cloud project id
10
+ */
11
+ projectId: string;
12
+ /**
13
+ * region
14
+ */
15
+ region: string;
16
+ /**
17
+ * domain of the cluster, for canonical domains without custom host (e.g. review and dev apps)
18
+ */
19
+ domainCanonical?: string;
20
+ };
21
+ export type DeployConfigKubernetesCluster = DeployConfigKubernetesClusterGCloud;
22
+ export type KubernetesAutoscaleMetricResourceTarget = {
23
+ type: "Utilization";
24
+ averageUtilization: number;
25
+ } | {
26
+ type: "AverageValue";
27
+ averageValue: number | string;
28
+ };
29
+ export type KubernetesAutoscaleMetric = {
30
+ type: "Resource";
31
+ resource: {
32
+ name: "cpu" | "memory";
33
+ target: KubernetesAutoscaleMetricResourceTarget;
34
+ };
35
+ };
36
+ export type KubernetesAutoscale = {
37
+ minReplicas: number;
38
+ maxReplicas: number;
39
+ /**
40
+ * declare a number of metrics (at least one). Usually you would use cpu as a metric
41
+ */
42
+ metrics: KubernetesAutoscaleMetric[];
43
+ };
44
+ export type KubernetesResourcesDef = {
45
+ limits?: {
46
+ cpu?: string;
47
+ memory?: string;
48
+ };
49
+ requests?: {
50
+ cpu?: string;
51
+ memory?: string;
52
+ };
53
+ };
54
+ type KubernetesHealthDef = {
55
+ httpGet?: {
56
+ path?: string;
57
+ port?: number;
58
+ httpHeaders?: {
59
+ name: string;
60
+ value: string;
61
+ }[];
62
+ failureThreshold?: number;
63
+ timeoutSeconds?: number;
64
+ periodSeconds?: number;
65
+ successThreshold?: number;
66
+ };
67
+ };
68
+ export type KubernetesUpdateStrategy = {
69
+ rollingUpdate: {
70
+ /**
71
+ * how many pods can be created additionally to the target number
72
+ * can be absolute number or percentage.
73
+ * defaults to 1 (kube default is 25%)
74
+ */
75
+ maxSurge: number | string;
76
+ /**
77
+ * how many pods are allowed to be unavailable
78
+ * can be absolute number or percentage
79
+ * defaults to 0 (kube default is 25%)
80
+ */
81
+ maxUnavailable: number | string;
82
+ };
83
+ type: "RollingUpdate";
84
+ };
85
+ export type KubernetesWorkerDef = {
86
+ enabled: boolean;
87
+ /**
88
+ * which command to run. defaults to `yarn start`
89
+ */
90
+ command?: string;
91
+ resources?: KubernetesResourcesDef;
92
+ service?: {
93
+ enabled?: boolean;
94
+ };
95
+ /**
96
+ * if the same livenessProbe as the application should be used, defaults to `true`
97
+ */
98
+ livenessProbe?: boolean;
99
+ };
100
+ type KubernetesTolerationExists = {
101
+ operator: "Exists";
102
+ };
103
+ type KubernetesTolerationEqual = {
104
+ operator: "Equal";
105
+ value: string;
106
+ };
107
+ export type KubernetesToleration = {
108
+ key: string;
109
+ effect: "NoSchedule" | "PreferNoSchedule" | "NoExecute";
110
+ } & (KubernetesTolerationEqual | KubernetesTolerationExists);
111
+ export type DeployConfigMongodbBase = {
112
+ enabled?: boolean;
113
+ dbName?: string;
114
+ persistence?: {
115
+ /**
116
+ * set premium-rwo for ssd
117
+ */
118
+ storageClass?: "standard-rwo" | "premium-rwo";
119
+ /**
120
+ * size of the volume, defaults to 8Gi
121
+ */
122
+ size?: string;
123
+ };
124
+ resources?: KubernetesResourcesDef;
125
+ tolerations?: KubernetesToleration[];
126
+ };
127
+ export type KubernetesRedirect = {
128
+ /**
129
+ * the domain to redirect from
130
+ */
131
+ host: string;
132
+ /**
133
+ * optional path to redirect from, defaults to `/`
134
+ */
135
+ path?: string;
136
+ /**
137
+ * optional nginx config snippet, defaults to a 301 redirect to the environment host name name with the request path appended
138
+ *
139
+ * important: to get a literal `$` use `$$` to prevent variable expansion by gitlab
140
+ * see https://docs.gitlab.com/ee/ci/variables/#use-the--character-in-cicd-variables
141
+ */
142
+ rule?: string;
143
+ };
144
+ export type DeployConfigMongodbStandalone = {
145
+ architecture: "standalone";
146
+ };
147
+ export type DeployConfigMongodbReplicaset = {
148
+ architecture: "replicaset";
149
+ /**
150
+ * defaults to 2
151
+ */
152
+ replicaCount?: number;
153
+ };
154
+ export type DeployConfigMongodb = DeployConfigMongodbBase & (DeployConfigMongodbStandalone | DeployConfigMongodbReplicaset);
155
+ /**
156
+ * @deprecated use config with instanceConnectionName
157
+ */
158
+ type DeployConfigKubernetesValuesCloudSQLLegacy = {
159
+ enabled: boolean;
160
+ /**
161
+ * @deprecated use config with instanceConnectionName
162
+ */
163
+ instanceId?: string;
164
+ /**
165
+ * @deprecated use config with instanceConnectionName
166
+ */
167
+ projectId?: string;
168
+ /**
169
+ * @deprecated use config with instanceConnectionName
170
+ */
171
+ region?: string;
172
+ /**
173
+ * @deprecated use type "unmanaged".
174
+ *
175
+ * Be aware that "unmanaged" is not fully backward compatible with "legacy".
176
+ *
177
+ *
178
+ */
179
+ type?: "legacy";
180
+ };
181
+ export type DeployConfigKubernetesValuesCloudSQLUnmanaged = {
182
+ enabled: boolean;
183
+ instanceConnectionName: string;
184
+ /**
185
+ * the recommended type for the config.
186
+ *
187
+ * this mode is similar to cloudrun and declares fully-qualified db names including env.
188
+ *
189
+ * This makes it easier to share db instances across envs and dbs
190
+ */
191
+ type: "unmanaged";
192
+ /**
193
+ * the database username, defaults to "postgres"
194
+ */
195
+ dbUser?: string;
196
+ /**
197
+ * the prefix of the database, the full db name is this plus the environment slug prefix plus the componentName
198
+ *
199
+ * defaults to customerName-appName
200
+ */
201
+ dbNamePrefix?: string | false;
202
+ /**
203
+ * the base name of the db, defaults to the componentName
204
+ */
205
+ dbBaseName?: string;
206
+ };
207
+ export type DeployConfigKubernetesValuesCloudSQL = DeployConfigKubernetesValuesCloudSQLLegacy | DeployConfigKubernetesValuesCloudSQLUnmanaged;
208
+ export type DeployConfigKubernetesValues = AllowUnknownProps<{
209
+ /**
210
+ * enable cloudsql db. Currently you have to manually set it up
211
+ */
212
+ cloudsql?: DeployConfigKubernetesValuesCloudSQL;
213
+ /**
214
+ * enable mongodb. The mongodb is deployed using a helm chart.
215
+ * See https://github.com/bitnami/charts/tree/master/bitnami/mongodb
216
+ */
217
+ mongodb?: DeployConfigMongodb;
218
+ /**
219
+ * enable mailhog. Mailhog is a virtual mail server that catches all outgoing mailsl and show them in a mailbox.
220
+ * This is great for development as it prevents to accidentially send out real emails and helps with debugging outgoing mails.
221
+ *
222
+ * It will automaticaly inject a MAIL_URL env var.
223
+ *
224
+ * Turn it of for production.
225
+ */
226
+ mailhog?: {
227
+ enabled: boolean;
228
+ };
229
+ /**
230
+ * post-install/upgrade jobs. These use the app image and have all env vars available.
231
+ * Typically used for migrations and seeds
232
+ */
233
+ jobs?: Record<string, false | AllowUnknownProps<{
234
+ /**
235
+ * the command to execute
236
+ */
237
+ command: string;
238
+ /**
239
+ * comma-separated list of helm hooks, see https://helm.sh/docs/topics/charts_hooks/
240
+ *
241
+ * defaults to post-install,post-upgrade
242
+ */
243
+ hook?: string;
244
+ }>>;
245
+ /**
246
+ * cronjobs that run periodically. These use the app image have all env vars available.
247
+ */
248
+ cronjobs?: Record<string, false | AllowUnknownProps<{
249
+ schedule: string;
250
+ command: string;
251
+ concurrencyPolicy?: "Forbid" | "Allow" | "Replace";
252
+ }>>;
253
+ /**
254
+ * configuration for the application ("Deployment" in kubernetes)
255
+ */
256
+ application?: false | AllowUnknownProps<{
257
+ /**
258
+ * command to start, defaults to build's startCommand
259
+ */
260
+ command?: string;
261
+ /**
262
+ * enable, disable app deployment, defaults to true
263
+ */
264
+ enabled?: boolean;
265
+ /**
266
+ * redirects
267
+ */
268
+ redirects?: KubernetesRedirect[];
269
+ /**
270
+ * Host aliases
271
+ */
272
+ hostAliases?: string[];
273
+ /**
274
+ * how many pods will be started
275
+ */
276
+ replicas?: number;
277
+ /**
278
+ * autoscale the pods horizontally
279
+ */
280
+ autoscale?: KubernetesAutoscale;
281
+ /**
282
+ * the update strategy, see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment
283
+ */
284
+ updateStrategy?: KubernetesUpdateStrategy;
285
+ /**
286
+ * kubernetes resources
287
+ */
288
+ resources?: KubernetesResourcesDef;
289
+ healthRoute?: string;
290
+ startupProbe?: KubernetesHealthDef;
291
+ readinessProbe?: KubernetesHealthDef;
292
+ livenessProbe?: KubernetesHealthDef;
293
+ /**
294
+ * specify a worker. A worker is a separate deployment that runs continously in the background.
295
+ * The worker pod can use the same entry point as the app or a different one (specify command).
296
+ * It has the same environment variables as the application and an additional IS_WORKER="true" variable
297
+ */
298
+ worker?: KubernetesWorkerDef;
299
+ /**
300
+ * kubernetes resources for jobs and cronjobs
301
+ */
302
+ jobDefaults?: {
303
+ resources: KubernetesResourcesDef;
304
+ };
305
+ }>;
306
+ /**
307
+ * load secrets from other components.
308
+ * Use this only in cases where the secret is not known on pipeline-time
309
+ * and only if the component is also in the same cluster.
310
+ *
311
+ * a typical case is reusing mongo_url from other component
312
+ *
313
+ * also make sure that the other component deploys first
314
+ *
315
+ * in all other cases use normal env var handling
316
+ */
317
+ secretsFromOtherComponent?: {
318
+ [envVar: string]: string;
319
+ };
320
+ /**
321
+ * map another services internal endpoint into a env var.
322
+ */
323
+ mapServiceUrlToEnv?: {
324
+ [envVar: string]: string;
325
+ };
326
+ /**
327
+ * Mount secrets as files in the filesystem.
328
+ * These secrets are still available as env vars, but will contain the path of the file instead
329
+ *
330
+ * @deprecated this will be removed in the future, because its very niche and not used
331
+ */
332
+ secretsAsFile?: string[];
333
+ }>;
334
+ export type DeployConfigKubernetes = {
335
+ type: "kubernetes";
336
+ /**
337
+ * cluster config to use.
338
+ */
339
+ cluster: DeployConfigKubernetesCluster;
340
+ /**
341
+ * prints out debug info (helm --debug)
342
+ */
343
+ debug?: boolean;
344
+ additionalHelmArgs?: string[];
345
+ /**
346
+ * values to configure the app
347
+ */
348
+ values?: DeployConfigKubernetesValues;
349
+ /**
350
+ * Custom Helm chart location.
351
+ * Not recommended to use.
352
+ */
353
+ chartName?: string;
354
+ } & DeployConfigBase;
355
+ export {};
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,5 +1,5 @@
1
- import { Config, Context } from "../types";
2
- import { DeployConfigKubernetesCluster } from "./types";
1
+ import type { Config, ComponentContext } from "../types";
2
+ import type { DeployConfigKubernetesCluster } from "./types";
3
3
  export declare const getFullKubernetesClusterName: (cluster: DeployConfigKubernetesCluster) => string | undefined;
4
4
  export declare const getKubernetesNamespace: (config: Pick<Config, "customerName" | "appName">, env: string) => string;
5
- export declare const contextIsStoppable: (context: Context) => boolean;
5
+ export declare const contextIsStoppable: (context: ComponentContext) => boolean;
@@ -1,36 +1,32 @@
1
1
  "use strict";
2
2
 
3
- exports.__esModule = true;
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
4
6
  exports.contextIsStoppable = exports.getKubernetesNamespace = exports.getFullKubernetesClusterName = void 0;
5
-
6
7
  var types_1 = require("./types");
7
-
8
8
  var getFullKubernetesClusterName = function (cluster) {
9
9
  if (cluster.type === "gcloud") {
10
10
  return "gke_".concat(cluster.projectId, "_").concat(cluster.region, "_").concat(cluster.name);
11
11
  }
12
12
  };
13
-
14
13
  exports.getFullKubernetesClusterName = getFullKubernetesClusterName;
15
-
16
14
  var getKubernetesNamespace = function (config, env) {
17
15
  return "".concat(config.customerName, "-").concat(config.appName, "-").concat(env);
18
16
  };
19
-
20
17
  exports.getKubernetesNamespace = getKubernetesNamespace;
21
-
22
18
  var contextIsStoppable = function (context) {
23
- var deployConfig = context.componentConfig.deploy;
24
-
19
+ var _a;
20
+ var deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
25
21
  if ((0, types_1.isOfDeployType)(deployConfig, "kubernetes")) {
26
22
  return true;
27
23
  }
28
-
24
+ if ((0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) {
25
+ return true;
26
+ }
29
27
  if ((0, types_1.isOfDeployType)(deployConfig, "custom") && deployConfig.stopScript) {
30
28
  return true;
31
29
  }
32
-
33
30
  return false;
34
31
  };
35
-
36
32
  exports.contextIsStoppable = contextIsStoppable;
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- export * from "./pipeline/";
1
+ export * from "./pipeline";
2
2
  export * from "./types";
3
3
  export * from "./rules";
4
4
  export * from "./runner";
5
5
  export * from "./config";
6
6
  export * from "./context";
7
7
  export * from "./build";
8
- export * from "./deploy";
8
+ export * from "./deploy";
9
+ export * from "./utils/writeFiles";
package/dist/index.js CHANGED
@@ -2,35 +2,32 @@
2
2
 
3
3
  var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
- Object.defineProperty(o, k2, {
6
- enumerable: true,
7
- get: function () {
8
- return m[k];
9
- }
10
- });
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);
11
15
  } : function (o, m, k, k2) {
12
16
  if (k2 === undefined) k2 = k;
13
17
  o[k2] = m[k];
14
18
  });
15
-
16
19
  var __exportStar = this && this.__exportStar || function (m, exports) {
17
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
21
  };
19
-
20
- exports.__esModule = true;
21
-
22
- __exportStar(require("./pipeline/"), exports);
23
-
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./pipeline"), exports);
24
26
  __exportStar(require("./types"), exports);
25
-
26
27
  __exportStar(require("./rules"), exports);
27
-
28
28
  __exportStar(require("./runner"), exports);
29
-
30
29
  __exportStar(require("./config"), exports);
31
-
32
30
  __exportStar(require("./context"), exports);
33
-
34
31
  __exportStar(require("./build"), exports);
35
-
36
- __exportStar(require("./deploy"), exports);
32
+ __exportStar(require("./deploy"), exports);
33
+ __exportStar(require("./utils/writeFiles"), exports);
@@ -0,0 +1,4 @@
1
+ declare let ownPkg: {
2
+ version: string;
3
+ };
4
+ export default ownPkg;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _a;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ // we can't import the package.json directly, because the bundling process will inline it
8
+ // but the version is only set during deployement, when its already bundled
9
+ // instead we need to use require.main.path to get the path of the main module, which is actually the file in the bin
10
+ // this will point to the root package.json
11
+ var ownPkg = {
12
+ version: "0.0.0"
13
+ };
14
+ try {
15
+ var path = ((_a = require.main) === null || _a === void 0 ? void 0 : _a.path) + "/../package.json";
16
+ ownPkg = require(path);
17
+ } catch (e) {
18
+ // ignore, currently in the gitlab-includes, this doesn't work
19
+ }
20
+ exports.default = ownPkg;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var getPipelineStages_1 = require("../getPipelineStages");
7
+ describe("getPipelineStages()", function () {
8
+ var cluster = {
9
+ type: "gcloud",
10
+ name: "mega-cluster",
11
+ projectId: "super-google-project",
12
+ region: "ch-blabla"
13
+ };
14
+ var SIMPLE_CONFIG1 = {
15
+ appName: "my-app",
16
+ customerName: "pan",
17
+ components: {
18
+ app1: {
19
+ dir: "dir1",
20
+ build: {
21
+ type: "node"
22
+ },
23
+ deploy: {
24
+ type: "kubernetes",
25
+ cluster: cluster
26
+ }
27
+ },
28
+ app2: {
29
+ dir: "dir2",
30
+ build: {
31
+ type: "node"
32
+ },
33
+ deploy: {
34
+ type: "kubernetes",
35
+ cluster: cluster
36
+ },
37
+ env: {
38
+ dev2: {
39
+ type: "dev"
40
+ },
41
+ review2: {
42
+ type: "review"
43
+ },
44
+ stage2: {
45
+ type: "stage"
46
+ },
47
+ prod2: {
48
+ type: "prod"
49
+ }
50
+ }
51
+ },
52
+ app3: {
53
+ dir: "dir2",
54
+ build: {
55
+ type: "node"
56
+ },
57
+ deploy: {
58
+ type: "kubernetes",
59
+ cluster: cluster
60
+ },
61
+ env: {
62
+ dev: false,
63
+ review: false,
64
+ stage: false,
65
+ prod: false
66
+ }
67
+ }
68
+ }
69
+ };
70
+ it("should return all envs for SIMPLE_CONFIG1", function () {
71
+ expect((0, getPipelineStages_1.getPipelineStages)(SIMPLE_CONFIG1)).toMatchSnapshot();
72
+ });
73
+ });
@@ -0,0 +1,18 @@
1
+ import type { CreateAllComponentsContextProps } from "../context/createAllComponentsContext";
2
+ import type { ComponentContext, WorkspaceContext } from "../types";
3
+ import type { CatladderJob } from "../types/jobs";
4
+ export type AllCatladderJobs = {
5
+ workspaces: Array<{
6
+ context: WorkspaceContext;
7
+ jobs: Array<CatladderJob>;
8
+ }>;
9
+ components: Array<{
10
+ context: ComponentContext;
11
+ jobs: Array<CatladderJob>;
12
+ }>;
13
+ };
14
+ export declare const createAllJobs: ({
15
+ config,
16
+ trigger,
17
+ pipelineType
18
+ }: CreateAllComponentsContextProps) => Promise<AllCatladderJobs>;