@catladder/pipeline 0.0.0-refactor-cloud-run-825d7e86 โ†’ 0.0.0-refactor-docker-9fda97e9

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 (323) hide show
  1. package/dist/bash/BashExpression.d.ts +40 -0
  2. package/dist/bash/BashExpression.js +124 -0
  3. package/dist/bash/bashExpressionPerPipelineType.d.ts +6 -0
  4. package/dist/bash/bashExpressionPerPipelineType.js +11 -0
  5. package/dist/bash/bashYaml.d.ts +10 -0
  6. package/dist/bash/bashYaml.js +46 -0
  7. package/dist/bash/getInjectVarsScript.d.ts +2 -0
  8. package/dist/bash/getInjectVarsScript.js +45 -0
  9. package/dist/bash/replaceAsync.d.ts +2 -0
  10. package/dist/{pipeline/commitInfo/getCommitInfo.js โ†’ bash/replaceAsync.js} +49 -21
  11. package/dist/build/base/__tests__/createArtifactsConfig.test.js +3 -1
  12. package/dist/build/base/constants.js +3 -1
  13. package/dist/build/base/createAppBuildJob.d.ts +2 -1
  14. package/dist/build/base/createAppBuildJob.js +11 -6
  15. package/dist/build/base/createArtifactsConfig.d.ts +1 -1
  16. package/dist/build/base/createArtifactsConfig.js +3 -1
  17. package/dist/build/base/index.js +3 -1
  18. package/dist/build/base/writeBuildInfo.js +4 -3
  19. package/dist/build/base/writeDotEnv.js +12 -3
  20. package/dist/build/custom/__tests__/testJob.test.js +3 -1
  21. package/dist/build/custom/buildJob.js +6 -14
  22. package/dist/build/custom/index.js +3 -1
  23. package/dist/build/custom/testJob.d.ts +1 -1
  24. package/dist/build/custom/testJob.js +18 -14
  25. package/dist/build/docker.d.ts +28 -33
  26. package/dist/build/docker.js +39 -14
  27. package/dist/build/index.d.ts +1 -1
  28. package/dist/build/index.js +13 -7
  29. package/dist/build/node/buildJob.js +5 -13
  30. package/dist/build/node/cache.js +6 -3
  31. package/dist/build/node/constants.js +3 -1
  32. package/dist/build/node/index.js +3 -1
  33. package/dist/build/node/meteor.js +6 -3
  34. package/dist/build/node/testJob.js +18 -14
  35. package/dist/build/node/yarn.d.ts +3 -2
  36. package/dist/build/node/yarn.js +6 -3
  37. package/dist/build/rails/build.js +4 -2
  38. package/dist/build/rails/index.js +3 -1
  39. package/dist/build/rails/test.js +15 -11
  40. package/dist/build/sbom.js +3 -1
  41. package/dist/build/types.d.ts +57 -43
  42. package/dist/build/types.js +3 -1
  43. package/dist/bundles/catladder-gitlab/index.js +31112 -25265
  44. package/dist/catladder-gitlab.js +10 -54
  45. package/dist/config/__tests__/configruedEnvs.test.js +3 -1
  46. package/dist/config/configruedEnvs.js +3 -1
  47. package/dist/config/index.js +13 -7
  48. package/dist/config/readConfig.js +6 -5
  49. package/dist/constants.js +5 -3
  50. package/dist/context/__tests__/resolveReferences.test.js +40 -8
  51. package/dist/context/getBuildInfoVariables.d.ts +7 -0
  52. package/dist/context/getBuildInfoVariables.js +29 -0
  53. package/dist/context/getEnvConfig.js +3 -1
  54. package/dist/context/getEnvType.js +3 -1
  55. package/dist/context/getEnvironment.d.ts +3 -3
  56. package/dist/context/getEnvironment.js +10 -10
  57. package/dist/context/getEnvironmentContext.d.ts +7 -3
  58. package/dist/context/getEnvironmentContext.js +21 -11
  59. package/dist/context/getEnvironmentVariables.d.ts +26 -5
  60. package/dist/context/getEnvironmentVariables.js +41 -25
  61. package/dist/context/getLabels.js +4 -2
  62. package/dist/context/getReviewSlug.d.ts +4 -0
  63. package/dist/context/getReviewSlug.js +22 -0
  64. package/dist/context/index.d.ts +12 -3
  65. package/dist/context/index.js +21 -15
  66. package/dist/context/resolveReferences.d.ts +3 -1
  67. package/dist/context/resolveReferences.js +54 -22
  68. package/dist/context/transformJobOnlyVars.d.ts +5 -2
  69. package/dist/context/transformJobOnlyVars.js +4 -2
  70. package/dist/context/utils/envVars.d.ts +1 -1
  71. package/dist/context/utils/envVars.js +5 -2
  72. package/dist/defaults/index.js +3 -1
  73. package/dist/deploy/base/deploy.d.ts +1 -1
  74. package/dist/deploy/base/deploy.js +12 -11
  75. package/dist/deploy/base/index.js +3 -1
  76. package/dist/deploy/base/rollback.d.ts +1 -1
  77. package/dist/deploy/base/rollback.js +13 -9
  78. package/dist/deploy/base/stop.d.ts +1 -1
  79. package/dist/deploy/base/stop.js +16 -11
  80. package/dist/deploy/base/types.d.ts +1 -1
  81. package/dist/deploy/base/types.js +3 -1
  82. package/dist/deploy/base/variables.js +3 -1
  83. package/dist/deploy/cloudRun/artifactsRegistry.d.ts +2 -1
  84. package/dist/deploy/cloudRun/artifactsRegistry.js +6 -4
  85. package/dist/deploy/cloudRun/cleanup.js +3 -1
  86. package/dist/deploy/cloudRun/cloudRunRevisions.js +3 -1
  87. package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +20 -11
  88. package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +2 -2
  89. package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +47 -8
  90. package/dist/deploy/cloudRun/createJobs/common.d.ts +3 -0
  91. package/dist/deploy/cloudRun/createJobs/common.js +17 -3
  92. package/dist/deploy/cloudRun/createJobs/constants.d.ts +1 -0
  93. package/dist/deploy/cloudRun/createJobs/constants.js +7 -0
  94. package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +9 -2
  95. package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +3 -1
  96. package/dist/deploy/cloudRun/createJobs/index.js +25 -8
  97. package/dist/deploy/cloudRun/createJobs/volumes.d.ts +3 -0
  98. package/dist/deploy/cloudRun/createJobs/volumes.js +58 -0
  99. package/dist/deploy/cloudRun/index.js +13 -7
  100. package/dist/deploy/cloudRun/utils/createArgsString.d.ts +3 -1
  101. package/dist/deploy/cloudRun/utils/createArgsString.js +25 -17
  102. package/dist/deploy/cloudRun/utils/database.d.ts +4 -2
  103. package/dist/deploy/cloudRun/utils/database.js +28 -15
  104. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +3 -1
  105. package/dist/deploy/cloudRun/utils/getServiceName.d.ts +1 -1
  106. package/dist/deploy/cloudRun/utils/getServiceName.js +3 -1
  107. package/dist/deploy/cloudRun/utils/jobName.d.ts +2 -1
  108. package/dist/deploy/cloudRun/utils/jobName.js +4 -2
  109. package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +3 -1
  110. package/dist/deploy/cloudSql/utils.d.ts +2 -1
  111. package/dist/deploy/cloudSql/utils.js +7 -2
  112. package/dist/deploy/custom/deployJob.js +3 -1
  113. package/dist/deploy/custom/index.js +3 -1
  114. package/dist/deploy/dockerTag/deployJob.js +3 -1
  115. package/dist/deploy/dockerTag/index.js +3 -1
  116. package/dist/deploy/index.d.ts +4 -3
  117. package/dist/deploy/index.js +13 -7
  118. package/dist/deploy/kubernetes/additionalSecretKeys.js +3 -1
  119. package/dist/deploy/kubernetes/cloudSql/index.d.ts +3 -2
  120. package/dist/deploy/kubernetes/cloudSql/index.js +6 -4
  121. package/dist/deploy/kubernetes/deployJob.js +22 -15
  122. package/dist/deploy/kubernetes/index.js +51 -14
  123. package/dist/deploy/kubernetes/kubeEnv.d.ts +3 -2
  124. package/dist/deploy/kubernetes/kubeEnv.js +7 -4
  125. package/dist/deploy/kubernetes/kubeValues.d.ts +2 -2
  126. package/dist/deploy/kubernetes/kubeValues.js +3 -2
  127. package/dist/deploy/kubernetes/mongodb.js +3 -1
  128. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +2 -1
  129. package/dist/deploy/kubernetes/processSecretsAsFiles.js +3 -1
  130. package/dist/deploy/sbom.js +3 -1
  131. package/dist/deploy/types/base.d.ts +8 -2
  132. package/dist/deploy/types/base.js +3 -1
  133. package/dist/deploy/types/custom.d.ts +1 -1
  134. package/dist/deploy/types/custom.js +3 -1
  135. package/dist/deploy/types/dockerTag.d.ts +1 -1
  136. package/dist/deploy/types/dockerTag.js +3 -1
  137. package/dist/deploy/types/googleCloudRun.d.ts +74 -17
  138. package/dist/deploy/types/googleCloudRun.js +3 -1
  139. package/dist/deploy/types/index.d.ts +6 -6
  140. package/dist/deploy/types/index.js +13 -7
  141. package/dist/deploy/types/kubernetes.d.ts +22 -22
  142. package/dist/deploy/types/kubernetes.js +3 -1
  143. package/dist/deploy/utils.js +3 -1
  144. package/dist/index.d.ts +3 -2
  145. package/dist/index.js +16 -9
  146. package/dist/packageInfos.d.ts +2 -0
  147. package/dist/packageInfos.js +14 -0
  148. package/dist/pipeline/createAllJobs.d.ts +13 -5
  149. package/dist/pipeline/createAllJobs.js +21 -10
  150. package/dist/pipeline/createChildPipeline.d.ts +1 -1
  151. package/dist/pipeline/createChildPipeline.js +30 -63
  152. package/dist/pipeline/createJobsForComponent.d.ts +3 -3
  153. package/dist/pipeline/createJobsForComponent.js +19 -18
  154. package/dist/pipeline/createMainPipeline.d.ts +3 -0
  155. package/dist/pipeline/createMainPipeline.js +248 -0
  156. package/dist/pipeline/generatePipelineFiles.d.ts +2 -0
  157. package/dist/pipeline/generatePipelineFiles.js +178 -0
  158. package/dist/pipeline/getPipelineStages.d.ts +8 -0
  159. package/dist/pipeline/getPipelineStages.js +55 -0
  160. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +15 -6
  161. package/dist/pipeline/gitlab/createGitlabJobs.js +98 -25
  162. package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +8 -0
  163. package/dist/pipeline/gitlab/createGitlabPipeline.js +38 -0
  164. package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.d.ts +1 -0
  165. package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.js +29 -0
  166. package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +33 -0
  167. package/dist/pipeline/gitlab/gitlabReleaseJobs.js +24 -0
  168. package/dist/pipeline/index.d.ts +3 -1
  169. package/dist/pipeline/index.js +16 -8
  170. package/dist/pipeline/packageManager.js +4 -2
  171. package/dist/pipeline/yarn/yarnUtils.js +6 -4
  172. package/dist/rules/index.d.ts +7 -2
  173. package/dist/rules/index.js +34 -16
  174. package/dist/runner/index.d.ts +1 -1
  175. package/dist/runner/index.js +3 -1
  176. package/dist/tsconfig.tsbuildinfo +1 -1
  177. package/dist/types/config.d.ts +31 -18
  178. package/dist/types/config.js +5 -2
  179. package/dist/types/context.d.ts +37 -32
  180. package/dist/types/context.js +3 -1
  181. package/dist/types/environmentContext.d.ts +11 -7
  182. package/dist/types/environmentContext.js +3 -1
  183. package/dist/types/gitlab-ci-yml.d.ts +30 -30
  184. package/dist/types/gitlab-ci-yml.js +3 -2
  185. package/dist/types/gitlab-types.d.ts +4 -6
  186. package/dist/types/gitlab-types.js +3 -1
  187. package/dist/types/index.js +13 -7
  188. package/dist/types/jobs.d.ts +23 -6
  189. package/dist/types/jobs.js +3 -1
  190. package/dist/types/pipeline.d.ts +4 -3
  191. package/dist/types/pipeline.js +3 -1
  192. package/dist/types/utils.d.ts +1 -1
  193. package/dist/types/utils.js +3 -1
  194. package/dist/utils/gitlab.js +3 -1
  195. package/dist/utils/index.d.ts +1 -1
  196. package/dist/utils/index.js +3 -1
  197. package/dist/utils/writeFiles.d.ts +7 -0
  198. package/dist/{pipeline/commitInfo/getBuildId.js โ†’ utils/writeFiles.js} +39 -22
  199. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +495 -363
  200. package/examples/__snapshots__/cloud-run-meteor-with-worker.ts.snap +474 -342
  201. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +492 -360
  202. package/examples/__snapshots__/cloud-run-no-service.ts.snap +2023 -0
  203. package/examples/__snapshots__/cloud-run-non-public.ts.snap +492 -360
  204. package/examples/__snapshots__/cloud-run-post-stop-job.ts.snap +501 -368
  205. package/examples/__snapshots__/cloud-run-service-gen2.ts.snap +1971 -0
  206. package/examples/__snapshots__/cloud-run-service-with-volumes.ts.snap +2015 -0
  207. package/examples/__snapshots__/cloud-run-with-ngnix.ts.snap +1971 -0
  208. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +1167 -867
  209. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +1155 -867
  210. package/examples/__snapshots__/cloud-run-with-worker.ts.snap +494 -362
  211. package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +464 -332
  212. package/examples/__snapshots__/custom-build-job.ts.snap +446 -326
  213. package/examples/__snapshots__/custom-deploy.ts.snap +331 -223
  214. package/examples/__snapshots__/custom-envs.ts.snap +135 -81
  215. package/examples/__snapshots__/custom-sbom-java.ts.snap +446 -326
  216. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +858 -969
  217. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +898 -957
  218. package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +906 -969
  219. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +1638 -1728
  220. package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +986 -1137
  221. package/examples/__snapshots__/local-dot-env.ts.snap +1971 -0
  222. package/examples/__snapshots__/meteor-kubernetes.ts.snap +918 -1069
  223. package/examples/__snapshots__/multiline-var.ts.snap +4500 -0
  224. package/examples/__snapshots__/native-app.ts.snap +718 -554
  225. package/examples/__snapshots__/node-build-with-custom-image.ts.snap +492 -360
  226. package/examples/__snapshots__/node-build-with-docker-additions.ts.snap +500 -360
  227. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1689 -1947
  228. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +299 -231
  229. package/examples/cloud-run-memory-limit.ts +4 -1
  230. package/examples/cloud-run-no-service.ts +32 -0
  231. package/examples/cloud-run-service-gen2.ts +27 -0
  232. package/examples/cloud-run-service-with-volumes.ts +54 -0
  233. package/examples/cloud-run-with-ngnix.ts +24 -0
  234. package/examples/custom-deploy.ts +7 -7
  235. package/examples/local-dot-env.ts +25 -0
  236. package/examples/multiline-var.ts +64 -0
  237. package/package.json +5 -7
  238. package/src/bash/BashExpression.ts +81 -0
  239. package/src/bash/bashExpressionPerPipelineType.ts +16 -0
  240. package/src/bash/bashYaml.ts +46 -0
  241. package/src/bash/getInjectVarsScript.ts +12 -0
  242. package/src/bash/replaceAsync.ts +50 -0
  243. package/src/build/base/createAppBuildJob.ts +11 -5
  244. package/src/build/base/index.ts +1 -1
  245. package/src/build/base/writeBuildInfo.ts +1 -1
  246. package/src/build/base/writeDotEnv.ts +6 -1
  247. package/src/build/custom/buildJob.ts +4 -9
  248. package/src/build/custom/testJob.ts +3 -2
  249. package/src/build/docker.ts +62 -17
  250. package/src/build/node/buildJob.ts +5 -9
  251. package/src/build/node/meteor.ts +3 -3
  252. package/src/build/node/testJob.ts +3 -2
  253. package/src/build/node/yarn.ts +9 -4
  254. package/src/build/rails/build.ts +1 -0
  255. package/src/build/rails/test.ts +2 -1
  256. package/src/build/types.ts +61 -39
  257. package/src/catladder-gitlab.ts +8 -55
  258. package/src/config/readConfig.ts +2 -3
  259. package/src/constants.ts +5 -2
  260. package/src/context/__tests__/resolveReferences.test.ts +11 -6
  261. package/src/context/getBuildInfoVariables.ts +40 -0
  262. package/src/context/getEnvironment.ts +7 -23
  263. package/src/context/getEnvironmentContext.ts +25 -29
  264. package/src/context/getEnvironmentVariables.ts +61 -36
  265. package/src/context/getReviewSlug.ts +27 -0
  266. package/src/context/index.ts +24 -23
  267. package/src/context/resolveReferences.ts +29 -9
  268. package/src/context/transformJobOnlyVars.ts +5 -2
  269. package/src/context/utils/envVars.ts +2 -1
  270. package/src/deploy/base/deploy.ts +20 -18
  271. package/src/deploy/base/rollback.ts +8 -10
  272. package/src/deploy/base/stop.ts +8 -9
  273. package/src/deploy/cloudRun/artifactsRegistry.ts +9 -4
  274. package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +35 -15
  275. package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +35 -20
  276. package/src/deploy/cloudRun/createJobs/common.ts +14 -1
  277. package/src/deploy/cloudRun/createJobs/constants.ts +1 -0
  278. package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +20 -2
  279. package/src/deploy/cloudRun/createJobs/index.ts +17 -8
  280. package/src/deploy/cloudRun/createJobs/volumes.ts +23 -0
  281. package/src/deploy/cloudRun/index.ts +28 -8
  282. package/src/deploy/cloudRun/utils/createArgsString.ts +21 -13
  283. package/src/deploy/cloudRun/utils/database.ts +25 -3
  284. package/src/deploy/cloudRun/utils/jobName.ts +7 -2
  285. package/src/deploy/cloudSql/utils.ts +12 -9
  286. package/src/deploy/index.ts +2 -1
  287. package/src/deploy/kubernetes/cloudSql/index.ts +3 -2
  288. package/src/deploy/kubernetes/deployJob.ts +24 -10
  289. package/src/deploy/kubernetes/index.ts +15 -8
  290. package/src/deploy/kubernetes/kubeEnv.ts +8 -6
  291. package/src/deploy/kubernetes/kubeValues.ts +0 -1
  292. package/src/deploy/kubernetes/processSecretsAsFiles.ts +2 -1
  293. package/src/deploy/types/base.ts +6 -0
  294. package/src/deploy/types/googleCloudRun.ts +73 -4
  295. package/src/index.ts +2 -1
  296. package/src/packageInfos.ts +10 -0
  297. package/src/pipeline/createAllJobs.ts +24 -10
  298. package/src/pipeline/createChildPipeline.ts +19 -30
  299. package/src/pipeline/createJobsForComponent.ts +14 -22
  300. package/src/pipeline/createMainPipeline.ts +88 -0
  301. package/src/pipeline/generatePipelineFiles.ts +29 -0
  302. package/src/pipeline/getPipelineStages.ts +22 -0
  303. package/src/pipeline/gitlab/createGitlabJobs.ts +174 -51
  304. package/src/pipeline/gitlab/createGitlabPipeline.ts +24 -0
  305. package/src/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.ts +46 -0
  306. package/src/pipeline/gitlab/gitlabReleaseJobs.ts +20 -0
  307. package/src/pipeline/index.ts +2 -0
  308. package/src/rules/index.ts +36 -9
  309. package/src/types/config.ts +24 -4
  310. package/src/types/context.ts +39 -26
  311. package/src/types/environmentContext.ts +12 -6
  312. package/src/types/gitlab-ci-yml.ts +0 -1
  313. package/src/types/gitlab-types.ts +5 -4
  314. package/src/types/jobs.ts +28 -3
  315. package/src/types/pipeline.ts +4 -0
  316. package/src/utils/writeFiles.ts +40 -0
  317. package/dist/deploy/cloudRun/createJobs/variables.d.ts +0 -5
  318. package/dist/deploy/cloudRun/createJobs/variables.js +0 -19
  319. package/dist/pipeline/commitInfo/getBuildId.d.ts +0 -6
  320. package/dist/pipeline/commitInfo/getCommitInfo.d.ts +0 -2
  321. package/src/deploy/cloudRun/createJobs/variables.ts +0 -21
  322. package/src/pipeline/commitInfo/getBuildId.ts +0 -17
  323. package/src/pipeline/commitInfo/getCommitInfo.ts +0 -15
@@ -41,7 +41,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
41
41
  }
42
42
  return to.concat(ar || Array.prototype.slice.call(from));
43
43
  };
44
- exports.__esModule = true;
44
+ Object.defineProperty(exports, "__esModule", {
45
+ value: true
46
+ });
45
47
  exports.createCustomTestJobs = void 0;
46
48
  var utils_1 = require("../../utils");
47
49
  var types_1 = require("../types");
@@ -52,9 +54,10 @@ var RUNNER_CUSTOM_TEST_VARIABLES = {
52
54
  KUBERNETES_MEMORY_LIMIT: "4Gi"
53
55
  };
54
56
  var createCustomTestJobs = function (context) {
55
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
57
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
56
58
  // don't run tests after release
57
- if (((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.trigger) === "taggedRelease") {
59
+ // TODO: this will be replaced by using rules
60
+ if (context.trigger === "taggedRelease") {
58
61
  return [];
59
62
  }
60
63
  var buildConfig = context.componentConfig.build;
@@ -62,9 +65,10 @@ var createCustomTestJobs = function (context) {
62
65
  throw new Error("deploy config is not custom");
63
66
  }
64
67
  var base = {
65
- variables: __assign(__assign(__assign({
68
+ variables: __assign(__assign({
66
69
  APP_PATH: context.componentConfig.dir
67
- }, RUNNER_CUSTOM_TEST_VARIABLES), context.environment.jobOnlyVars.build.envVars), (_b = buildConfig.extraVars) !== null && _b !== void 0 ? _b : {}),
70
+ }, context.environment.jobOnlyVars.build.envVars), (_a = buildConfig.extraVars) !== null && _a !== void 0 ? _a : {}),
71
+ runnerVariables: RUNNER_CUSTOM_TEST_VARIABLES,
68
72
  services: buildConfig.jobServices,
69
73
  cache: buildConfig.jobCache,
70
74
  stage: "test",
@@ -74,23 +78,23 @@ var createCustomTestJobs = function (context) {
74
78
  var auditJob = buildConfig.audit ? __assign(__assign(__assign({
75
79
  name: "๐Ÿ›ก audit"
76
80
  }, base), {
77
- image: (_d = (_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.jobImage) !== null && _d !== void 0 ? _d : buildConfig.jobImage,
81
+ image: (_c = (_b = buildConfig.audit) === null || _b === void 0 ? void 0 : _b.jobImage) !== null && _c !== void 0 ? _c : buildConfig.jobImage,
78
82
  cache: undefined,
79
- script: __spreadArray([], __read((_f = (0, utils_1.ensureArray)((_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.command)) !== null && _f !== void 0 ? _f : []), false),
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),
80
84
  allow_failure: true
81
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_g = buildConfig.audit) === null || _g === void 0 ? void 0 : _g.artifactsReports, (_h = buildConfig.audit) === null || _h === void 0 ? void 0 : _h.artifacts)) : null;
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;
82
86
  var lintJob = buildConfig.lint ? __assign(__assign(__assign({
83
87
  name: "๐Ÿ‘ฎ lint"
84
88
  }, base), {
85
- image: (_k = (_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.jobImage) !== null && _k !== void 0 ? _k : buildConfig.jobImage,
86
- script: __spreadArray([], __read((_m = (0, utils_1.ensureArray)((_l = buildConfig.lint) === null || _l === void 0 ? void 0 : _l.command)) !== null && _m !== void 0 ? _m : []), false)
87
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_o = buildConfig.lint) === null || _o === void 0 ? void 0 : _o.artifactsReports, (_p = buildConfig.lint) === null || _p === void 0 ? void 0 : _p.artifacts)) : null;
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;
88
92
  var testJob = buildConfig.test ? __assign(__assign(__assign({
89
93
  name: "๐Ÿงช test"
90
94
  }, base), {
91
- image: (_r = (_q = buildConfig.test) === null || _q === void 0 ? void 0 : _q.jobImage) !== null && _r !== void 0 ? _r : buildConfig.jobImage,
92
- script: __spreadArray([], __read((_t = (0, utils_1.ensureArray)((_s = buildConfig.test) === null || _s === void 0 ? void 0 : _s.command)) !== null && _t !== void 0 ? _t : []), false)
93
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_u = buildConfig.test) === null || _u === void 0 ? void 0 : _u.artifactsReports, (_v = buildConfig.test) === null || _v === void 0 ? void 0 : _v.artifacts)) : null;
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;
94
98
  return [auditJob, lintJob, testJob].filter(utils_1.notNil);
95
99
  };
96
100
  exports.createCustomTestJobs = createCustomTestJobs;
@@ -1,9 +1,10 @@
1
1
  import type { Context } from "../types";
2
2
  import type { CatladderJob } from "../types/jobs";
3
+ import type { BuildConfigDocker } from ".";
3
4
  export declare const getDockerImageVariables: (context: Context) => {
4
5
  DOCKER_IMAGE_TAG: string;
5
6
  DOCKER_REGISTRY: string;
6
- DOCKER_IMAGE: string;
7
+ DOCKER_IMAGE: import("../bash/BashExpression").StringOrBashExpression;
7
8
  DOCKER_CACHE_IMAGE: string;
8
9
  } | {
9
10
  DOCKER_IMAGE_TAG: string;
@@ -23,56 +24,50 @@ export declare const requiresDockerBuild: ({
23
24
  export declare const getDockerBuildVariables: (context: Context) => {
24
25
  DOCKER_IMAGE_TAG: string;
25
26
  DOCKER_REGISTRY: string;
26
- DOCKER_IMAGE: string;
27
+ DOCKER_IMAGE: import("../bash/BashExpression").StringOrBashExpression;
27
28
  DOCKER_CACHE_IMAGE: string;
28
- DOCKER_HOST: string;
29
- DOCKER_TLS_CERTDIR: string;
30
- DOCKER_DRIVER: string;
31
- DOCKER_BUILDKIT: string;
32
- DOCKERFILE_ADDITIONS: string | undefined;
33
- DOCKERFILE_ADDITIONS_END: string | undefined;
34
29
  APP_DIR: string;
35
30
  DOCKER_DIR: string;
36
- KUBERNETES_CPU_REQUEST: string;
37
- KUBERNETES_MEMORY_REQUEST: string;
38
- KUBERNETES_MEMORY_LIMIT: string;
31
+ DOCKERFILE_ADDITIONS?: undefined;
32
+ DOCKERFILE_ADDITIONS_END?: undefined;
39
33
  } | {
40
34
  DOCKER_IMAGE_TAG: string;
41
35
  DOCKER_REGISTRY: string;
42
36
  DOCKER_CACHE_IMAGE: string;
43
37
  DOCKER_IMAGE_NAME: string;
44
38
  DOCKER_IMAGE: string;
45
- DOCKER_HOST: string;
46
- DOCKER_TLS_CERTDIR: string;
47
- DOCKER_DRIVER: string;
48
- DOCKER_BUILDKIT: string;
39
+ APP_DIR: string;
40
+ DOCKER_DIR: string;
41
+ DOCKERFILE_ADDITIONS?: undefined;
42
+ DOCKERFILE_ADDITIONS_END?: undefined;
43
+ } | {
44
+ DOCKER_IMAGE_TAG: string;
45
+ DOCKER_REGISTRY: string;
46
+ DOCKER_IMAGE: import("../bash/BashExpression").StringOrBashExpression;
47
+ DOCKER_CACHE_IMAGE: string;
48
+ APP_DIR: string;
49
+ DOCKER_DIR: string;
49
50
  DOCKERFILE_ADDITIONS: string | undefined;
50
51
  DOCKERFILE_ADDITIONS_END: string | undefined;
52
+ } | {
53
+ DOCKER_IMAGE_TAG: string;
54
+ DOCKER_REGISTRY: string;
55
+ DOCKER_CACHE_IMAGE: string;
56
+ DOCKER_IMAGE_NAME: string;
57
+ DOCKER_IMAGE: string;
51
58
  APP_DIR: string;
52
59
  DOCKER_DIR: string;
53
- KUBERNETES_CPU_REQUEST: string;
54
- KUBERNETES_MEMORY_REQUEST: string;
55
- KUBERNETES_MEMORY_LIMIT: string;
60
+ DOCKERFILE_ADDITIONS: string | undefined;
61
+ DOCKERFILE_ADDITIONS_END: string | undefined;
56
62
  };
57
63
  export declare const DOCKER_BUILD_JOB_NAME = "\uD83D\uDD28 docker";
58
- export declare const getDockerJobBaseProps: (context: Context) => {
59
- image: string;
60
- services: {
61
- name: string;
62
- command: string[];
63
- }[];
64
- variables: {
65
- DOCKER_HOST: string;
66
- DOCKER_TLS_CERTDIR: string;
67
- DOCKER_DRIVER: string;
68
- DOCKER_BUILDKIT: string;
69
- };
70
- };
71
- export declare type DockerBuildJobDefinition = Partial<CatladderJob>;
64
+ export declare const getDockerJobBaseProps: (context: Context) => Pick<CatladderJob, "image" | "services" | "variables" | "runnerVariables">;
65
+ export type DockerBuildJobDefinition = Partial<CatladderJob>;
72
66
  export declare const createDockerBuildJobBase: (context: Context, {
73
67
  script,
74
68
  ...def
75
69
  }: Partial<CatladderJob>) => CatladderJob;
76
70
  export declare const gitlabDockerLogin: (context: Context) => string[];
77
- export declare const getDockerBuildDefaultScript: (context: Context, ensureDockerFileScript?: string | undefined) => (string | undefined)[];
71
+ export declare const getDockerBuildScriptWithBuiltInDockerFile: (context: Context, defaultType?: BuildConfigDocker["type"]) => (string | undefined)[];
72
+ export declare const getDockerBuildDefaultScript: (context: Context, ensureDockerFileScript?: string | null) => (string | undefined)[];
78
73
  export declare const hasDockerfile: (context: Context) => boolean;
@@ -54,8 +54,10 @@ var __importDefault = this && this.__importDefault || function (mod) {
54
54
  "default": mod
55
55
  };
56
56
  };
57
- exports.__esModule = true;
58
- exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.gitlabDockerLogin = exports.createDockerBuildJobBase = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
57
+ Object.defineProperty(exports, "__esModule", {
58
+ value: true
59
+ });
60
+ exports.hasDockerfile = exports.getDockerBuildDefaultScript = exports.getDockerBuildScriptWithBuiltInDockerFile = exports.gitlabDockerLogin = exports.createDockerBuildJobBase = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
59
61
  var lodash_1 = require("lodash");
60
62
  var deploy_1 = require("../deploy");
61
63
  var runner_1 = require("../runner");
@@ -64,7 +66,7 @@ var path_1 = __importDefault(require("path"));
64
66
  var gitlab_1 = require("../utils/gitlab");
65
67
  var artifactsRegistry_1 = require("../deploy/cloudRun/artifactsRegistry");
66
68
  var gcloudServiceAccountLoginCommands_1 = require("../deploy/cloudRun/utils/gcloudServiceAccountLoginCommands");
67
- var DOCKER_RUNNER_BUILD_VARIABLES = {
69
+ var DOCKER_BUILD_RUNNER_REQUESTS = {
68
70
  KUBERNETES_CPU_REQUEST: "0.5",
69
71
  KUBERNETES_MEMORY_REQUEST: "1Gi",
70
72
  KUBERNETES_MEMORY_LIMIT: "2Gi"
@@ -95,22 +97,30 @@ var requiresDockerBuild = function (_a) {
95
97
  return (0, deploy_1.isOfDeployType)(deploy, "kubernetes", "google-cloudrun", "dockerTag") || (0, deploy_1.isOfDeployType)(deploy, "custom") && deploy.requiresDocker;
96
98
  };
97
99
  exports.requiresDockerBuild = requiresDockerBuild;
98
- var getDockerBaseVariables = function () {
100
+ // those need to be runner variables
101
+ var getDockerBuildRunnerVariables = function () {
99
102
  return {
100
103
  DOCKER_HOST: "tcp://0.0.0.0:2375",
101
104
  DOCKER_TLS_CERTDIR: "",
102
105
  DOCKER_DRIVER: "overlay2",
103
- DOCKER_BUILDKIT: "1"
106
+ DOCKER_BUILDKIT: "1" // see https://docs.docker.com/develop/develop-images/build_enhancements/
107
+ };
108
+ };
109
+
110
+ var getDockerAdditions = function (build) {
111
+ var _a, _b;
112
+ if (!("docker" in build)) return {};
113
+ if (!build.docker) return {};
114
+ return {
115
+ DOCKERFILE_ADDITIONS: "additionsBegin" in build.docker ? (_a = build.docker.additionsBegin) === null || _a === void 0 ? void 0 : _a.join("\n") : undefined,
116
+ DOCKERFILE_ADDITIONS_END: "additionsEnd" in build.docker ? (_b = build.docker.additionsEnd) === null || _b === void 0 ? void 0 : _b.join("\n") : undefined
104
117
  };
105
118
  };
106
119
  var getDockerBuildVariables = function (context) {
107
- var _a, _b, _c, _d;
108
- return __assign(__assign(__assign(__assign({}, DOCKER_RUNNER_BUILD_VARIABLES), {
109
- DOCKERFILE_ADDITIONS: (_b = (_a = context.componentConfig.build.docker) === null || _a === void 0 ? void 0 : _a.additionsBegin) === null || _b === void 0 ? void 0 : _b.join("\n"),
110
- DOCKERFILE_ADDITIONS_END: (_d = (_c = context.componentConfig.build.docker) === null || _c === void 0 ? void 0 : _c.additionsEnd) === null || _d === void 0 ? void 0 : _d.join("\n"),
120
+ return __assign(__assign(__assign({}, getDockerAdditions(context.componentConfig.build)), {
111
121
  APP_DIR: context.componentConfig.dir,
112
122
  DOCKER_DIR: "."
113
- }), getDockerBaseVariables()), (0, exports.getDockerImageVariables)(context));
123
+ }), (0, exports.getDockerImageVariables)(context));
114
124
  };
115
125
  exports.getDockerBuildVariables = getDockerBuildVariables;
116
126
  exports.DOCKER_BUILD_JOB_NAME = "๐Ÿ”จ docker";
@@ -119,9 +129,11 @@ var getDockerJobBaseProps = function (context) {
119
129
  image: (0, runner_1.getRunnerImage)("docker-build"),
120
130
  services: [{
121
131
  name: "docker:24.0.6-dind",
132
+ // see see https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27300#note_466755332
122
133
  command: ["--tls=false"]
123
134
  }],
124
- variables: getDockerBaseVariables()
135
+ variables: {},
136
+ runnerVariables: getDockerBuildRunnerVariables()
125
137
  };
126
138
  };
127
139
  exports.getDockerJobBaseProps = getDockerJobBaseProps;
@@ -135,7 +147,8 @@ var createDockerBuildJobBase = function (context, _a) {
135
147
  }, (0, exports.getDockerJobBaseProps)(context)), {
136
148
  script: script || []
137
149
  }), {
138
- variables: (0, exports.getDockerBuildVariables)(context)
150
+ variables: (0, exports.getDockerBuildVariables)(context),
151
+ runnerVariables: __assign(__assign({}, DOCKER_BUILD_RUNNER_REQUESTS), getDockerBuildRunnerVariables())
139
152
  }, def);
140
153
  };
141
154
  exports.createDockerBuildJobBase = createDockerBuildJobBase;
@@ -143,12 +156,24 @@ var gitlabDockerLogin = function (context) {
143
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"];
144
157
  };
145
158
  exports.gitlabDockerLogin = gitlabDockerLogin;
159
+ var BUILT_IN_ENSURE_DOCKERFILE_SCRIPTS = {
160
+ meteor: "ensureMeteorDockerfile",
161
+ node: "ensureNodeDockerfile",
162
+ nginx: "ensureNginxDockerfile",
163
+ custom: null
164
+ };
165
+ var getDockerBuildScriptWithBuiltInDockerFile = function (context, defaultType) {
166
+ 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;
168
+ return (0, exports.getDockerBuildDefaultScript)(context, type ? BUILT_IN_ENSURE_DOCKERFILE_SCRIPTS[type] : null);
169
+ };
170
+ exports.getDockerBuildScriptWithBuiltInDockerFile = getDockerBuildScriptWithBuiltInDockerFile;
146
171
  var getDockerBuildDefaultScript = function (context, ensureDockerFileScript) {
147
- return __spreadArray(__spreadArray(__spreadArray([ensureDockerFileScript], __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/
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/
148
173
  ])), 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);
149
174
  };
150
175
  exports.getDockerBuildDefaultScript = getDockerBuildDefaultScript;
151
176
  var hasDockerfile = function (context) {
152
- return (0, fs_1.existsSync)(path_1["default"].join(context.componentConfig.dir, "Dockerfile"));
177
+ return (0, fs_1.existsSync)(path_1.default.join(context.componentConfig.dir, "Dockerfile"));
153
178
  };
154
179
  exports.hasDockerfile = hasDockerfile;
@@ -4,7 +4,7 @@ import type { CatladderJob } from "../types/jobs";
4
4
  import type { BuildConfig, BuildConfigType } from "./types";
5
5
  export * from "./types";
6
6
  export * from "./node";
7
- export declare type BuildTypes = { [type in BuildConfigType]: {
7
+ export type BuildTypes = { [type in BuildConfigType]: {
8
8
  jobs: (context: Context) => CatladderJob[];
9
9
  defaults: (envContext: EnvironmentContext<BuildConfigType, any>) => Partial<Extract<BuildConfig, {
10
10
  type: type;
@@ -2,12 +2,16 @@
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];
@@ -15,7 +19,9 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
15
19
  var __exportStar = this && this.__exportStar || function (m, exports) {
16
20
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
21
  };
18
- exports.__esModule = true;
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
19
25
  exports.BUILD_TYPES = void 0;
20
26
  var custom_1 = require("./custom");
21
27
  var node_1 = require("./node");
@@ -1,15 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var __assign = this && this.__assign || function () {
4
- __assign = Object.assign || function (t) {
5
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6
- s = arguments[i];
7
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
3
  var __read = this && this.__read || function (o, n) {
14
4
  var m = typeof Symbol === "function" && o[Symbol.iterator];
15
5
  if (!m) return o;
@@ -41,7 +31,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
41
31
  }
42
32
  return to.concat(ar || Array.prototype.slice.call(from));
43
33
  };
44
- exports.__esModule = true;
34
+ Object.defineProperty(exports, "__esModule", {
35
+ value: true
36
+ });
45
37
  exports.createNodeBuildJobs = void 0;
46
38
  var path_1 = require("path");
47
39
  var runner_1 = require("../../runner");
@@ -63,7 +55,7 @@ var createNodeBuildJobs = function (context) {
63
55
  return (0, base_1.createBuildJobs)(context, {
64
56
  appBuild: buildConfig.buildCommand !== null ? {
65
57
  image: (_a = buildConfig.jobImage) !== null && _a !== void 0 ? _a : defaultImage,
66
- variables: __assign({}, constants_1.NODE_RUNNER_BUILD_VARIABLES),
58
+ runnerVariables: constants_1.NODE_RUNNER_BUILD_VARIABLES,
67
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)), false), __read((0, cache_1.getNextCache)(context)), false),
68
60
  script: __spreadArray(__spreadArray([], __read(yarnInstall), false), __read((_c = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _c !== void 0 ? _c : []), false),
69
61
  artifacts: {
@@ -79,7 +71,7 @@ var createNodeBuildJobs = function (context) {
79
71
  jobTags: buildConfig.jobTags
80
72
  } : undefined,
81
73
  dockerBuild: {
82
- script: (0, docker_1.getDockerBuildDefaultScript)(context, buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"),
74
+ script: (0, docker_1.getDockerBuildScriptWithBuiltInDockerFile)(context, buildConfig.type === "node-static" ? "nginx" : "node"),
83
75
  cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
84
76
  variables: {
85
77
  // only required for non static
@@ -36,7 +36,9 @@ var __importDefault = this && this.__importDefault || function (mod) {
36
36
  "default": mod
37
37
  };
38
38
  };
39
- exports.__esModule = true;
39
+ Object.defineProperty(exports, "__esModule", {
40
+ value: true
41
+ });
40
42
  exports.getNextCache = exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
41
43
  var path_1 = require("path");
42
44
  var slugify_1 = __importDefault(require("slugify"));
@@ -52,7 +54,7 @@ var getYarnCache = function (context, policy) {
52
54
  policy: policy,
53
55
  paths: [".yarn"]
54
56
  } : {
55
- key: (0, slugify_1["default"])(context.componentConfig.dir) + "-yarn",
57
+ key: (0, slugify_1.default)(context.componentConfig.dir) + "-yarn",
56
58
  policy: policy,
57
59
  paths: [(0, path_1.join)(context.componentConfig.dir, ".yarn")]
58
60
  }];
@@ -68,7 +70,8 @@ var getNodeModulesCache = function (context, policy) {
68
70
  // It would slow down all pipelines whenever one adds a new dependency as it will need to download all node_modules again.
69
71
  return [{
70
72
  // if component is in a shared workspace, use workspace cache. use individual cache else
71
- key: componentIsInWorkspace ? "node-modules-workspace" : (0, slugify_1["default"])(context.componentConfig.dir) + "-node-modules",
73
+ key: componentIsInWorkspace ? "node-modules-workspace" : (0, slugify_1.default)(context.componentConfig.dir) + "-node-modules",
74
+ // we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
72
75
  policy: policy,
73
76
  paths: __spreadArray([], __read(componentIsInWorkspace ? (0, lodash_1.uniq)(__spreadArray(["node_modules"], __read((_c = (_b = context.packageManagerInfo) === null || _b === void 0 ? void 0 : _b.workspaces.map(function (w) {
74
77
  return (0, path_1.join)(w.location, "node_modules");
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
 
3
- exports.__esModule = true;
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
4
6
  exports.NODE_RUNNER_BUILD_VARIABLES = void 0;
5
7
  exports.NODE_RUNNER_BUILD_VARIABLES = {
6
8
  KUBERNETES_CPU_REQUEST: "0.5",
@@ -31,7 +31,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
31
31
  }
32
32
  return to.concat(ar || Array.prototype.slice.call(from));
33
33
  };
34
- exports.__esModule = true;
34
+ Object.defineProperty(exports, "__esModule", {
35
+ value: true
36
+ });
35
37
  exports.createMeteorJobs = exports.createStorybookJobs = exports.createNodeJobs = void 0;
36
38
  var buildJob_1 = require("./buildJob");
37
39
  var meteor_1 = require("./meteor");
@@ -31,7 +31,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
31
31
  }
32
32
  return to.concat(ar || Array.prototype.slice.call(from));
33
33
  };
34
- exports.__esModule = true;
34
+ Object.defineProperty(exports, "__esModule", {
35
+ value: true
36
+ });
35
37
  exports.createMeteorBuildJobs = void 0;
36
38
  var path_1 = require("path");
37
39
  var runner_1 = require("../../runner");
@@ -58,15 +60,16 @@ var createMeteorBuildJobs = function (context) {
58
60
  cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read(getMeteorCache(context)), false),
59
61
  image: (0, runner_1.getRunnerImage)("jobs-meteor"),
60
62
  variables: {
61
- METEOR_DISABLE_OPTIMISTIC_CACHING: "1"
63
+ METEOR_DISABLE_OPTIMISTIC_CACHING: "1" // see https://forums.meteor.com/t/veeery-long-building-time-inside-docker-container/58673/17?u=macrozone
62
64
  },
65
+
63
66
  script: __spreadArray(__spreadArray([], __read(yarnInstall), false), ['echo "add healthcheck package"', "meteor add panter:healthroute --allow-superuser", "meteor add qualia:prod-shell --allow-superuser", 'TOOL_NODE_FLAGS="--max_old_space_size=3584 --min_semi_space_size=8 --max_semi_space_size=256 --optimize_for_size" meteor build ./dist --architecture os.linux.x86_64 --allow-superuser --server-only --directory', "cp ./__build_info.json ./dist/bundle/programs/server"], false),
64
67
  artifacts: {
65
68
  paths: [context.componentConfig.dir + "/__build_info.json", context.componentConfig.dir + "/dist"]
66
69
  }
67
70
  } : undefined,
68
71
  dockerBuild: {
69
- script: (0, docker_1.getDockerBuildDefaultScript)(context, "ensureMeteorDockerfile"),
72
+ script: (0, docker_1.getDockerBuildScriptWithBuiltInDockerFile)(context, "meteor"),
70
73
  variables: {
71
74
  METEOR_INSTALL_SCRIPTS: buildConfig.installScripts ? "true" : ""
72
75
  }
@@ -41,7 +41,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
41
41
  }
42
42
  return to.concat(ar || Array.prototype.slice.call(from));
43
43
  };
44
- exports.__esModule = true;
44
+ Object.defineProperty(exports, "__esModule", {
45
+ value: true
46
+ });
45
47
  exports.createNodeTestJobs = void 0;
46
48
  var runner_1 = require("../../runner");
47
49
  var utils_1 = require("../../utils");
@@ -50,17 +52,19 @@ var constants_1 = require("./constants");
50
52
  var yarn_1 = require("./yarn");
51
53
  var createArtifactsConfig_1 = require("../base/createArtifactsConfig");
52
54
  var createNodeTestJobs = function (context) {
53
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
55
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
54
56
  // don't run tests after release
55
- if (((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.trigger) === "taggedRelease") {
57
+ // TODO: this will be replaced by using rules
58
+ if (context.trigger === "taggedRelease") {
56
59
  return [];
57
60
  }
58
61
  var buildConfig = context.componentConfig.build;
59
62
  var defaultImage = (0, runner_1.getRunnerImage)("jobs-default");
60
63
  var base = {
61
- variables: __assign(__assign(__assign({
64
+ variables: __assign(__assign({
62
65
  APP_PATH: context.componentConfig.dir
63
- }, constants_1.NODE_RUNNER_BUILD_VARIABLES), context.environment.jobOnlyVars.build.envVars), (_b = buildConfig.extraVars) !== null && _b !== void 0 ? _b : {}),
66
+ }, context.environment.jobOnlyVars.build.envVars), (_a = buildConfig.extraVars) !== null && _a !== void 0 ? _a : {}),
67
+ runnerVariables: constants_1.NODE_RUNNER_BUILD_VARIABLES,
64
68
  stage: "test",
65
69
  needs: [],
66
70
  envMode: "none"
@@ -69,26 +73,26 @@ var createNodeTestJobs = function (context) {
69
73
  var auditJob = buildConfig.audit !== false ? __assign(__assign(__assign({
70
74
  name: "๐Ÿ›ก audit"
71
75
  }, base), {
72
- image: (_d = (_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.jobImage) !== null && _d !== void 0 ? _d : defaultImage,
76
+ image: (_c = (_b = buildConfig.audit) === null || _b === void 0 ? void 0 : _b.jobImage) !== null && _c !== void 0 ? _c : defaultImage,
73
77
  cache: undefined,
74
- script: __spreadArray(["cd ".concat(context.componentConfig.dir)], __read((_f = (0, utils_1.ensureArray)((_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.command)) !== null && _f !== void 0 ? _f : [((_g = context.packageManagerInfo) === null || _g === void 0 ? void 0 : _g.isClassic) ? "yarn audit" : "yarn npm audit --environment production" // yarn 2
78
+ script: __spreadArray(["cd ".concat(context.componentConfig.dir)], __read((_e = (0, utils_1.ensureArray)((_d = buildConfig.audit) === null || _d === void 0 ? void 0 : _d.command)) !== null && _e !== void 0 ? _e : [((_f = context.packageManagerInfo) === null || _f === void 0 ? void 0 : _f.isClassic) ? "yarn audit" : "yarn npm audit --environment production" // yarn 2
75
79
  ]), false),
76
80
  allow_failure: true
77
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_h = buildConfig.audit) === null || _h === void 0 ? void 0 : _h.artifactsReports, (_j = buildConfig.audit) === null || _j === void 0 ? void 0 : _j.artifacts)) : null;
81
+ }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_g = buildConfig.audit) === null || _g === void 0 ? void 0 : _g.artifactsReports, (_h = buildConfig.audit) === null || _h === void 0 ? void 0 : _h.artifacts)) : null;
78
82
  var lintJob = buildConfig.lint !== false ? __assign(__assign(__assign({
79
83
  name: "๐Ÿ‘ฎ lint"
80
84
  }, base), {
81
- image: (_l = (_k = buildConfig.lint) === null || _k === void 0 ? void 0 : _k.jobImage) !== null && _l !== void 0 ? _l : defaultImage,
85
+ image: (_k = (_j = buildConfig.lint) === null || _j === void 0 ? void 0 : _j.jobImage) !== null && _k !== void 0 ? _k : defaultImage,
82
86
  cache: (0, cache_1.getNodeCache)(context),
83
- script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, yarn_1.ensureNodeVersion)(context)), false), ["cd ".concat(context.componentConfig.dir)], false), __read(yarnInstall), false), __read((_o = (0, utils_1.ensureArray)((_m = buildConfig.lint) === null || _m === void 0 ? void 0 : _m.command)) !== null && _o !== void 0 ? _o : ["yarn lint"]), false)
84
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_p = buildConfig.lint) === null || _p === void 0 ? void 0 : _p.artifactsReports, (_q = buildConfig.lint) === null || _q === void 0 ? void 0 : _q.artifacts)) : null;
87
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, yarn_1.ensureNodeVersion)(context)), false), ["cd ".concat(context.componentConfig.dir)], false), __read(yarnInstall), false), __read((_m = (0, utils_1.ensureArray)((_l = buildConfig.lint) === null || _l === void 0 ? void 0 : _l.command)) !== null && _m !== void 0 ? _m : ["yarn lint"]), false)
88
+ }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_o = buildConfig.lint) === null || _o === void 0 ? void 0 : _o.artifactsReports, (_p = buildConfig.lint) === null || _p === void 0 ? void 0 : _p.artifacts)) : null;
85
89
  var testJob = buildConfig.test !== false ? __assign(__assign(__assign({
86
90
  name: "๐Ÿงช test"
87
91
  }, base), {
88
- image: (_s = (_r = buildConfig.test) === null || _r === void 0 ? void 0 : _r.jobImage) !== null && _s !== void 0 ? _s : (0, runner_1.getRunnerImage)("jobs-testing-chrome"),
92
+ image: (_r = (_q = buildConfig.test) === null || _q === void 0 ? void 0 : _q.jobImage) !== null && _r !== void 0 ? _r : (0, runner_1.getRunnerImage)("jobs-testing-chrome"),
89
93
  cache: (0, cache_1.getNodeCache)(context),
90
- script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, yarn_1.ensureNodeVersion)(context)), false), ["cd ".concat(context.componentConfig.dir)], false), __read(yarnInstall), false), __read((_u = (0, utils_1.ensureArray)((_t = buildConfig.test) === null || _t === void 0 ? void 0 : _t.command)) !== null && _u !== void 0 ? _u : ["yarn test"]), false)
91
- }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_v = buildConfig.test) === null || _v === void 0 ? void 0 : _v.artifactsReports, (_w = buildConfig.test) === null || _w === void 0 ? void 0 : _w.artifacts)) : null;
94
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, yarn_1.ensureNodeVersion)(context)), false), ["cd ".concat(context.componentConfig.dir)], false), __read(yarnInstall), false), __read((_t = (0, utils_1.ensureArray)((_s = buildConfig.test) === null || _s === void 0 ? void 0 : _s.command)) !== null && _t !== void 0 ? _t : ["yarn test"]), false)
95
+ }), (0, createArtifactsConfig_1.createArtifactsConfig)(context.componentConfig.dir, (_u = buildConfig.test) === null || _u === void 0 ? void 0 : _u.artifactsReports, (_v = buildConfig.test) === null || _v === void 0 ? void 0 : _v.artifacts)) : null;
92
96
  return [auditJob, lintJob, testJob].filter(utils_1.notNil);
93
97
  };
94
98
  exports.createNodeTestJobs = createNodeTestJobs;
@@ -1,6 +1,7 @@
1
+ import { BashExpression } from "../../bash/BashExpression";
1
2
  import type { Context } from "../../types";
2
3
  export declare const ensureNodeVersion: (context: Context) => string[];
3
4
  export declare const getYarnInstall: (context: Context, options?: {
4
5
  noCustomPostInstall: boolean;
5
- } | undefined) => string[];
6
- export declare const getDockerAppCopyAndBuildScript: (context: Context) => string;
6
+ }) => string[];
7
+ export declare const getDockerAppCopyAndBuildScript: (context: Context) => BashExpression;
@@ -31,8 +31,11 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
31
31
  }
32
32
  return to.concat(ar || Array.prototype.slice.call(from));
33
33
  };
34
- exports.__esModule = true;
34
+ Object.defineProperty(exports, "__esModule", {
35
+ value: true
36
+ });
35
37
  exports.getDockerAppCopyAndBuildScript = exports.getYarnInstall = exports.ensureNodeVersion = void 0;
38
+ var BashExpression_1 = require("../../bash/BashExpression");
36
39
  var utils_1 = require("../../utils");
37
40
  var gitlab_1 = require("../../utils/gitlab");
38
41
  var YARN_INSTALL_CLASSIC = "yarn install --frozen-lockfile";
@@ -59,7 +62,7 @@ var DOCKER_COPY_FILES = "COPY --chown=node:node $APP_DIR .";
59
62
  var getDockerAppCopyAndBuildScript = function (context) {
60
63
  var _a;
61
64
  if ((_a = context.packageManagerInfo) === null || _a === void 0 ? void 0 : _a.isClassic) {
62
- return "\nRUN ".concat(YARN_INSTALL_CLASSIC, " --production --ignore-scripts\n").concat(DOCKER_COPY_FILES, "\nRUN ").concat(YARN_INSTALL_CLASSIC, " --production \n ").trim();
65
+ return new BashExpression_1.BashExpression("\nRUN ".concat(YARN_INSTALL_CLASSIC, " --production --ignore-scripts\n").concat(DOCKER_COPY_FILES, "\nRUN ").concat(YARN_INSTALL_CLASSIC, " --production \n ").trim());
63
66
  }
64
67
  // yarn >= 4 ships with build in plugins, see https://github.com/yarnpkg/berry/pull/4253
65
68
  // trying to import those fail on this version
@@ -70,6 +73,6 @@ var getDockerAppCopyAndBuildScript = function (context) {
70
73
  var maybeAddWorkspaceToolsCommand = doesNotShipWithBuiltInPlugins ? "RUN yarn plugin import workspace-tools" : "";
71
74
  // copy first everything and then install
72
75
  // rebuild first does not work as it will run postinstall and that might require files in the app
73
- return "\n".concat(DOCKER_COPY_FILES, "\n").concat(maybeAddWorkspaceToolsCommand, "\nRUN ").concat(YARN_BERRY_PROD_REBUILD, "\n\n ").trim();
76
+ return new BashExpression_1.BashExpression("\n".concat(DOCKER_COPY_FILES, "\n").concat(maybeAddWorkspaceToolsCommand, "\nRUN ").concat(YARN_BERRY_PROD_REBUILD, "\n\n ").trim());
74
77
  };
75
78
  exports.getDockerAppCopyAndBuildScript = getDockerAppCopyAndBuildScript;
@@ -41,7 +41,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
41
41
  }
42
42
  return to.concat(ar || Array.prototype.slice.call(from));
43
43
  };
44
- exports.__esModule = true;
44
+ Object.defineProperty(exports, "__esModule", {
45
+ value: true
46
+ });
45
47
  exports.createRailsBuildJobs = void 0;
46
48
  var base_1 = require("../base");
47
49
  var docker_1 = require("../docker");
@@ -74,7 +76,7 @@ var createRailsBuildJobs = function (context) {
74
76
  dockerBuild: {
75
77
  variables: __assign(__assign({}, context.environment.jobOnlyVars.build.envVars), context.componentConfig.build.extraVars),
76
78
  // custom script
77
- script: __spreadArray(__spreadArray([], __read((0, docker_1.gitlabDockerLogin)(context)), false), ["docker pull $DOCKER_CACHE_IMAGE || true", "wget --output-document=- https://github.com/buildpacks/pack/releases/download/v".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "/pack-v").concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "-linux.tgz | tar -zx --directory /usr/local/bin pack"), "chmod +x /usr/local/bin/pack",
79
+ script: __spreadArray(__spreadArray([], __read((0, docker_1.gitlabDockerLogin)(context)), false), ["cd ".concat(context.componentConfig.dir), "docker pull $DOCKER_CACHE_IMAGE || true", "wget --output-document=- https://github.com/buildpacks/pack/releases/download/v".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "/pack-v").concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "-linux.tgz | tar -zx --directory /usr/local/bin pack"), "chmod +x /usr/local/bin/pack",
78
80
  // replace private git ssh gem sources with https to make bundler with credentials via env var work
79
81
  "sed --in-place 's|git@\\([^:]*\\):|https://\\1/|g' Gemfile Gemfile.lock", "pack build \"$DOCKER_IMAGE:$DOCKER_IMAGE_TAG\" --builder '".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.image, "' --publish --cache-image \"$DOCKER_CACHE_IMAGE\" ").concat(packEnvArgs, " ").concat((_c = (_b = cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packExtraArgs) === null || _b === void 0 ? void 0 : _b.join(" ")) !== null && _c !== void 0 ? _c : "")], false)
80
82
  }
@@ -31,7 +31,9 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
31
31
  }
32
32
  return to.concat(ar || Array.prototype.slice.call(from));
33
33
  };
34
- exports.__esModule = true;
34
+ Object.defineProperty(exports, "__esModule", {
35
+ value: true
36
+ });
35
37
  exports.createRailsJobs = void 0;
36
38
  var build_1 = require("./build");
37
39
  var test_1 = require("./test");