@catladder/pipeline 0.0.0-refactor-docker-c24f8608 → 0.0.0-refactor-cache-b38c122b

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 (393) hide show
  1. package/README.md +15 -1
  2. package/dist/build/artifacts/createBuildJobArtifact.d.ts +3 -0
  3. package/dist/build/artifacts/createBuildJobArtifact.js +97 -0
  4. package/dist/build/base/constants.js +1 -1
  5. package/dist/build/base/createAppBuildJob.d.ts +4 -3
  6. package/dist/build/base/createAppBuildJob.js +14 -16
  7. package/dist/build/base/createBuildJobDefinition.d.ts +6 -0
  8. package/dist/build/base/createBuildJobDefinition.js +58 -0
  9. package/dist/build/base/index.d.ts +7 -4
  10. package/dist/build/base/index.js +14 -5
  11. package/dist/build/base/writeBuildInfo.js +1 -1
  12. package/dist/build/base/writeDotEnv.d.ts +2 -1
  13. package/dist/build/base/writeDotEnv.js +17 -3
  14. package/dist/build/cache/createJobCache.d.ts +7 -0
  15. package/dist/build/cache/createJobCache.js +109 -0
  16. package/dist/build/cache/getAllCacheConfigsFromConfig.d.ts +3 -0
  17. package/dist/build/cache/getAllCacheConfigsFromConfig.js +62 -0
  18. package/dist/build/cache/transformLegacyJobCache.d.ts +3 -0
  19. package/dist/build/cache/transformLegacyJobCache.js +29 -0
  20. package/dist/build/custom/__tests__/testJob.test.js +12 -15
  21. package/dist/build/custom/buildJob.js +4 -54
  22. package/dist/build/custom/testJob.d.ts +1 -1
  23. package/dist/build/custom/testJob.js +16 -15
  24. package/dist/build/docker.d.ts +9 -13
  25. package/dist/build/docker.js +25 -18
  26. package/dist/build/index.d.ts +13 -6
  27. package/dist/build/index.js +29 -7
  28. package/dist/build/node/buildJob.d.ts +6 -2
  29. package/dist/build/node/buildJob.js +37 -42
  30. package/dist/build/node/cache.d.ts +7 -6
  31. package/dist/build/node/cache.js +30 -18
  32. package/dist/build/node/constants.js +2 -2
  33. package/dist/build/node/index.d.ts +2 -2
  34. package/dist/build/node/meteor.js +7 -11
  35. package/dist/build/node/testJob.d.ts +3 -2
  36. package/dist/build/node/testJob.js +23 -17
  37. package/dist/build/node/yarn.d.ts +4 -4
  38. package/dist/build/node/yarn.js +5 -9
  39. package/dist/build/rails/build.d.ts +1 -1
  40. package/dist/build/rails/build.js +10 -5
  41. package/dist/build/rails/test.d.ts +1 -1
  42. package/dist/build/rails/test.js +9 -4
  43. package/dist/build/sbom.js +6 -5
  44. package/dist/build/types.d.ts +107 -6
  45. package/dist/build/types.js +7 -1
  46. package/dist/bundles/catladder-gitlab/index.js +3192 -1681
  47. package/dist/catladder-gitlab.js +131 -6
  48. package/dist/config/__tests__/getAllEnvs.test.d.ts +1 -0
  49. package/dist/config/__tests__/getAllEnvs.test.js +79 -0
  50. package/dist/config/__tests__/getAllEnvsInAllComponents.test.d.ts +1 -0
  51. package/dist/config/__tests__/getAllEnvsInAllComponents.test.js +73 -0
  52. package/dist/config/readConfig.d.ts +2 -2
  53. package/dist/config/readConfig.js +188 -37
  54. package/dist/constants.js +1 -1
  55. package/dist/context/createAllComponentsContext.d.ts +12 -0
  56. package/dist/context/createAllComponentsContext.js +159 -0
  57. package/dist/context/createComponentContext.d.ts +11 -0
  58. package/dist/context/createComponentContext.js +256 -0
  59. package/dist/context/createWorkspaceContext.d.ts +16 -0
  60. package/dist/context/createWorkspaceContext.js +173 -0
  61. package/dist/context/getBuildInfoVariables.d.ts +3 -4
  62. package/dist/context/getBuildInfoVariables.js +43 -17
  63. package/dist/context/getEnvironmentContext.d.ts +1 -1
  64. package/dist/context/getEnvironmentVariables.d.ts +2 -5
  65. package/dist/context/getEnvironmentVariables.js +5 -4
  66. package/dist/context/getLabels.js +5 -5
  67. package/dist/context/index.d.ts +2 -17
  68. package/dist/context/index.js +2 -164
  69. package/dist/deploy/base/deploy.d.ts +2 -2
  70. package/dist/deploy/base/deploy.js +29 -14
  71. package/dist/deploy/base/index.d.ts +1 -3
  72. package/dist/deploy/base/rollback.d.ts +1 -1
  73. package/dist/deploy/base/stop.d.ts +1 -1
  74. package/dist/deploy/base/variables.js +1 -1
  75. package/dist/deploy/cloudRun/artifactsRegistry.d.ts +1 -5
  76. package/dist/deploy/cloudRun/artifactsRegistry.js +10 -11
  77. package/dist/deploy/cloudRun/cloudRunRevisions.js +4 -5
  78. package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +76 -50
  79. package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +5 -1
  80. package/dist/deploy/cloudRun/createJobs/common.js +3 -2
  81. package/dist/deploy/cloudRun/createJobs/index.js +2 -4
  82. package/dist/deploy/cloudRun/index.d.ts +2 -2
  83. package/dist/deploy/custom/deployJob.js +8 -9
  84. package/dist/deploy/custom/index.d.ts +2 -2
  85. package/dist/deploy/dockerTag/deployJob.js +3 -5
  86. package/dist/deploy/dockerTag/index.d.ts +2 -2
  87. package/dist/deploy/index.d.ts +7 -7
  88. package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +3 -1
  89. package/dist/deploy/kubernetes/cloudSql/index.js +12 -10
  90. package/dist/deploy/kubernetes/deployJob.js +6 -9
  91. package/dist/deploy/kubernetes/index.d.ts +2 -2
  92. package/dist/deploy/kubernetes/kubeEnv.js +2 -1
  93. package/dist/deploy/kubernetes/kubeValues.js +10 -10
  94. package/dist/deploy/kubernetes/mongodb.js +11 -11
  95. package/dist/deploy/sbom.d.ts +1 -1
  96. package/dist/deploy/sbom.js +4 -3
  97. package/dist/deploy/types/custom.d.ts +2 -6
  98. package/dist/deploy/types/googleCloudRun.d.ts +26 -0
  99. package/dist/deploy/types/index.d.ts +3 -3
  100. package/dist/deploy/types/index.js +1 -1
  101. package/dist/deploy/utils.js +2 -1
  102. package/dist/packageInfos.d.ts +3 -1
  103. package/dist/packageInfos.js +13 -7
  104. package/dist/pipeline/__tests__/getPipelineStages.test.d.ts +1 -0
  105. package/dist/pipeline/__tests__/getPipelineStages.test.js +73 -0
  106. package/dist/pipeline/createAllJobs.d.ts +12 -10
  107. package/dist/pipeline/createAllJobs.js +85 -24
  108. package/dist/pipeline/createChildPipeline.js +2 -1
  109. package/dist/pipeline/createJobsForComponent.d.ts +3 -3
  110. package/dist/pipeline/createJobsForComponent.js +6 -147
  111. package/dist/pipeline/createJobsForWorkspace.d.ts +3 -0
  112. package/dist/pipeline/createJobsForWorkspace.js +12 -0
  113. package/dist/pipeline/createMainPipeline.js +28 -7
  114. package/dist/pipeline/generatePipelineFiles.d.ts +38 -0
  115. package/dist/pipeline/generatePipelineFiles.js +79 -27
  116. package/dist/pipeline/getPipelineStages.d.ts +3 -4
  117. package/dist/pipeline/getPipelineStages.js +6 -5
  118. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +4 -18
  119. package/dist/pipeline/gitlab/createGitlabJobs.js +206 -93
  120. package/dist/pipeline/gitlab/createGitlabPipeline.js +3 -0
  121. package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +2 -0
  122. package/dist/pipeline/gitlab/gitlabReleaseJobs.js +3 -0
  123. package/dist/pipeline/gitlab/sortGitLabJobDefProps.d.ts +7 -0
  124. package/dist/pipeline/gitlab/sortGitLabJobDefProps.js +27 -0
  125. package/dist/pipeline/packageManager.d.ts +3 -2
  126. package/dist/pipeline/packageManager.js +44 -16
  127. package/dist/pipeline/yarn/yarnUtils.d.ts +2 -2
  128. package/dist/pipeline/yarn/yarnUtils.js +12 -11
  129. package/dist/tsconfig.tsbuildinfo +1 -1
  130. package/dist/types/config.d.ts +10 -5
  131. package/dist/types/context.d.ts +91 -19
  132. package/dist/types/context.js +10 -1
  133. package/dist/types/environmentContext.d.ts +5 -6
  134. package/dist/types/gitlab-types.d.ts +2 -2
  135. package/dist/types/index.d.ts +1 -0
  136. package/dist/types/index.js +1 -0
  137. package/dist/types/jobDefinition.d.ts +11 -0
  138. package/dist/types/jobDefinition.js +5 -0
  139. package/dist/types/jobs.d.ts +8 -2
  140. package/dist/utils/index.d.ts +2 -1
  141. package/dist/utils/index.js +7 -2
  142. package/dist/utils/jsonParse.d.ts +1 -0
  143. package/dist/utils/jsonParse.js +14 -0
  144. package/dist/utils/removeUndefined.d.ts +1 -0
  145. package/dist/utils/removeUndefined.js +36 -0
  146. package/dist/utils/writeFiles.d.ts +5 -1
  147. package/dist/utils/writeFiles.js +10 -2
  148. package/examples/.test-gen-ignore +1 -0
  149. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +1342 -0
  150. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +1342 -0
  151. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +1326 -0
  152. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +1342 -0
  153. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +1446 -0
  154. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +1342 -0
  155. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +1359 -0
  156. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +1342 -0
  157. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +1342 -0
  158. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +1342 -0
  159. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +1410 -0
  160. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +1226 -0
  161. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +1342 -0
  162. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +2826 -0
  163. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +1737 -0
  164. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +1350 -0
  165. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +1193 -0
  166. package/examples/__snapshots__/custom-build-job.test.ts.snap +1082 -0
  167. package/examples/__snapshots__/custom-deploy.test.ts.snap +1100 -0
  168. package/examples/__snapshots__/custom-envs.test.ts.snap +710 -0
  169. package/examples/__snapshots__/custom-sbom-java.test.ts.snap +1090 -0
  170. package/examples/__snapshots__/git-submodule.test.ts.snap +1343 -0
  171. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +1779 -0
  172. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.test.ts.snap +1791 -0
  173. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +1799 -0
  174. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +3353 -0
  175. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +1903 -0
  176. package/examples/__snapshots__/local-dot-env.test.ts.snap +1342 -0
  177. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +1840 -0
  178. package/examples/__snapshots__/multiline-var.test.ts.snap +3377 -0
  179. package/examples/__snapshots__/native-app.test.ts.snap +2158 -0
  180. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +1342 -0
  181. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +1350 -0
  182. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +1487 -0
  183. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +1471 -0
  184. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +1268 -0
  185. package/examples/__snapshots__/workspace-api-www-custom-cache.test.ts.snap +2374 -0
  186. package/examples/__snapshots__/workspace-api-www.test.ts.snap +2354 -0
  187. package/examples/__utils__/helpers.ts +14 -1
  188. package/examples/cloud-run-http2.test.ts +11 -0
  189. package/examples/cloud-run-http2.ts +29 -0
  190. package/examples/cloud-run-memory-limit.test.ts +11 -0
  191. package/examples/cloud-run-memory-limit.ts +6 -4
  192. package/examples/cloud-run-meteor-with-worker.test.ts +11 -0
  193. package/examples/cloud-run-meteor-with-worker.ts +6 -4
  194. package/examples/cloud-run-no-cpu-throttling.test.ts +11 -0
  195. package/examples/cloud-run-no-cpu-throttling.ts +6 -4
  196. package/examples/cloud-run-no-service.test.ts +11 -0
  197. package/examples/cloud-run-no-service.ts +5 -4
  198. package/examples/cloud-run-non-public.test.ts +11 -0
  199. package/examples/cloud-run-non-public.ts +5 -4
  200. package/examples/cloud-run-post-stop-job.test.ts +11 -0
  201. package/examples/cloud-run-post-stop-job.ts +6 -4
  202. package/examples/cloud-run-service-custom-vpc.test.ts +11 -0
  203. package/examples/cloud-run-service-custom-vpc.ts +30 -0
  204. package/examples/cloud-run-service-gen2.test.ts +11 -0
  205. package/examples/cloud-run-service-gen2.ts +6 -4
  206. package/examples/cloud-run-service-increase-timout.test.ts +11 -0
  207. package/examples/cloud-run-service-increase-timout.ts +29 -0
  208. package/examples/cloud-run-service-with-volumes.test.ts +11 -0
  209. package/examples/cloud-run-service-with-volumes.ts +6 -4
  210. package/examples/cloud-run-storybook.test.ts +11 -0
  211. package/examples/cloud-run-storybook.ts +14 -5
  212. package/examples/cloud-run-with-ngnix.test.ts +11 -0
  213. package/examples/cloud-run-with-ngnix.ts +10 -5
  214. package/examples/cloud-run-with-sql-reuse-db.test.ts +11 -0
  215. package/examples/cloud-run-with-sql-reuse-db.ts +5 -4
  216. package/examples/cloud-run-with-sql.test.ts +11 -0
  217. package/examples/cloud-run-with-sql.ts +7 -20
  218. package/examples/cloud-run-with-worker.test.ts +11 -0
  219. package/examples/cloud-run-with-worker.ts +6 -4
  220. package/examples/custom-build-job-with-tests.test.ts +11 -0
  221. package/examples/custom-build-job-with-tests.ts +5 -4
  222. package/examples/custom-build-job.test.ts +11 -0
  223. package/examples/custom-build-job.ts +5 -4
  224. package/examples/custom-deploy.test.ts +11 -0
  225. package/examples/custom-deploy.ts +5 -4
  226. package/examples/custom-envs.test.ts +11 -0
  227. package/examples/custom-envs.ts +5 -4
  228. package/examples/custom-sbom-java.test.ts +11 -0
  229. package/examples/custom-sbom-java.ts +10 -6
  230. package/examples/git-submodule.test.ts +11 -0
  231. package/examples/git-submodule.ts +30 -0
  232. package/examples/kubernetes-application-customization.test.ts +11 -0
  233. package/examples/kubernetes-application-customization.ts +6 -4
  234. package/examples/kubernetes-with-cloud-sql-legacy.test.ts +11 -0
  235. package/examples/kubernetes-with-cloud-sql-legacy.ts +6 -4
  236. package/examples/kubernetes-with-cloud-sql.test.ts +11 -0
  237. package/examples/kubernetes-with-cloud-sql.ts +6 -4
  238. package/examples/kubernetes-with-jobs.test.ts +11 -0
  239. package/examples/kubernetes-with-jobs.ts +6 -4
  240. package/examples/kubernetes-with-mongodb.test.ts +11 -0
  241. package/examples/kubernetes-with-mongodb.ts +6 -4
  242. package/examples/local-dot-env.test.ts +11 -0
  243. package/examples/local-dot-env.ts +6 -4
  244. package/examples/meteor-kubernetes.test.ts +11 -0
  245. package/examples/meteor-kubernetes.ts +3 -4
  246. package/examples/multiline-var.test.ts +11 -0
  247. package/examples/multiline-var.ts +5 -4
  248. package/examples/native-app.test.ts +11 -0
  249. package/examples/native-app.ts +12 -10
  250. package/examples/node-build-with-custom-image.test.ts +11 -0
  251. package/examples/node-build-with-custom-image.ts +5 -4
  252. package/examples/node-build-with-docker-additions.test.ts +11 -0
  253. package/examples/node-build-with-docker-additions.ts +5 -4
  254. package/examples/rails-k8s-with-worker-dockerfile.test.ts +9 -0
  255. package/examples/rails-k8s-with-worker.test.ts +11 -0
  256. package/examples/rails-k8s-with-worker.ts +4 -10
  257. package/examples/wait-for-other-deploy.test.ts +11 -0
  258. package/examples/wait-for-other-deploy.ts +5 -4
  259. package/examples/workspace-api-www-custom-cache.test.ts +11 -0
  260. package/examples/workspace-api-www-custom-cache.ts +51 -0
  261. package/examples/workspace-api-www.test.ts +11 -0
  262. package/examples/workspace-api-www.ts +45 -0
  263. package/package.json +10 -6
  264. package/scripts/bundle +1 -1
  265. package/scripts/generate-examples-test.ts +91 -0
  266. package/scripts/tsconfig.json +7 -0
  267. package/src/build/artifacts/createBuildJobArtifact.ts +61 -0
  268. package/src/build/base/constants.ts +1 -1
  269. package/src/build/base/createAppBuildJob.ts +37 -26
  270. package/src/build/base/createBuildJobDefinition.ts +37 -0
  271. package/src/build/base/index.ts +35 -6
  272. package/src/build/base/writeBuildInfo.ts +1 -1
  273. package/src/build/base/writeDotEnv.ts +17 -3
  274. package/src/build/cache/createJobCache.ts +82 -0
  275. package/src/build/cache/getAllCacheConfigsFromConfig.ts +26 -0
  276. package/src/build/cache/transformLegacyJobCache.ts +14 -0
  277. package/src/build/custom/__tests__/testJob.test.ts +9 -12
  278. package/src/build/custom/buildJob.ts +5 -28
  279. package/src/build/custom/testJob.ts +14 -13
  280. package/src/build/docker.ts +40 -28
  281. package/src/build/index.ts +39 -7
  282. package/src/build/node/buildJob.ts +62 -68
  283. package/src/build/node/cache.ts +55 -32
  284. package/src/build/node/constants.ts +2 -2
  285. package/src/build/node/index.ts +4 -2
  286. package/src/build/node/meteor.ts +12 -25
  287. package/src/build/node/testJob.ts +40 -24
  288. package/src/build/node/yarn.ts +12 -10
  289. package/src/build/rails/build.ts +17 -7
  290. package/src/build/rails/test.ts +17 -9
  291. package/src/build/sbom.ts +12 -7
  292. package/src/build/types.ts +140 -6
  293. package/src/catladder-gitlab.ts +11 -6
  294. package/src/config/__tests__/__snapshots__/getAllEnvs.test.ts.snap +31 -0
  295. package/src/config/__tests__/__snapshots__/getAllEnvsInAllComponents.test.ts.snap +15 -0
  296. package/src/config/__tests__/getAllEnvs.test.ts +71 -0
  297. package/src/config/__tests__/getAllEnvsInAllComponents.test.ts +63 -0
  298. package/src/config/readConfig.ts +12 -17
  299. package/src/context/createAllComponentsContext.ts +31 -0
  300. package/src/context/createComponentContext.ts +135 -0
  301. package/src/context/createWorkspaceContext.ts +56 -0
  302. package/src/context/getBuildInfoVariables.ts +26 -30
  303. package/src/context/getEnvironmentContext.ts +2 -2
  304. package/src/context/getEnvironmentVariables.ts +12 -7
  305. package/src/context/getLabels.ts +3 -3
  306. package/src/context/index.ts +1 -76
  307. package/src/deploy/base/deploy.ts +46 -32
  308. package/src/deploy/base/index.ts +8 -3
  309. package/src/deploy/base/rollback.ts +1 -4
  310. package/src/deploy/base/stop.ts +1 -4
  311. package/src/deploy/base/variables.ts +1 -1
  312. package/src/deploy/cloudRun/artifactsRegistry.ts +8 -14
  313. package/src/deploy/cloudRun/cloudRunRevisions.ts +3 -5
  314. package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +109 -74
  315. package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +5 -1
  316. package/src/deploy/cloudRun/createJobs/common.ts +2 -2
  317. package/src/deploy/cloudRun/createJobs/index.ts +1 -4
  318. package/src/deploy/cloudRun/index.ts +68 -67
  319. package/src/deploy/custom/deployJob.ts +9 -8
  320. package/src/deploy/custom/index.ts +2 -2
  321. package/src/deploy/dockerTag/deployJob.ts +2 -5
  322. package/src/deploy/dockerTag/index.ts +8 -7
  323. package/src/deploy/index.ts +11 -9
  324. package/src/deploy/kubernetes/additionalSecretKeys.ts +3 -1
  325. package/src/deploy/kubernetes/cloudSql/index.ts +8 -5
  326. package/src/deploy/kubernetes/deployJob.ts +3 -6
  327. package/src/deploy/kubernetes/index.ts +42 -41
  328. package/src/deploy/kubernetes/kubeEnv.ts +1 -1
  329. package/src/deploy/kubernetes/kubeValues.ts +3 -3
  330. package/src/deploy/kubernetes/mongodb.ts +6 -6
  331. package/src/deploy/sbom.ts +11 -7
  332. package/src/deploy/types/custom.ts +3 -7
  333. package/src/deploy/types/googleCloudRun.ts +29 -0
  334. package/src/deploy/types/index.ts +2 -2
  335. package/src/deploy/utils.ts +1 -1
  336. package/src/packageInfos.ts +7 -3
  337. package/src/pipeline/__tests__/__snapshots__/getPipelineStages.test.ts.snap +69 -0
  338. package/src/pipeline/__tests__/getPipelineStages.test.ts +63 -0
  339. package/src/pipeline/createAllJobs.ts +61 -41
  340. package/src/pipeline/createChildPipeline.ts +2 -0
  341. package/src/pipeline/createJobsForComponent.ts +7 -31
  342. package/src/pipeline/createJobsForWorkspace.ts +12 -0
  343. package/src/pipeline/createMainPipeline.ts +43 -23
  344. package/src/pipeline/generatePipelineFiles.ts +63 -25
  345. package/src/pipeline/getPipelineStages.ts +6 -5
  346. package/src/pipeline/gitlab/createGitlabJobs.ts +276 -116
  347. package/src/pipeline/gitlab/createGitlabPipeline.ts +5 -1
  348. package/src/pipeline/gitlab/gitlabReleaseJobs.ts +5 -0
  349. package/src/pipeline/gitlab/sortGitLabJobDefProps.ts +59 -0
  350. package/src/pipeline/packageManager.ts +27 -11
  351. package/src/pipeline/yarn/yarnUtils.ts +9 -6
  352. package/src/types/config.ts +12 -2
  353. package/src/types/context.ts +124 -20
  354. package/src/types/environmentContext.ts +6 -7
  355. package/src/types/gitlab-types.ts +2 -2
  356. package/src/types/index.ts +1 -0
  357. package/src/types/jobDefinition.ts +34 -0
  358. package/src/types/jobs.ts +8 -9
  359. package/src/utils/index.ts +4 -1
  360. package/src/utils/jsonParse.ts +7 -0
  361. package/src/utils/removeUndefined.ts +4 -0
  362. package/src/utils/writeFiles.ts +14 -1
  363. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +0 -1971
  364. package/examples/__snapshots__/cloud-run-meteor-with-worker.ts.snap +0 -1939
  365. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +0 -1971
  366. package/examples/__snapshots__/cloud-run-no-service.ts.snap +0 -2023
  367. package/examples/__snapshots__/cloud-run-non-public.ts.snap +0 -1971
  368. package/examples/__snapshots__/cloud-run-post-stop-job.ts.snap +0 -1982
  369. package/examples/__snapshots__/cloud-run-service-gen2.ts.snap +0 -1971
  370. package/examples/__snapshots__/cloud-run-service-with-volumes.ts.snap +0 -2015
  371. package/examples/__snapshots__/cloud-run-storybook.ts.snap +0 -1687
  372. package/examples/__snapshots__/cloud-run-with-ngnix.ts.snap +0 -1971
  373. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +0 -3947
  374. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +0 -3946
  375. package/examples/__snapshots__/cloud-run-with-worker.ts.snap +0 -1979
  376. package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +0 -1795
  377. package/examples/__snapshots__/custom-build-job.ts.snap +0 -1495
  378. package/examples/__snapshots__/custom-deploy.ts.snap +0 -1733
  379. package/examples/__snapshots__/custom-envs.ts.snap +0 -1181
  380. package/examples/__snapshots__/custom-sbom-java.ts.snap +0 -1503
  381. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -2462
  382. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -2474
  383. package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -2482
  384. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -4570
  385. package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -2586
  386. package/examples/__snapshots__/local-dot-env.ts.snap +0 -1971
  387. package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -2507
  388. package/examples/__snapshots__/multiline-var.ts.snap +0 -4500
  389. package/examples/__snapshots__/native-app.ts.snap +0 -3171
  390. package/examples/__snapshots__/node-build-with-custom-image.ts.snap +0 -1971
  391. package/examples/__snapshots__/node-build-with-docker-additions.ts.snap +0 -1979
  392. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -4029
  393. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +0 -2117
@@ -1,70 +1,20 @@
1
1
  "use strict";
2
2
 
3
- var __read = this && this.__read || function (o, n) {
4
- var m = typeof Symbol === "function" && o[Symbol.iterator];
5
- if (!m) return o;
6
- var i = m.call(o),
7
- r,
8
- ar = [],
9
- e;
10
- try {
11
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
12
- } catch (error) {
13
- e = {
14
- error: error
15
- };
16
- } finally {
17
- try {
18
- if (r && !r.done && (m = i["return"])) m.call(i);
19
- } finally {
20
- if (e) throw e.error;
21
- }
22
- }
23
- return ar;
24
- };
25
- var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
26
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
- if (ar || !(i in from)) {
28
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
- ar[i] = from[i];
30
- }
31
- }
32
- return to.concat(ar || Array.prototype.slice.call(from));
33
- };
34
3
  Object.defineProperty(exports, "__esModule", {
35
4
  value: true
36
5
  });
37
6
  exports.createCustomBuildJobs = void 0;
38
- var path_1 = require("path");
39
- var utils_1 = require("../../utils");
40
7
  var docker_1 = require("../docker");
41
8
  var types_1 = require("../types");
42
9
  var base_1 = require("../base");
43
- var RUNNER_BUILD_VARIABLES = {
44
- KUBERNETES_CPU_REQUEST: "0.5",
45
- KUBERNETES_MEMORY_REQUEST: "2Gi",
46
- KUBERNETES_MEMORY_LIMIT: "4Gi"
47
- };
10
+ var createBuildJobDefinition_1 = require("../base/createBuildJobDefinition");
48
11
  var createCustomBuildJobs = function (context) {
49
- var _a, _b, _c;
50
- var buildConfig = context.componentConfig.build;
12
+ var buildConfig = context.build.config;
51
13
  if (!(0, types_1.isOfBuildType)(buildConfig, "custom")) {
52
14
  throw new Error("deploy config is not custom");
53
15
  }
54
- return (0, base_1.createBuildJobs)(context, {
55
- appBuild: buildConfig.buildCommand !== null ? {
56
- image: buildConfig.jobImage,
57
- runnerVariables: RUNNER_BUILD_VARIABLES,
58
- cache: buildConfig.jobCache,
59
- services: buildConfig.jobServices,
60
- script: __spreadArray([], __read((_a = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _a !== void 0 ? _a : []), false),
61
- artifacts: {
62
- paths: __spreadArray([(0, path_1.join)(context.componentConfig.dir, "__build_info.json"), (0, path_1.join)(context.componentConfig.dir, "dist")], __read((_c = (_b = buildConfig.artifactsPaths) === null || _b === void 0 ? void 0 : _b.map(function (path) {
63
- return (0, path_1.join)(context.componentConfig.dir, path);
64
- })) !== null && _c !== void 0 ? _c : []), false),
65
- expire_in: "1 day"
66
- }
67
- } : undefined,
16
+ return (0, base_1.createComponentBuildJobs)(context, {
17
+ appBuild: buildConfig.buildCommand !== null ? (0, createBuildJobDefinition_1.createBuildJobDefinition)(context, buildConfig) : undefined,
68
18
  dockerBuild: {
69
19
  script: (0, docker_1.getDockerBuildScriptWithBuiltInDockerFile)(context),
70
20
  variables: {}
@@ -1,6 +1,6 @@
1
+ import type { Artifacts } from "../../types";
1
2
  import type { ComponentContext } from "../../types/context";
2
3
  import type { CatladderJob } from "../../types/jobs";
3
- import type { Artifacts } from "../../types";
4
4
  export declare const createCustomTestJobs: (context: ComponentContext) => CatladderJob[];
5
5
  export type OptionalArtifacts = {
6
6
  artifacts: Artifacts;
@@ -46,31 +46,32 @@ Object.defineProperty(exports, "__esModule", {
46
46
  });
47
47
  exports.createCustomTestJobs = void 0;
48
48
  var utils_1 = require("../../utils");
49
- var types_1 = require("../types");
50
49
  var createArtifactsConfig_1 = require("../base/createArtifactsConfig");
50
+ var createJobCache_1 = require("../cache/createJobCache");
51
+ var types_1 = require("../types");
51
52
  var RUNNER_CUSTOM_TEST_VARIABLES = {
52
- KUBERNETES_CPU_REQUEST: "0.5",
53
- KUBERNETES_MEMORY_REQUEST: "2Gi",
53
+ KUBERNETES_CPU_REQUEST: "0.45",
54
+ KUBERNETES_MEMORY_REQUEST: "1Gi",
54
55
  KUBERNETES_MEMORY_LIMIT: "4Gi"
55
56
  };
56
57
  var createCustomTestJobs = function (context) {
57
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
58
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
58
59
  // don't run tests after release
59
60
  // TODO: this will be replaced by using rules
60
61
  if (context.trigger === "taggedRelease") {
61
62
  return [];
62
63
  }
63
- var buildConfig = context.componentConfig.build;
64
+ var buildConfig = context.build.config;
64
65
  if (!(0, types_1.isOfBuildType)(buildConfig, "custom")) {
65
66
  throw new Error("deploy config is not custom");
66
67
  }
67
68
  var base = {
68
69
  variables: __assign(__assign({
69
- APP_PATH: context.componentConfig.dir
70
+ APP_PATH: context.build.dir
70
71
  }, context.environment.jobOnlyVars.build.envVars), (_a = buildConfig.extraVars) !== null && _a !== void 0 ? _a : {}),
71
72
  runnerVariables: RUNNER_CUSTOM_TEST_VARIABLES,
72
73
  services: buildConfig.jobServices,
73
- cache: buildConfig.jobCache,
74
+ cache: (0, createJobCache_1.createJobCacheFromConfig)(context, buildConfig),
74
75
  stage: "test",
75
76
  needs: [],
76
77
  envMode: "none"
@@ -80,21 +81,21 @@ var createCustomTestJobs = function (context) {
80
81
  }, base), {
81
82
  image: (_c = (_b = buildConfig.audit) === null || _b === void 0 ? void 0 : _b.jobImage) !== null && _c !== void 0 ? _c : buildConfig.jobImage,
82
83
  cache: undefined,
83
- script: __spreadArray([], __read((_e = (0, utils_1.ensureArray)((_d = buildConfig.audit) === null || _d === void 0 ? void 0 : _d.command)) !== null && _e !== void 0 ? _e : []), false),
84
+ script: __spreadArray([], __read((0, utils_1.ensureArray)((_d = buildConfig.audit) === null || _d === void 0 ? void 0 : _d.command)), false),
84
85
  allow_failure: true
85
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_f = buildConfig.audit) === null || _f === void 0 ? void 0 : _f.artifactsReports, (_g = buildConfig.audit) === null || _g === void 0 ? void 0 : _g.artifacts)) : null;
86
+ }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.artifactsReports, (_f = buildConfig.audit) === null || _f === void 0 ? void 0 : _f.artifacts)) : null;
86
87
  var lintJob = buildConfig.lint ? __assign(__assign(__assign({
87
88
  name: "👮 lint"
88
89
  }, base), {
89
- image: (_j = (_h = buildConfig.lint) === null || _h === void 0 ? void 0 : _h.jobImage) !== null && _j !== void 0 ? _j : buildConfig.jobImage,
90
- script: __spreadArray([], __read((_l = (0, utils_1.ensureArray)((_k = buildConfig.lint) === null || _k === void 0 ? void 0 : _k.command)) !== null && _l !== void 0 ? _l : []), false)
91
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_m = buildConfig.lint) === null || _m === void 0 ? void 0 : _m.artifactsReports, (_o = buildConfig.lint) === null || _o === void 0 ? void 0 : _o.artifacts)) : null;
90
+ image: (_h = (_g = buildConfig.lint) === null || _g === void 0 ? void 0 : _g.jobImage) !== null && _h !== void 0 ? _h : buildConfig.jobImage,
91
+ script: __spreadArray([], __read((0, utils_1.ensureArray)((_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.command)), false)
92
+ }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_k = buildConfig.lint) === null || _k === void 0 ? void 0 : _k.artifactsReports, (_l = buildConfig.lint) === null || _l === void 0 ? void 0 : _l.artifacts)) : null;
92
93
  var testJob = buildConfig.test ? __assign(__assign(__assign({
93
94
  name: "🧪 test"
94
95
  }, base), {
95
- image: (_q = (_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.jobImage) !== null && _q !== void 0 ? _q : buildConfig.jobImage,
96
- script: __spreadArray([], __read((_s = (0, utils_1.ensureArray)((_r = buildConfig.test) === null || _r === void 0 ? void 0 : _r.command)) !== null && _s !== void 0 ? _s : []), false)
97
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_t = buildConfig.test) === null || _t === void 0 ? void 0 : _t.artifactsReports, (_u = buildConfig.test) === null || _u === void 0 ? void 0 : _u.artifacts)) : null;
96
+ image: (_o = (_m = buildConfig.test) === null || _m === void 0 ? void 0 : _m.jobImage) !== null && _o !== void 0 ? _o : buildConfig.jobImage,
97
+ script: __spreadArray([], __read((0, utils_1.ensureArray)((_p = buildConfig.test) === null || _p === void 0 ? void 0 : _p.command)), false)
98
+ }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, (_q = buildConfig.test) === null || _q === void 0 ? void 0 : _q.artifactsReports, (_r = buildConfig.test) === null || _r === void 0 ? void 0 : _r.artifacts)) : null;
98
99
  return [auditJob, lintJob, testJob].filter(utils_1.notNil);
99
100
  };
100
101
  exports.createCustomTestJobs = createCustomTestJobs;
@@ -1,5 +1,5 @@
1
1
  import type { BuildConfigDocker } from ".";
2
- import type { ComponentContext } from "../types";
2
+ import type { ComponentContext, DockerBuildJobDefinition } from "../types";
3
3
  import type { CatladderJob } from "../types/jobs";
4
4
  export declare const getDockerImageVariables: (context: ComponentContext) => {
5
5
  DOCKER_IMAGE_TAG: string;
@@ -16,18 +16,14 @@ export declare const getDockerImageVariables: (context: ComponentContext) => {
16
16
  /**
17
17
  * Weather the context requires a docker build
18
18
  */
19
- export declare const requiresDockerBuild: ({
20
- componentConfig: {
21
- deploy
22
- }
23
- }: ComponentContext) => boolean;
19
+ export declare const requiresDockerBuild: (context: ComponentContext) => boolean;
24
20
  export declare const getDockerBuildVariables: (context: ComponentContext) => {
25
21
  DOCKER_IMAGE_TAG: string;
26
22
  DOCKER_REGISTRY: string;
27
23
  DOCKER_IMAGE: import("../bash/BashExpression").StringOrBashExpression;
28
24
  DOCKER_CACHE_IMAGE: string;
29
25
  APP_DIR: string;
30
- DOCKER_DIR: string;
26
+ DOCKER_BUILD_CONTEXT: string;
31
27
  DOCKERFILE_ADDITIONS?: undefined;
32
28
  DOCKERFILE_ADDITIONS_END?: undefined;
33
29
  } | {
@@ -37,7 +33,7 @@ export declare const getDockerBuildVariables: (context: ComponentContext) => {
37
33
  DOCKER_IMAGE_NAME: string;
38
34
  DOCKER_IMAGE: string;
39
35
  APP_DIR: string;
40
- DOCKER_DIR: string;
36
+ DOCKER_BUILD_CONTEXT: string;
41
37
  DOCKERFILE_ADDITIONS?: undefined;
42
38
  DOCKERFILE_ADDITIONS_END?: undefined;
43
39
  } | {
@@ -46,7 +42,7 @@ export declare const getDockerBuildVariables: (context: ComponentContext) => {
46
42
  DOCKER_IMAGE: import("../bash/BashExpression").StringOrBashExpression;
47
43
  DOCKER_CACHE_IMAGE: string;
48
44
  APP_DIR: string;
49
- DOCKER_DIR: string;
45
+ DOCKER_BUILD_CONTEXT: string;
50
46
  DOCKERFILE_ADDITIONS: string | undefined;
51
47
  DOCKERFILE_ADDITIONS_END: string | undefined;
52
48
  } | {
@@ -56,17 +52,17 @@ export declare const getDockerBuildVariables: (context: ComponentContext) => {
56
52
  DOCKER_IMAGE_NAME: string;
57
53
  DOCKER_IMAGE: string;
58
54
  APP_DIR: string;
59
- DOCKER_DIR: string;
55
+ DOCKER_BUILD_CONTEXT: string;
60
56
  DOCKERFILE_ADDITIONS: string | undefined;
61
57
  DOCKERFILE_ADDITIONS_END: string | undefined;
62
58
  };
63
59
  export declare const DOCKER_BUILD_JOB_NAME = "\uD83D\uDD28 docker";
64
- export declare const getDockerJobBaseProps: (context: ComponentContext) => Pick<CatladderJob, "image" | "services" | "variables" | "runnerVariables">;
65
- export type DockerBuildJobDefinition = Partial<CatladderJob>;
60
+ export declare const getDockerJobBaseProps: () => Pick<CatladderJob, "image" | "services" | "variables" | "runnerVariables">;
66
61
  export declare const createDockerBuildJobBase: (context: ComponentContext, {
67
62
  script,
63
+ cache,
68
64
  ...def
69
- }: Partial<CatladderJob>) => CatladderJob;
65
+ }: DockerBuildJobDefinition) => CatladderJob;
70
66
  export declare const gitlabDockerLogin: (context: ComponentContext) => string[];
71
67
  export declare const getDockerBuildScriptWithBuiltInDockerFile: (context: ComponentContext, defaultType?: BuildConfigDocker["type"]) => (string | undefined)[];
72
68
  export declare const getDockerBuildDefaultScript: (context: ComponentContext, ensureDockerFileScript?: string | null) => (string | undefined)[];
@@ -66,13 +66,16 @@ var artifactsRegistry_1 = require("../deploy/cloudRun/artifactsRegistry");
66
66
  var gcloudServiceAccountLoginCommands_1 = require("../deploy/cloudRun/utils/gcloudServiceAccountLoginCommands");
67
67
  var runner_1 = require("../runner");
68
68
  var gitlab_1 = require("../utils/gitlab");
69
+ var createJobCache_1 = require("./cache/createJobCache");
69
70
  var DOCKER_BUILD_RUNNER_REQUESTS = {
70
- KUBERNETES_CPU_REQUEST: "0.5",
71
+ KUBERNETES_CPU_REQUEST: "0.45",
71
72
  KUBERNETES_MEMORY_REQUEST: "1Gi",
72
73
  KUBERNETES_MEMORY_LIMIT: "2Gi"
73
74
  };
74
75
  var getDockerImageVariables = function (context) {
75
- return __assign(__assign({}, (0, deploy_1.isOfDeployType)(context.componentConfig.deploy, "google-cloudrun") ? {
76
+ var _a;
77
+ var deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
78
+ return __assign(__assign({}, (0, deploy_1.isOfDeployType)(deployConfig, "google-cloudrun") ? {
76
79
  DOCKER_REGISTRY: (0, artifactsRegistry_1.getArtifactsRegistryHost)(context),
77
80
  DOCKER_IMAGE: (0, artifactsRegistry_1.getArtifactsRegistryImageName)(context),
78
81
  DOCKER_CACHE_IMAGE: (0, artifactsRegistry_1.getArtifactsRegistryBuildCacheImage)(context)
@@ -80,9 +83,9 @@ var getDockerImageVariables = function (context) {
80
83
  // gitlab registry:
81
84
  {
82
85
  DOCKER_REGISTRY: "$CI_REGISTRY",
83
- DOCKER_CACHE_IMAGE: "$CI_REGISTRY_IMAGE/caches/" + context.componentName,
86
+ DOCKER_CACHE_IMAGE: "$CI_REGISTRY_IMAGE/caches/" + context.name,
84
87
  // ONLY USED IN KUBERNETES
85
- DOCKER_IMAGE_NAME: context.environment.shortName + "/" + context.componentName,
88
+ DOCKER_IMAGE_NAME: context.env + "/" + context.name,
86
89
  DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
87
90
  }), {
88
91
  DOCKER_IMAGE_TAG: "$CI_COMMIT_SHA"
@@ -92,9 +95,10 @@ exports.getDockerImageVariables = getDockerImageVariables;
92
95
  /**
93
96
  * Weather the context requires a docker build
94
97
  */
95
- var requiresDockerBuild = function (_a) {
96
- var deploy = _a.componentConfig.deploy;
97
- return (0, deploy_1.isOfDeployType)(deploy, "kubernetes", "google-cloudrun", "dockerTag") || (0, deploy_1.isOfDeployType)(deploy, "custom") && deploy.requiresDocker;
98
+ var requiresDockerBuild = function (context) {
99
+ var _a;
100
+ var deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
101
+ return (0, deploy_1.isOfDeployType)(deployConfig, "kubernetes", "google-cloudrun", "dockerTag") || (0, deploy_1.isOfDeployType)(deployConfig, "custom") && deployConfig.requiresDocker;
98
102
  };
99
103
  exports.requiresDockerBuild = requiresDockerBuild;
100
104
  // those need to be runner variables
@@ -117,14 +121,15 @@ var getDockerAdditions = function (build) {
117
121
  };
118
122
  };
119
123
  var getDockerBuildVariables = function (context) {
120
- return __assign(__assign(__assign({}, getDockerAdditions(context.buildContext.config)), {
121
- APP_DIR: context.buildContext.dir,
122
- DOCKER_DIR: "."
124
+ var _a;
125
+ return __assign(__assign(__assign({}, getDockerAdditions(context.build.config)), {
126
+ APP_DIR: context.build.dir,
127
+ DOCKER_BUILD_CONTEXT: "docker" in context.build.config && context.build.config.docker && "buildContextLocation" in context.build.config.docker && ((_a = context.build.config.docker) === null || _a === void 0 ? void 0 : _a.buildContextLocation) === "component" ? context.build.dir : "."
123
128
  }), (0, exports.getDockerImageVariables)(context));
124
129
  };
125
130
  exports.getDockerBuildVariables = getDockerBuildVariables;
126
131
  exports.DOCKER_BUILD_JOB_NAME = "🔨 docker";
127
- var getDockerJobBaseProps = function (context) {
132
+ var getDockerJobBaseProps = function () {
128
133
  return {
129
134
  image: (0, runner_1.getRunnerImage)("docker-build"),
130
135
  services: [{
@@ -139,12 +144,14 @@ var getDockerJobBaseProps = function (context) {
139
144
  exports.getDockerJobBaseProps = getDockerJobBaseProps;
140
145
  var createDockerBuildJobBase = function (context, _a) {
141
146
  var script = _a.script,
142
- def = __rest(_a, ["script"]);
147
+ cache = _a.cache,
148
+ def = __rest(_a, ["script", "cache"]);
143
149
  return (0, lodash_1.merge)(__assign(__assign({
144
150
  name: exports.DOCKER_BUILD_JOB_NAME,
145
151
  envMode: "jobPerEnv",
146
- stage: "build"
147
- }, (0, exports.getDockerJobBaseProps)(context)), {
152
+ stage: "build",
153
+ cache: cache ? (0, createJobCache_1.createJobCacheFromCacheConfigs)(context, cache) : undefined
154
+ }, (0, exports.getDockerJobBaseProps)()), {
148
155
  script: script || []
149
156
  }), {
150
157
  variables: (0, exports.getDockerBuildVariables)(context),
@@ -153,7 +160,7 @@ var createDockerBuildJobBase = function (context, _a) {
153
160
  };
154
161
  exports.createDockerBuildJobBase = createDockerBuildJobBase;
155
162
  var gitlabDockerLogin = function (context) {
156
- return (0, deploy_1.isOfDeployType)(context.componentConfig.deploy, "google-cloudrun") ? __spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), ["gcloud auth configure-docker ".concat((0, artifactsRegistry_1.getArtifactsRegistryHost)(context))], false) : ["docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY"];
163
+ return context.deploy && (0, deploy_1.isOfDeployType)(context.deploy.config, "google-cloudrun") ? __spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), ["gcloud auth configure-docker ".concat((0, artifactsRegistry_1.getArtifactsRegistryHost)(context))], false) : ["docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY"];
157
164
  };
158
165
  exports.gitlabDockerLogin = gitlabDockerLogin;
159
166
  var BUILT_IN_ENSURE_DOCKERFILE_SCRIPTS = {
@@ -164,16 +171,16 @@ var BUILT_IN_ENSURE_DOCKERFILE_SCRIPTS = {
164
171
  };
165
172
  var getDockerBuildScriptWithBuiltInDockerFile = function (context, defaultType) {
166
173
  var _a;
167
- var type = "docker" in context.componentConfig.build && context.componentConfig.build.docker && "type" in context.componentConfig.build.docker ? (_a = context.componentConfig.build.docker) === null || _a === void 0 ? void 0 : _a.type : defaultType;
174
+ var type = "docker" in context.build.config && context.build.config.docker && "type" in context.build.config.docker ? (_a = context.build.config.docker) === null || _a === void 0 ? void 0 : _a.type : defaultType;
168
175
  return (0, exports.getDockerBuildDefaultScript)(context, type ? BUILT_IN_ENSURE_DOCKERFILE_SCRIPTS[type] : null);
169
176
  };
170
177
  exports.getDockerBuildScriptWithBuiltInDockerFile = getDockerBuildScriptWithBuiltInDockerFile;
171
178
  var getDockerBuildDefaultScript = function (context, ensureDockerFileScript) {
172
- return __spreadArray(__spreadArray(__spreadArray([ensureDockerFileScript !== null && ensureDockerFileScript !== void 0 ? ensureDockerFileScript : undefined], __read((0, gitlab_1.collapseableSection)("docker-login", "Docker Login")((0, exports.gitlabDockerLogin)(context))), false), __read((0, gitlab_1.collapseableSection)("docker-build", "Docker build")(["docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1" //BUILDKIT_INLINE_CACHE, see https://testdriven.io/blog/faster-ci-builds-with-docker-cache/
179
+ return __spreadArray(__spreadArray(__spreadArray([ensureDockerFileScript !== null && ensureDockerFileScript !== void 0 ? ensureDockerFileScript : undefined], __read((0, gitlab_1.collapseableSection)("docker-login", "Docker Login")((0, exports.gitlabDockerLogin)(context))), false), __read((0, gitlab_1.collapseableSection)("docker-build", "Docker build")(["docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1" //BUILDKIT_INLINE_CACHE, see https://testdriven.io/blog/faster-ci-builds-with-docker-cache/
173
180
  ])), false), __read((0, gitlab_1.collapseableSection)("docker-push", "Docker push and tag")(["docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE", "docker push $DOCKER_CACHE_IMAGE"])), false).filter(Boolean);
174
181
  };
175
182
  exports.getDockerBuildDefaultScript = getDockerBuildDefaultScript;
176
183
  var hasDockerfile = function (context) {
177
- return (0, fs_1.existsSync)(path_1.default.join(context.componentConfig.dir, "Dockerfile"));
184
+ return (0, fs_1.existsSync)(path_1.default.join(context.build.dir, "Dockerfile"));
178
185
  };
179
186
  exports.hasDockerfile = hasDockerfile;
@@ -1,13 +1,20 @@
1
- import type { ComponentContext } from "../types/context";
1
+ import type { ComponentContext, WorkspaceContext } from "../types/context";
2
2
  import type { EnvironmentContext } from "../types/environmentContext";
3
3
  import type { CatladderJob } from "../types/jobs";
4
- import type { BuildConfig, BuildConfigType } from "./types";
5
- export * from "./types";
4
+ import type { BuildConfig, BuildConfigStandaloneType, WorkspaceBuildConfig } from "./types";
6
5
  export * from "./node";
7
- export type BuildTypes = { [type in BuildConfigType]: {
6
+ export * from "./types";
7
+ export type BuildTypes = { [type in BuildConfigStandaloneType]: {
8
8
  jobs: (context: ComponentContext) => CatladderJob[];
9
- defaults: (envContext: EnvironmentContext<BuildConfigType, any>) => Partial<Extract<BuildConfig, {
9
+ defaults: (envContext: EnvironmentContext) => Partial<Extract<BuildConfig, {
10
+ type: type;
11
+ }>>;
12
+ } };
13
+ export declare const BUILD_TYPES: BuildTypes;
14
+ export type WorkspaceBuildTypes = { [type in WorkspaceBuildConfig["type"]]: {
15
+ jobs: (context: WorkspaceContext) => CatladderJob[];
16
+ defaults: () => Partial<Extract<WorkspaceBuildConfig, {
10
17
  type: type;
11
18
  }>>;
12
19
  } };
13
- export declare const BUILD_TYPES: BuildTypes;
20
+ export declare const WORKSPACE_BUILD_TYPES: WorkspaceBuildTypes;
@@ -22,19 +22,20 @@ var __exportStar = this && this.__exportStar || function (m, exports) {
22
22
  Object.defineProperty(exports, "__esModule", {
23
23
  value: true
24
24
  });
25
- exports.BUILD_TYPES = void 0;
25
+ exports.WORKSPACE_BUILD_TYPES = exports.BUILD_TYPES = void 0;
26
26
  var custom_1 = require("./custom");
27
27
  var node_1 = require("./node");
28
28
  var rails_1 = require("./rails");
29
- __exportStar(require("./types"), exports);
30
29
  __exportStar(require("./node"), exports);
30
+ __exportStar(require("./types"), exports);
31
31
  exports.BUILD_TYPES = {
32
32
  node: {
33
33
  jobs: node_1.createNodeJobs,
34
34
  defaults: function () {
35
35
  return {
36
36
  buildCommand: "yarn build",
37
- startCommand: "yarn start"
37
+ startCommand: "yarn start",
38
+ artifactsPaths: ["dist", ".next"]
38
39
  };
39
40
  }
40
41
  },
@@ -42,7 +43,8 @@ exports.BUILD_TYPES = {
42
43
  jobs: node_1.createNodeJobs,
43
44
  defaults: function () {
44
45
  return {
45
- buildCommand: "yarn build"
46
+ buildCommand: "yarn build",
47
+ artifactsPaths: ["dist"]
46
48
  };
47
49
  }
48
50
  },
@@ -50,7 +52,8 @@ exports.BUILD_TYPES = {
50
52
  jobs: node_1.createStorybookJobs,
51
53
  defaults: function () {
52
54
  return {
53
- buildCommand: ["yarn build-storybook --quiet -o ./dist"]
55
+ buildCommand: ["yarn build-storybook --quiet -o ./dist"],
56
+ artifactsPaths: ["dist"]
54
57
  };
55
58
  }
56
59
  },
@@ -58,14 +61,17 @@ exports.BUILD_TYPES = {
58
61
  jobs: node_1.createMeteorJobs,
59
62
  defaults: function () {
60
63
  return {
61
- startCommand: "node main.js"
64
+ startCommand: "node main.js",
65
+ artifactsPaths: ["dist"]
62
66
  };
63
67
  }
64
68
  },
65
69
  custom: {
66
70
  jobs: custom_1.createCustomJobs,
67
71
  defaults: function () {
68
- return {};
72
+ return {
73
+ artifactsPaths: ["dist"]
74
+ };
69
75
  }
70
76
  },
71
77
  rails: {
@@ -80,4 +86,20 @@ exports.BUILD_TYPES = {
80
86
  };
81
87
  }
82
88
  }
89
+ };
90
+ exports.WORKSPACE_BUILD_TYPES = {
91
+ node: {
92
+ jobs: node_1.createNodeJobs,
93
+ defaults: function () {
94
+ return {
95
+ buildCommand: "yarn build",
96
+ lint: {
97
+ command: "yarn lint"
98
+ },
99
+ test: {
100
+ command: "yarn test"
101
+ }
102
+ };
103
+ }
104
+ }
83
105
  };
@@ -1,3 +1,7 @@
1
- import type { ComponentContext } from "../../types/context";
1
+ import type { BuildContextStandalone, WorkspaceContext } from "../../types/context";
2
+ import { type ComponentContext } from "../../types/context";
3
+ import type { AppBuildJobDefinition, DockerBuildJobDefinition } from "../../types/jobDefinition";
2
4
  import type { CatladderJob } from "../../types/jobs";
3
- export declare const createNodeBuildJobs: (context: ComponentContext) => CatladderJob[];
5
+ export declare const createNodeBuildJobs: (context: ComponentContext | WorkspaceContext) => CatladderJob[];
6
+ export declare const createNodeBuildJobDefinition: (context: ComponentContext<BuildContextStandalone> | WorkspaceContext) => AppBuildJobDefinition | undefined;
7
+ export declare const createNodeDockerJobDefinition: (context: ComponentContext) => DockerBuildJobDefinition;
@@ -34,53 +34,48 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
34
34
  Object.defineProperty(exports, "__esModule", {
35
35
  value: true
36
36
  });
37
- exports.createNodeBuildJobs = void 0;
38
- var path_1 = require("path");
39
- var runner_1 = require("../../runner");
40
- var utils_1 = require("../../utils");
37
+ exports.createNodeDockerJobDefinition = exports.createNodeBuildJobDefinition = exports.createNodeBuildJobs = void 0;
38
+ var context_1 = require("../../types/context");
41
39
  var base_1 = require("../base");
40
+ var createBuildJobDefinition_1 = require("../base/createBuildJobDefinition");
42
41
  var docker_1 = require("../docker");
43
- var types_1 = require("../types");
44
42
  var cache_1 = require("./cache");
45
- var constants_1 = require("./constants");
46
43
  var yarn_1 = require("./yarn");
47
44
  var createNodeBuildJobs = function (context) {
48
- var _a, _b, _c, _d, _e, _f, _g;
49
- var buildConfig = context.componentConfig.build;
50
- if (!(0, types_1.isOfBuildType)(buildConfig, "node", "node-static", "storybook")) {
51
- throw new Error("deploy config is not node, node-static or storybook");
45
+ if (context.type === "workspace") {
46
+ return (0, base_1.createWorkspaceBuildJobs)(context, {
47
+ appBuild: (0, exports.createNodeBuildJobDefinition)(context)
48
+ });
52
49
  }
53
- var defaultImage = (0, runner_1.getRunnerImage)("jobs-default");
54
- var yarnInstall = (0, yarn_1.getYarnInstall)(context.buildContext);
55
- return (0, base_1.createBuildJobs)(context, {
56
- appBuild: buildConfig.buildCommand !== null ? {
57
- image: (_a = buildConfig.jobImage) !== null && _a !== void 0 ? _a : defaultImage,
58
- runnerVariables: constants_1.NODE_RUNNER_BUILD_VARIABLES,
59
- cache: __spreadArray(__spreadArray(__spreadArray([], __read((_b = (0, utils_1.ensureArray)(buildConfig.jobCache)) !== null && _b !== void 0 ? _b : []), false), __read((0, cache_1.getNodeCache)(context.buildContext)), false), __read((0, cache_1.getNextCache)(context)), false),
60
- script: __spreadArray(__spreadArray([], __read(yarnInstall), false), __read((_c = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _c !== void 0 ? _c : []), false),
61
- artifacts: {
62
- paths: __spreadArray([context.componentConfig.dir], __read((_e = (_d = context.buildContext.packageManagerInfo) === null || _d === void 0 ? void 0 : _d.currentWorkspaceDependencies) !== null && _e !== void 0 ? _e : []), false).flatMap(function (dir) {
63
- var _a, _b;
64
- return __spreadArray([(0, path_1.join)(dir, "__build_info.json"), (0, path_1.join)(dir, "dist"), (0, path_1.join)(dir, ".next")], __read((_b = (_a = buildConfig.artifactsPaths) === null || _a === void 0 ? void 0 : _a.map(function (path) {
65
- return (0, path_1.join)(dir, path);
66
- })) !== null && _b !== void 0 ? _b : []), false);
67
- }),
68
- expire_in: "1 day",
69
- when: "always"
70
- },
71
- jobTags: buildConfig.jobTags
72
- } : undefined,
73
- dockerBuild: {
74
- script: (0, docker_1.getDockerBuildScriptWithBuiltInDockerFile)(context, buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "nginx" : "node"),
75
- cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context.buildContext, "pull")), false),
76
- variables: {
77
- // only required for non static
78
- DOCKER_COPY_AND_INSTALL_APP: (0, yarn_1.getDockerAppCopyAndBuildScript)(context.buildContext),
79
- DOCKER_COPY_WORKSPACE_FILES: (_g = (_f = context.buildContext.packageManagerInfo) === null || _f === void 0 ? void 0 : _f.pathsToCopyInDocker.map(function (dir) {
80
- return "COPY --chown=node:node ".concat(dir, " /app/").concat(dir);
81
- })) === null || _g === void 0 ? void 0 : _g.join("\n")
82
- }
83
- }
50
+ return (0, base_1.createComponentBuildJobs)(context, {
51
+ appBuild: (0, context_1.componentContextIsStandaloneBuild)(context) ? (0, exports.createNodeBuildJobDefinition)(context) : undefined,
52
+ dockerBuild: (0, exports.createNodeDockerJobDefinition)(context)
53
+ });
54
+ };
55
+ exports.createNodeBuildJobs = createNodeBuildJobs;
56
+ var createNodeBuildJobDefinition = function (context) {
57
+ var buildConfig = context.build.config;
58
+ var yarnInstall = (0, yarn_1.getYarnInstall)(context);
59
+ return (0, createBuildJobDefinition_1.createBuildJobDefinition)(context, buildConfig, {
60
+ prescript: yarnInstall,
61
+ cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read((0, cache_1.getNextCache)(context)), false)
84
62
  });
85
63
  };
86
- exports.createNodeBuildJobs = createNodeBuildJobs;
64
+ exports.createNodeBuildJobDefinition = createNodeBuildJobDefinition;
65
+ var createNodeDockerJobDefinition = function (context) {
66
+ var _a, _b;
67
+ // get the default docker built-in type based on the build type
68
+ var dockerDefaultBuiltIn = context.build.buildType === "node-static" || context.build.buildType === "storybook" ? "nginx" : "node";
69
+ return {
70
+ script: (0, docker_1.getDockerBuildScriptWithBuiltInDockerFile)(context, dockerDefaultBuiltIn),
71
+ cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
72
+ variables: {
73
+ // only required for non static
74
+ DOCKER_COPY_AND_INSTALL_APP: (0, yarn_1.getDockerAppCopyAndBuildScript)(context),
75
+ DOCKER_COPY_WORKSPACE_FILES: (_b = (_a = context.packageManagerInfo) === null || _a === void 0 ? void 0 : _a.pathsToCopyInDocker.map(function (dir) {
76
+ return "COPY --chown=node:node ".concat(dir, " /app/").concat(dir);
77
+ })) === null || _b === void 0 ? void 0 : _b.join("\n")
78
+ }
79
+ };
80
+ };
81
+ exports.createNodeDockerJobDefinition = createNodeDockerJobDefinition;
@@ -1,6 +1,7 @@
1
- import type { BuildContext, ComponentContext } from "../../types/context";
2
- import type { GitlabJobCache } from "../../types/gitlab-types";
3
- export declare const getYarnCache: (context: BuildContext, policy?: string) => GitlabJobCache[];
4
- export declare const getNodeModulesCache: (context: BuildContext, policy?: string) => GitlabJobCache[];
5
- export declare const getNodeCache: (context: BuildContext, policy?: string) => GitlabJobCache[];
6
- export declare const getNextCache: (context: ComponentContext) => GitlabJobCache[];
1
+ import type { Context, WorkspaceContext } from "../../types/context";
2
+ import type { CacheConfig } from "../types";
3
+ export declare const getYarnCache: (context: Context, policy?: string) => CacheConfig[];
4
+ export declare const getNodeModulesCache: (context: Context, policy?: string) => CacheConfig[];
5
+ export declare const getNodeCache: (context: Context, policy?: string) => CacheConfig[];
6
+ export declare const getNextCache: (context: Context) => CacheConfig[];
7
+ export declare const getWorkspaceDefaultCaches: (context: WorkspaceContext) => CacheConfig[];