@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-prettier-cbceeed9

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 (275) hide show
  1. package/bin/catladder-gitlab-dev.js +3 -0
  2. package/bin/catladder-gitlab.js +1 -1
  3. package/dist/build/base/createBuildJob.d.ts +2 -2
  4. package/dist/build/base/createBuildJob.js +15 -30
  5. package/dist/build/base/writeBuildInfo.d.ts +2 -0
  6. package/dist/build/base/{getBuildInfo.js → writeBuildInfo.js} +3 -6
  7. package/dist/build/custom/buildJob.d.ts +3 -0
  8. package/dist/build/custom/buildJob.js +83 -0
  9. package/dist/build/custom/index.d.ts +3 -0
  10. package/dist/build/custom/index.js +40 -0
  11. package/dist/build/docker.d.ts +33 -9
  12. package/dist/build/docker.js +51 -54
  13. package/dist/build/index.d.ts +6 -5
  14. package/dist/build/index.js +20 -6
  15. package/dist/build/node/buildJob.d.ts +2 -2
  16. package/dist/build/node/buildJob.js +3 -25
  17. package/dist/build/node/cache.d.ts +2 -2
  18. package/dist/build/node/cache.js +19 -22
  19. package/dist/build/node/index.d.ts +1 -1
  20. package/dist/build/node/index.js +3 -16
  21. package/dist/build/node/meteor.d.ts +1 -1
  22. package/dist/build/node/meteor.js +9 -20
  23. package/dist/build/node/testJob.d.ts +2 -2
  24. package/dist/build/node/testJob.js +7 -21
  25. package/dist/build/node/yarn.d.ts +1 -1
  26. package/dist/build/node/yarn.js +14 -15
  27. package/dist/build/rails/build.d.ts +3 -0
  28. package/dist/build/rails/build.js +51 -0
  29. package/dist/build/rails/index.d.ts +3 -0
  30. package/dist/build/rails/index.js +41 -0
  31. package/dist/build/rails/test.d.ts +3 -0
  32. package/dist/build/rails/test.js +94 -0
  33. package/dist/build/types.d.ts +84 -9
  34. package/dist/build/types.js +0 -4
  35. package/dist/bundles/catladder-gitlab/index.js +32979 -0
  36. package/dist/catladder-gitlab.js +7 -26
  37. package/dist/config/{configruedEnvs.test.d.ts → __tests__/configruedEnvs.test.d.ts} +0 -0
  38. package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +10 -12
  39. package/dist/config/configruedEnvs.d.ts +1 -1
  40. package/dist/config/configruedEnvs.js +7 -22
  41. package/dist/config/index.js +0 -4
  42. package/dist/config/readConfig.d.ts +1 -1
  43. package/dist/config/readConfig.js +2 -13
  44. package/dist/constants.js +1 -1
  45. package/dist/context/{resolveReferences.test.d.ts → __tests__/resolveReferences.test.d.ts} +0 -0
  46. package/dist/context/__tests__/resolveReferences.test.js +336 -0
  47. package/dist/context/getEnvConfig.d.ts +2 -0
  48. package/dist/context/getEnvConfig.js +18 -0
  49. package/dist/context/getEnvType.d.ts +4 -0
  50. package/dist/context/getEnvType.js +13 -0
  51. package/dist/context/getEnvironment.d.ts +3 -0
  52. package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +42 -84
  53. package/dist/context/getEnvironmentContext.d.ts +4 -0
  54. package/dist/context/getEnvironmentContext.js +33 -0
  55. package/dist/context/getEnvironmentVariables.d.ts +10 -0
  56. package/dist/context/getEnvironmentVariables.js +260 -0
  57. package/dist/context/getLabels.d.ts +8 -0
  58. package/dist/context/getLabels.js +38 -0
  59. package/dist/context/index.d.ts +5 -6
  60. package/dist/context/index.js +158 -208
  61. package/dist/context/resolveReferences.d.ts +1 -3
  62. package/dist/context/resolveReferences.js +213 -52
  63. package/dist/defaults/index.d.ts +1 -1
  64. package/dist/deploy/base.d.ts +4 -2
  65. package/dist/deploy/base.js +38 -33
  66. package/dist/deploy/cloudRun/deployJob.d.ts +3 -0
  67. package/dist/deploy/cloudRun/deployJob.js +238 -0
  68. package/dist/deploy/cloudRun/index.d.ts +4 -0
  69. package/dist/deploy/cloudRun/index.js +112 -0
  70. package/dist/deploy/cloudRun/utils/createArgsString.d.ts +11 -0
  71. package/dist/deploy/cloudRun/utils/createArgsString.js +55 -0
  72. package/dist/deploy/cloudRun/utils/database.d.ts +4 -0
  73. package/dist/deploy/cloudRun/utils/database.js +64 -0
  74. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
  75. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +10 -0
  76. package/dist/deploy/cloudRun/utils/jobName.d.ts +1 -0
  77. package/dist/deploy/cloudRun/utils/jobName.js +8 -0
  78. package/dist/deploy/custom/deployJob.d.ts +2 -2
  79. package/dist/deploy/custom/deployJob.js +10 -16
  80. package/dist/deploy/custom/index.d.ts +2 -1
  81. package/dist/deploy/custom/index.js +14 -19
  82. package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
  83. package/dist/deploy/dockerTag/deployJob.js +24 -0
  84. package/dist/deploy/dockerTag/index.d.ts +2 -0
  85. package/dist/deploy/dockerTag/index.js +17 -0
  86. package/dist/deploy/index.d.ts +12 -8
  87. package/dist/deploy/index.js +7 -20
  88. package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +4 -0
  89. package/dist/deploy/kubernetes/additionalSecretKeys.js +24 -0
  90. package/dist/deploy/kubernetes/cloudSql/index.d.ts +13 -0
  91. package/dist/deploy/kubernetes/cloudSql/index.js +30 -0
  92. package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
  93. package/dist/deploy/kubernetes/deployJob.js +17 -91
  94. package/dist/deploy/kubernetes/index.d.ts +3 -1
  95. package/dist/deploy/kubernetes/index.js +42 -4
  96. package/dist/deploy/kubernetes/kubeEnv.d.ts +9 -0
  97. package/dist/deploy/kubernetes/kubeEnv.js +72 -0
  98. package/dist/deploy/kubernetes/kubeValues.d.ts +97 -0
  99. package/dist/deploy/kubernetes/kubeValues.js +124 -0
  100. package/dist/deploy/kubernetes/mongodb.d.ts +18 -5
  101. package/dist/deploy/kubernetes/mongodb.js +96 -10
  102. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +25 -21
  103. package/dist/deploy/kubernetes/processSecretsAsFiles.js +2 -10
  104. package/dist/deploy/types/base.d.ts +14 -0
  105. package/dist/deploy/types/base.js +3 -0
  106. package/dist/deploy/types/custom.d.ts +33 -0
  107. package/dist/deploy/types/custom.js +3 -0
  108. package/dist/deploy/types/dockerTag.d.ts +10 -0
  109. package/dist/deploy/types/dockerTag.js +3 -0
  110. package/dist/deploy/types/googleCloudRun.d.ts +121 -0
  111. package/dist/deploy/types/googleCloudRun.js +3 -0
  112. package/dist/deploy/types/index.d.ts +22 -0
  113. package/dist/deploy/types/index.js +31 -0
  114. package/dist/deploy/types/kubernetes.d.ts +276 -0
  115. package/dist/deploy/types/kubernetes.js +3 -0
  116. package/dist/deploy/utils.d.ts +2 -2
  117. package/dist/deploy/utils.js +3 -10
  118. package/dist/index.js +0 -10
  119. package/dist/pipeline/commitInfo/getBuildId.d.ts +1 -0
  120. package/dist/pipeline/commitInfo/getBuildId.js +135 -0
  121. package/dist/pipeline/commitInfo/getCommitInfo.d.ts +2 -0
  122. package/dist/pipeline/commitInfo/getCommitInfo.js +140 -0
  123. package/dist/pipeline/createAllJobs.d.ts +8 -0
  124. package/dist/{build/tests/storybook.test.js → pipeline/createAllJobs.js} +54 -104
  125. package/dist/pipeline/createChildPipeline.d.ts +2 -2
  126. package/dist/pipeline/createChildPipeline.js +40 -121
  127. package/dist/pipeline/createJobsForComponent.d.ts +3 -0
  128. package/dist/pipeline/{createJobs.js → createJobsForComponent.js} +33 -192
  129. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +14 -0
  130. package/dist/pipeline/gitlab/createGitlabJobs.js +260 -0
  131. package/dist/pipeline/index.d.ts +1 -1
  132. package/dist/pipeline/index.js +1 -5
  133. package/dist/pipeline/packageManager.d.ts +1 -1
  134. package/dist/pipeline/packageManager.js +20 -173
  135. package/dist/pipeline/yarn/yarnUtils.d.ts +4 -0
  136. package/dist/pipeline/yarn/yarnUtils.js +193 -0
  137. package/dist/rules/index.d.ts +3 -1
  138. package/dist/rules/index.js +7 -6
  139. package/dist/runner/index.d.ts +2 -3
  140. package/dist/runner/index.js +0 -3
  141. package/dist/tsconfig.tsbuildinfo +1 -1
  142. package/dist/types/config.d.ts +19 -25
  143. package/dist/types/config.js +6 -16
  144. package/dist/types/context.d.ts +16 -3
  145. package/dist/types/environmentContext.d.ts +28 -0
  146. package/dist/types/environmentContext.js +3 -0
  147. package/dist/types/gitlab-types.d.ts +39 -7
  148. package/dist/types/index.js +0 -6
  149. package/dist/types/jobs.d.ts +25 -17
  150. package/dist/types/jobs.js +1 -1
  151. package/dist/types/pipeline.d.ts +1 -1
  152. package/dist/types/utils.d.ts +1 -0
  153. package/dist/types/utils.js +3 -0
  154. package/dist/utils/gitlab.d.ts +5 -0
  155. package/dist/utils/gitlab.js +48 -0
  156. package/dist/utils/index.js +5 -15
  157. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +1560 -0
  158. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +1560 -0
  159. package/examples/__snapshots__/cloud-run-non-public.ts.snap +1560 -0
  160. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +3092 -0
  161. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +3103 -0
  162. package/examples/__snapshots__/custom-build-job.ts.snap +1162 -0
  163. package/examples/__snapshots__/custom-envs.ts.snap +261 -0
  164. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +2280 -0
  165. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +4077 -0
  166. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1911 -0
  167. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +1626 -0
  168. package/examples/__utils__/helpers.ts +14 -0
  169. package/examples/cloud-run-memory-limit.ts +28 -0
  170. package/examples/cloud-run-no-cpu-throttling.ts +33 -0
  171. package/examples/cloud-run-non-public.ts +27 -0
  172. package/examples/cloud-run-with-sql-reuse-db.ts +54 -0
  173. package/examples/cloud-run-with-sql.ts +61 -0
  174. package/examples/custom-build-job.ts +28 -0
  175. package/examples/custom-envs.ts +31 -0
  176. package/examples/kubernetes-application-customization.ts +57 -0
  177. package/examples/kubernetes-with-jobs.ts +68 -0
  178. package/examples/rails-k8s-with-worker.ts +95 -0
  179. package/examples/wait-for-other-deploy.ts +36 -0
  180. package/package.json +16 -13
  181. package/scripts/bundle +2 -0
  182. package/src/build/base/createBuildJob.ts +12 -5
  183. package/src/build/base/{getBuildInfo.ts → writeBuildInfo.ts} +2 -2
  184. package/src/build/custom/buildJob.ts +64 -0
  185. package/src/build/custom/index.ts +7 -0
  186. package/src/build/docker.ts +58 -33
  187. package/src/build/index.ts +24 -5
  188. package/src/build/node/buildJob.ts +2 -2
  189. package/src/build/node/cache.ts +19 -8
  190. package/src/build/node/index.ts +1 -1
  191. package/src/build/node/meteor.ts +8 -2
  192. package/src/build/node/testJob.ts +4 -2
  193. package/src/build/node/yarn.ts +21 -10
  194. package/src/build/rails/build.ts +38 -0
  195. package/src/build/rails/index.ts +8 -0
  196. package/src/build/rails/test.ts +86 -0
  197. package/src/build/types.ts +97 -2
  198. package/src/catladder-gitlab.ts +4 -2
  199. package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
  200. package/src/config/configruedEnvs.ts +2 -7
  201. package/src/config/readConfig.ts +1 -1
  202. package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +23 -38
  203. package/src/context/getEnvConfig.ts +21 -0
  204. package/src/context/getEnvType.ts +17 -0
  205. package/src/context/getEnvironment.ts +40 -0
  206. package/src/context/getEnvironmentContext.ts +57 -0
  207. package/src/context/getEnvironmentVariables.ts +155 -0
  208. package/src/context/getLabels.ts +20 -0
  209. package/src/context/index.ts +28 -193
  210. package/src/context/resolveReferences.ts +35 -31
  211. package/src/defaults/index.ts +1 -1
  212. package/src/deploy/base.ts +43 -19
  213. package/src/deploy/cloudRun/deployJob.ts +276 -0
  214. package/src/deploy/cloudRun/index.ts +95 -0
  215. package/src/deploy/cloudRun/utils/createArgsString.ts +26 -0
  216. package/src/deploy/cloudRun/utils/database.ts +55 -0
  217. package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +14 -0
  218. package/src/deploy/cloudRun/utils/jobName.ts +2 -0
  219. package/src/deploy/custom/deployJob.ts +13 -3
  220. package/src/deploy/custom/index.ts +9 -1
  221. package/src/deploy/dockerTag/deployJob.ts +31 -0
  222. package/src/deploy/dockerTag/index.ts +9 -0
  223. package/src/deploy/index.ts +26 -17
  224. package/src/deploy/kubernetes/additionalSecretKeys.ts +23 -0
  225. package/src/deploy/kubernetes/cloudSql/index.ts +28 -0
  226. package/src/deploy/kubernetes/deployJob.ts +21 -78
  227. package/src/deploy/kubernetes/index.ts +42 -1
  228. package/src/deploy/kubernetes/kubeEnv.ts +48 -0
  229. package/src/deploy/kubernetes/kubeValues.ts +96 -0
  230. package/src/deploy/kubernetes/mongodb.ts +104 -7
  231. package/src/deploy/kubernetes/processSecretsAsFiles.ts +1 -1
  232. package/src/deploy/types/base.ts +17 -0
  233. package/src/deploy/types/custom.ts +36 -0
  234. package/src/deploy/types/dockerTag.ts +12 -0
  235. package/src/deploy/types/googleCloudRun.ts +179 -0
  236. package/src/deploy/types/index.ts +28 -0
  237. package/src/deploy/types/kubernetes.ts +301 -0
  238. package/src/deploy/utils.ts +6 -2
  239. package/src/pipeline/commitInfo/getBuildId.ts +6 -0
  240. package/src/pipeline/commitInfo/getCommitInfo.ts +12 -0
  241. package/src/pipeline/createAllJobs.ts +38 -0
  242. package/src/pipeline/createChildPipeline.ts +9 -20
  243. package/src/pipeline/createJobsForComponent.ts +64 -0
  244. package/src/pipeline/gitlab/createGitlabJobs.ts +149 -0
  245. package/src/pipeline/index.ts +1 -1
  246. package/src/pipeline/packageManager.ts +4 -38
  247. package/src/pipeline/yarn/yarnUtils.ts +37 -0
  248. package/src/rules/index.ts +9 -6
  249. package/src/runner/index.ts +2 -1
  250. package/src/types/config.ts +26 -13
  251. package/src/types/context.ts +23 -2
  252. package/src/types/environmentContext.ts +33 -0
  253. package/src/types/gitlab-types.ts +36 -6
  254. package/src/types/jobs.ts +30 -6
  255. package/src/types/pipeline.ts +1 -1
  256. package/src/types/utils.ts +7 -0
  257. package/src/utils/gitlab.ts +23 -0
  258. package/tsconfig.json +3 -1
  259. package/dist/build/base/getBuildInfo.d.ts +0 -2
  260. package/dist/build/tests/storybook.test.d.ts +0 -1
  261. package/dist/context/resolveReferences.test.js +0 -141
  262. package/dist/deploy/kubernetes/cloudsql.d.ts +0 -6
  263. package/dist/deploy/kubernetes/cloudsql.js +0 -16
  264. package/dist/deploy/types.d.ts +0 -196
  265. package/dist/deploy/types.js +0 -16
  266. package/dist/pipeline/createChildPipeline.test.d.ts +0 -1
  267. package/dist/pipeline/createJobs.d.ts +0 -3
  268. package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
  269. package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
  270. package/src/build/tests/storybook.test.ts +0 -54
  271. package/src/deploy/kubernetes/cloudsql.ts +0 -12
  272. package/src/deploy/types.ts +0 -189
  273. package/src/pipeline/createChildPipeline.test.ts +0 -49
  274. package/src/pipeline/createJobs.ts +0 -195
  275. package/src/pipeline/gitlab/makeGitlabJob.ts +0 -16
@@ -0,0 +1,238 @@
1
+ "use strict";
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
+ var __read = this && this.__read || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o),
17
+ r,
18
+ ar = [],
19
+ e;
20
+ try {
21
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
22
+ } catch (error) {
23
+ e = {
24
+ error: error
25
+ };
26
+ } finally {
27
+ try {
28
+ if (r && !r.done && (m = i["return"])) m.call(i);
29
+ } finally {
30
+ if (e) throw e.error;
31
+ }
32
+ }
33
+ return ar;
34
+ };
35
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
36
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
37
+ if (ar || !(i in from)) {
38
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
39
+ ar[i] = from[i];
40
+ }
41
+ }
42
+ return to.concat(ar || Array.prototype.slice.call(from));
43
+ };
44
+ exports.__esModule = true;
45
+ exports.createGoogleCloudRunDeployJobs = void 0;
46
+ var js_yaml_1 = require("js-yaml");
47
+ var lodash_1 = require("lodash");
48
+ var _1 = require(".");
49
+ var docker_1 = require("../../build/docker");
50
+ var getLabels_1 = require("../../context/getLabels");
51
+ var runner_1 = require("../../runner");
52
+ var base_1 = require("../base");
53
+ var types_1 = require("../types");
54
+ var gcloudServiceAccountLoginCommands_1 = require("./utils/gcloudServiceAccountLoginCommands");
55
+ var database_1 = require("./utils/database");
56
+ var gitlab_1 = require("../../utils/gitlab");
57
+ var jobName_1 = require("./utils/jobName");
58
+ var createArgsString_1 = require("./utils/createArgsString");
59
+ var setExtraVarsScripts = function (deployConfig) {
60
+ return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
61
+ };
62
+ var createGoogleCloudRunDeployJobs = function (context) {
63
+ var _a, _b, _c;
64
+ var deployConfig = context.componentConfig.deploy;
65
+ if (deployConfig === false) {
66
+ return [];
67
+ }
68
+ if (!(0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) {
69
+ // should not happen
70
+ throw new Error("deploy config is wrong");
71
+ }
72
+ var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
73
+ var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
74
+ var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
75
+ var gcloudImageName = "".concat(dockerUrl, "/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG");
76
+ var pushImageToArtifactsRegistry = [docker_1.gitlabDockerLogin, "gcloud auth configure-docker ".concat(deployConfig.region, "-docker.pkg.dev"), "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG ".concat(gcloudImageName), "docker push ".concat(gcloudImageName)];
77
+ var allEnvVars = (0, lodash_1.omit)(context.environment.envVars, _1.GCLOUD_DEPLOY_CREDENTIALS_KEY);
78
+ var labelsString = Object.entries((0, getLabels_1.getLabels)(context)).map(function (_a) {
79
+ var _b = __read(_a, 2),
80
+ key = _b[0],
81
+ value = _b[1];
82
+ return "".concat(key, "=").concat(value);
83
+ }).join(",");
84
+ var commonArgs = {
85
+ project: deployConfig.projectId,
86
+ region: deployConfig.region
87
+ };
88
+ var commonDeployArgs = __assign(__assign({
89
+ image: gcloudImageName
90
+ }, commonArgs), {
91
+ "set-cloudsql-instances": deployConfig.cloudSql ? deployConfig.cloudSql.instanceConnectionName : undefined,
92
+ labels: labelsString
93
+ });
94
+ var serviceName = context.environment.fullName.toLowerCase();
95
+ var getFullJobName = function (name) {
96
+ return (0, jobName_1.getCloudRunJobName)(context.environment.fullName, name);
97
+ };
98
+ var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {})
99
+ // filter out disabled jobs
100
+ .filter(function (entry) {
101
+ return Boolean(entry[1]);
102
+ }).map(function (_a) {
103
+ var _b = __read(_a, 2),
104
+ name = _b[0],
105
+ job = _b[1];
106
+ return {
107
+ jobName: getFullJobName(name),
108
+ job: job
109
+ };
110
+ });
111
+ var jobsWithSchedule = jobsWithNames.filter(function (entry) {
112
+ return entry.job.when === "schedule";
113
+ }).map(function (_a) {
114
+ var job = _a.job,
115
+ jobName = _a.jobName;
116
+ return {
117
+ job: job,
118
+ jobName: jobName,
119
+ schedulerName: jobName + "-scheduler"
120
+ };
121
+ });
122
+ var getServiceDeployScript = function (service, nameSuffix) {
123
+ var _a, _b, _c, _d;
124
+ var customConfig = service !== true ? service : undefined;
125
+ var command = service !== true ? (_a = service === null || service === void 0 ? void 0 : service.command) !== null && _a !== void 0 ? _a : context.componentConfig.build.startCommand : undefined;
126
+ var argsString = (0, createArgsString_1.createArgsString)(__assign(__assign({
127
+ // command as empty string resets it to default (uses the image's entrypoint)
128
+ command: command ? '"' + command.split(" ").join(",") + '"' : '""'
129
+ }, commonDeployArgs), {
130
+ "env-vars-file": "____envvars.yaml",
131
+ "min-instances": (_b = customConfig === null || customConfig === void 0 ? void 0 : customConfig.minInstances) !== null && _b !== void 0 ? _b : 0,
132
+ "max-instances": (_c = customConfig === null || customConfig === void 0 ? void 0 : customConfig.maxInstances) !== null && _c !== void 0 ? _c : 100,
133
+ "cpu-throttling": (customConfig === null || customConfig === void 0 ? void 0 : customConfig.noCpuThrottling) !== true,
134
+ memory: customConfig === null || customConfig === void 0 ? void 0 : customConfig.memory,
135
+ "allow-unauthenticated": (_d = customConfig === null || customConfig === void 0 ? void 0 : customConfig.allowUnauthenticated) !== null && _d !== void 0 ? _d : true
136
+ }));
137
+ return "gcloud run deploy ".concat(serviceName).concat(nameSuffix !== null && nameSuffix !== void 0 ? nameSuffix : "", " ").concat(argsString);
138
+ };
139
+ var getJobCreateScriptsForJob = function (jobName, job) {
140
+ // due to some oversight from google, jobs create does not accept `--env-vars-file` 🤦
141
+ // lucky, update on the other hand accepts it... so let's just imediatly update it
142
+ // also we cannot upsert a job, so we have to create it and catch the error and then update
143
+ var commonDeployArgsString = (0, createArgsString_1.createArgsString)(__assign(__assign({
144
+ command: '"' + job.command.split(" ").join(",") + '"'
145
+ }, commonDeployArgs), {
146
+ memory: job.memory || "512Mi"
147
+ }));
148
+ var argsString = "".concat(jobName, " ").concat(commonDeployArgsString);
149
+ return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud beta run jobs create ".concat(argsString)])), false), ["gcloud beta run jobs update ".concat(argsString, " --env-vars-file=____envvars.yaml")], false);
150
+ };
151
+ var commonArgsString = (0, createArgsString_1.createArgsString)(commonArgs);
152
+ var getJobCreateScripts = function () {
153
+ return jobsWithNames.map(function (_a) {
154
+ var job = _a.job,
155
+ jobName = _a.jobName;
156
+ return getJobCreateScriptsForJob(jobName, job);
157
+ }).flat();
158
+ };
159
+ var getJobRunScriptForJob = function (jobName) {
160
+ return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgsString);
161
+ };
162
+ var getJobRunScripts = function (when) {
163
+ return jobsWithNames.filter(function (_a) {
164
+ var job = _a.job;
165
+ return job.when === when;
166
+ }).map(function (_a) {
167
+ var jobName = _a.jobName;
168
+ return getJobRunScriptForJob(jobName);
169
+ });
170
+ };
171
+ var getCreateScheduleScripts = function () {
172
+ return jobsWithSchedule.map(function (_a) {
173
+ var job = _a.job,
174
+ jobName = _a.jobName,
175
+ schedulerName = _a.schedulerName;
176
+ var argsString = (0, createArgsString_1.createArgsString)({
177
+ project: deployConfig.projectId,
178
+ location: deployConfig.region,
179
+ schedule: "\"".concat(job.schedule, "\""),
180
+ uri: "\"https://".concat(deployConfig.region, "-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/").concat(deployConfig.projectId, "/jobs/").concat(jobName, ":run\""),
181
+ "http-method": "POST",
182
+ "oauth-service-account-email": "$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com"
183
+ });
184
+ var commonArgs = "http ".concat(schedulerName, " ").concat(argsString);
185
+ return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs create ".concat(commonArgs)])), false), ["gcloud scheduler jobs update ".concat(commonArgs)], false);
186
+ }).flat();
187
+ };
188
+ var getDeleteSchedulesScripts = function () {
189
+ var argsString = (0, createArgsString_1.createArgsString)({
190
+ project: deployConfig.projectId,
191
+ location: deployConfig.region
192
+ });
193
+ return jobsWithSchedule.map(function (_a) {
194
+ var schedulerName = _a.schedulerName;
195
+ return __spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs delete ".concat(schedulerName, " ").concat(argsString)])), false);
196
+ }).flat();
197
+ };
198
+ var getDeleteJobsScripts = function () {
199
+ return jobsWithNames.map(function (_a) {
200
+ var jobName = _a.jobName;
201
+ return "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgsString);
202
+ });
203
+ };
204
+ var deployScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(setExtraVarsScripts(deployConfig)), false), __read(pushImageToArtifactsRegistry), false), ["echo \"$ENV_VARS\" > ____envvars.yaml"], false), __read(deployConfig.cloudSql ? (0, database_1.getDatabaseCreateScript)(context, deployConfig) // we create the db, so that we can also delete it afterwards
205
+ : []), false), __read(getCreateScheduleScripts()), false), __read(getJobCreateScripts()), false), __read(getJobRunScripts("preDeploy")), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(Object.entries((_b = deployConfig.additionalServices) !== null && _b !== void 0 ? _b : {}).map(function (_a) {
206
+ var _b = __read(_a, 2),
207
+ name = _b[0],
208
+ service = _b[1];
209
+ return getServiceDeployScript(service, "-" + name);
210
+ })), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false);
211
+ var stopScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgsString)] : []), false), __read(Object.entries((_c = deployConfig.additionalServices) !== null && _c !== void 0 ? _c : {}).map(function (_a) {
212
+ var _b = __read(_a, 1),
213
+ name = _b[0];
214
+ return "gcloud run services delete ".concat(serviceName, "-").concat(name, " ").concat(commonArgsString);
215
+ })), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
216
+ return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
217
+ artifacts: {
218
+ paths: ["____envvars.yaml"]
219
+ },
220
+ variables: {
221
+ CLOUDSDK_CORE_DISABLE_PROMPTS: "1",
222
+ ENV_VARS: (0, js_yaml_1.dump)(allEnvVars, {
223
+ lineWidth: -1,
224
+ quotingType: "'",
225
+ forceQuotes: true
226
+ })
227
+ },
228
+ image: (0, runner_1.getRunnerImage)("gcloud"),
229
+ script: deployScripts
230
+ }), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
231
+ image: (0, runner_1.getRunnerImage)("gcloud"),
232
+ variables: {
233
+ CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
234
+ },
235
+ script: stopScripts
236
+ })];
237
+ };
238
+ exports.createGoogleCloudRunDeployJobs = createGoogleCloudRunDeployJobs;
@@ -0,0 +1,4 @@
1
+ import type { DeployTypeDefinition } from "..";
2
+ export declare const GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
3
+ export declare const GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
4
+ export declare const GCLOUD_RUN_DEPLOY_TYPE: DeployTypeDefinition<"google-cloudrun">;
@@ -0,0 +1,112 @@
1
+ "use strict";
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
+ var __read = this && this.__read || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o),
17
+ r,
18
+ ar = [],
19
+ e;
20
+ try {
21
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
22
+ } catch (error) {
23
+ e = {
24
+ error: error
25
+ };
26
+ } finally {
27
+ try {
28
+ if (r && !r.done && (m = i["return"])) m.call(i);
29
+ } finally {
30
+ if (e) throw e.error;
31
+ }
32
+ }
33
+ return ar;
34
+ };
35
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
36
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
37
+ if (ar || !(i in from)) {
38
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
39
+ ar[i] = from[i];
40
+ }
41
+ }
42
+ return to.concat(ar || Array.prototype.slice.call(from));
43
+ };
44
+ exports.__esModule = true;
45
+ exports.GCLOUD_RUN_DEPLOY_TYPE = exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = void 0;
46
+ var context_1 = require("../../context");
47
+ var gitlab_1 = require("../../utils/gitlab");
48
+ var deployJob_1 = require("./deployJob");
49
+ var jobName_1 = require("./utils/jobName");
50
+ exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
51
+ exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
52
+ var getCloudSqlVariables = function (_a) {
53
+ var _b, _c, _d, _e;
54
+ var deployConfigRaw = _a.deployConfigRaw,
55
+ environmentSlugPrefix = _a.environmentSlugPrefix,
56
+ env = _a.env,
57
+ componentName = _a.componentName,
58
+ fullConfig = _a.fullConfig;
59
+ if (deployConfigRaw && deployConfigRaw.cloudSql) {
60
+ var DB_NAME = [(_b = deployConfigRaw.cloudSql.dbNamePrefix) !== null && _b !== void 0 ? _b : "".concat(fullConfig.customerName, "-").concat(fullConfig.appName), environmentSlugPrefix, (_c = deployConfigRaw.cloudSql.dbBaseName) !== null && _c !== void 0 ? _c : componentName].filter(Boolean).join("-");
61
+ var additionalQueryParamsString = Object.entries((_d = deployConfigRaw.cloudSql.dbAdditionalQueryParams) !== null && _d !== void 0 ? _d : {}).map(function (_a) {
62
+ var _b = __read(_a, 2),
63
+ key = _b[0],
64
+ value = _b[1];
65
+ return "&".concat(key, "=").concat(value);
66
+ }).join("");
67
+ return {
68
+ CLOUD_SQL_INSTANCE_CONNECTION_NAME: deployConfigRaw.cloudSql.instanceConnectionName,
69
+ DB_NAME: DB_NAME,
70
+ DB_USER: (_e = deployConfigRaw.cloudSql.dbUser) !== null && _e !== void 0 ? _e : "postgres",
71
+ DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
72
+ DATABASE_URL: "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME".concat(additionalQueryParamsString),
73
+ DATABASE_JDBC_URL: "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD".concat(additionalQueryParamsString)
74
+ };
75
+ }
76
+ return {};
77
+ };
78
+ exports.GCLOUD_RUN_DEPLOY_TYPE = {
79
+ jobs: deployJob_1.createGoogleCloudRunDeployJobs,
80
+ defaults: function (_a) {
81
+ var deployConfigRaw = _a.deployConfigRaw,
82
+ envType = _a.envType;
83
+ if (deployConfigRaw && deployConfigRaw.cloudSql) {
84
+ return {
85
+ cloudSql: {
86
+ deleteDatabaseOnStop: envType === "review"
87
+ }
88
+ };
89
+ }
90
+ return {};
91
+ },
92
+ additionalSecretKeys: function (ctx) {
93
+ return __spreadArray([exports.GCLOUD_DEPLOY_CREDENTIALS_KEY], __read(ctx.deployConfigRaw && ctx.deployConfigRaw.cloudSql ? ["DB_PASSWORD"] : []), false);
94
+ },
95
+ getAdditionalEnvVars: function (ctx) {
96
+ var _a;
97
+ var fullName = ctx.fullName,
98
+ env = ctx.env,
99
+ componentName = ctx.componentName,
100
+ deployConfigRaw = ctx.deployConfigRaw;
101
+ var HOST_CANONICAL = fullName.toLowerCase() + "-" + ((_a = process.env[(0, context_1.getSecretVarName)(env, componentName, exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX)]) !== null && _a !== void 0 ? _a : "unknown-host.example.com");
102
+ var jobTriggers = deployConfigRaw && deployConfigRaw.jobs ? Object.fromEntries(Object.entries(deployConfigRaw.jobs).map(function (_a) {
103
+ var _b = __read(_a, 2),
104
+ name = _b[0],
105
+ job = _b[1];
106
+ return ["CLOUD_RUN_JOB_TRIGGER_URL_" + (0, gitlab_1.sanitizeForBashVariable)(name), "https://".concat(deployConfigRaw.region, "-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/").concat(deployConfigRaw.projectId, "/jobs/").concat((0, jobName_1.getCloudRunJobName)(fullName, name), ":run")];
107
+ })) : {};
108
+ return __assign(__assign({
109
+ HOST_CANONICAL: HOST_CANONICAL
110
+ }, getCloudSqlVariables(ctx)), jobTriggers);
111
+ }
112
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * creates arguments string:
3
+ *
4
+ * --key=value
5
+ *
6
+ * - undefined or null values will get removed completly
7
+ * - true will just be "--key"
8
+ * @param args args record
9
+ * @returns
10
+ */
11
+ export declare const createArgsString: (args: Record<string, string | number | true | false | undefined>) => string;
@@ -0,0 +1,55 @@
1
+ "use strict";
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
+ exports.__esModule = true;
26
+ exports.createArgsString = void 0;
27
+ var lodash_1 = require("lodash");
28
+ /**
29
+ * creates arguments string:
30
+ *
31
+ * --key=value
32
+ *
33
+ * - undefined or null values will get removed completly
34
+ * - true will just be "--key"
35
+ * @param args args record
36
+ * @returns
37
+ */
38
+ var createArgsString = function (args) {
39
+ return Object.entries(args).filter(function (_a) {
40
+ var _b = __read(_a, 2),
41
+ value = _b[1];
42
+ return !(0, lodash_1.isNil)(value);
43
+ }).map(function (_a) {
44
+ var _b = __read(_a, 2),
45
+ key = _b[0],
46
+ value = _b[1];
47
+ if (value === true) {
48
+ return "--".concat(key);
49
+ } else if (value === false) {
50
+ return "--no-".concat(key);
51
+ }
52
+ return "--".concat(key, "=").concat(value);
53
+ }).join(" ");
54
+ };
55
+ exports.createArgsString = createArgsString;
@@ -0,0 +1,4 @@
1
+ import type { Context } from "../../../types";
2
+ import type { DeployConfigCloudRun } from "../../types";
3
+ export declare const getDatabaseDeleteScript: (context: Context, deployConfig: DeployConfigCloudRun) => string[];
4
+ export declare const getDatabaseCreateScript: (context: Context, deployConfig: DeployConfigCloudRun) => string[];
@@ -0,0 +1,64 @@
1
+ "use strict";
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
+ exports.__esModule = true;
26
+ exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
27
+ var gitlab_1 = require("../../../utils/gitlab");
28
+ var getDatabaseDeleteScript = function (context, deployConfig) {
29
+ var _a;
30
+ if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
31
+ throw new Error("not possible");
32
+ }
33
+ var DB_NAME = ((_a = context.environment.envVars) !== null && _a !== void 0 ? _a : {}).DB_NAME;
34
+ if (!DB_NAME) {
35
+ throw new Error("error: env vars did not specify DB_NAME");
36
+ }
37
+ var _b = __read(deployConfig.cloudSql.instanceConnectionName.split(":"), 3),
38
+ projectId = _b[0],
39
+ region = _b[1],
40
+ instanceId = _b[2];
41
+ // unfortunatly the database cannot be deleted right after the service has stopped, as it might still have connections
42
+ // we have to repeate this process
43
+ return ["echo \"deleting database ".concat(DB_NAME, "...\""), "echo \"\uD83D\uDC46 this can take multiple attemps (3-5min), because google cloud run may still have a connection to the database after the cloud run service is shut down\"", (0, gitlab_1.repeatOnFailure)("gcloud sql databases delete ".concat(DB_NAME, " --instance=").concat(instanceId, " --project ").concat(projectId), {
44
+ pauseInSeconds: 10
45
+ })];
46
+ };
47
+ exports.getDatabaseDeleteScript = getDatabaseDeleteScript;
48
+ var getDatabaseCreateScript = function (context, deployConfig) {
49
+ var _a;
50
+ if (!deployConfig.cloudSql) {
51
+ throw new Error("not possible");
52
+ }
53
+ var DB_NAME = ((_a = context.environment.envVars) !== null && _a !== void 0 ? _a : {}).DB_NAME;
54
+ if (!DB_NAME) {
55
+ throw new Error("error: env vars did not specify DB_NAME");
56
+ }
57
+ var _b = __read(deployConfig.cloudSql.instanceConnectionName.split(":"), 3),
58
+ projectId = _b[0],
59
+ region = _b[1],
60
+ instanceId = _b[2];
61
+ // may fail if it already exists
62
+ return (0, gitlab_1.allowFailureInScripts)(["echo \"ensuring Database...\"", "gcloud sql databases create ".concat(DB_NAME, " --instance=").concat(instanceId, " --project ").concat(projectId)]);
63
+ };
64
+ exports.getDatabaseCreateScript = getDatabaseCreateScript;
@@ -0,0 +1,2 @@
1
+ import type { Context } from "../../../types";
2
+ export declare const gcloudServiceAccountLoginCommands: (context: Context) => string[];
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.gcloudServiceAccountLoginCommands = void 0;
5
+ var __1 = require("..");
6
+ var context_1 = require("../../../context");
7
+ var gcloudServiceAccountLoginCommands = function (context) {
8
+ return ["echo $".concat((0, context_1.getSecretVarNameForContext)(context, __1.GCLOUD_DEPLOY_CREDENTIALS_KEY), " > ./____keyfile.json\n "), "gcloud auth activate-service-account --key-file=\"./____keyfile.json\""];
9
+ };
10
+ exports.gcloudServiceAccountLoginCommands = gcloudServiceAccountLoginCommands;
@@ -0,0 +1 @@
1
+ export declare const getCloudRunJobName: (fullAppName: string, jobName: string) => string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getCloudRunJobName = void 0;
5
+ var getCloudRunJobName = function (fullAppName, jobName) {
6
+ return fullAppName.toLowerCase() + "-" + jobName.toLowerCase();
7
+ };
8
+ exports.getCloudRunJobName = getCloudRunJobName;
@@ -1,3 +1,3 @@
1
- import { Context } from "../../types/context";
2
- import { CatladderJob } from "../../types/jobs";
1
+ import type { Context } from "../../types/context";
2
+ import type { CatladderJob } from "../../types/jobs";
3
3
  export declare const createCustomDeployJobs: (context: Context) => CatladderJob[];
@@ -4,10 +4,9 @@ var __read = this && this.__read || function (o, n) {
4
4
  var m = typeof Symbol === "function" && o[Symbol.iterator];
5
5
  if (!m) return o;
6
6
  var i = m.call(o),
7
- r,
8
- ar = [],
9
- e;
10
-
7
+ r,
8
+ ar = [],
9
+ e;
11
10
  try {
12
11
  while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
12
  } catch (error) {
@@ -21,10 +20,8 @@ var __read = this && this.__read || function (o, n) {
21
20
  if (e) throw e.error;
22
21
  }
23
22
  }
24
-
25
23
  return ar;
26
24
  };
27
-
28
25
  var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
29
26
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
27
  if (ar || !(i in from)) {
@@ -34,32 +31,29 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
34
31
  }
35
32
  return to.concat(ar || Array.prototype.slice.call(from));
36
33
  };
37
-
38
34
  exports.__esModule = true;
39
35
  exports.createCustomDeployJobs = void 0;
40
-
41
36
  var lodash_1 = require("lodash");
42
-
37
+ var yarn_1 = require("../../build/node/yarn");
38
+ var runner_1 = require("../../runner");
43
39
  var base_1 = require("../base");
44
-
45
40
  var types_1 = require("../types");
46
-
47
41
  var createCustomDeployJobs = function (context) {
42
+ var _a, _b;
48
43
  var deployConfig = context.componentConfig.deploy;
49
-
50
44
  if (deployConfig === false) {
51
45
  return [];
52
46
  }
53
-
54
47
  if (!(0, types_1.isOfDeployType)(deployConfig, "custom")) {
55
48
  // should not happen
56
49
  throw new Error("deploy config is not custom");
57
50
  }
58
-
59
51
  var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
52
+ var yarnInstall = (0, yarn_1.getYarnInstall)(context);
60
53
  return [(0, lodash_1.merge)({}, baseDeploymentJob, {
61
- script: __spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.script), false)
54
+ image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
55
+ cache: (_b = deployConfig.jobCache) !== null && _b !== void 0 ? _b : [],
56
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.requiresYarnInstall ? yarnInstall : []), false), __read(deployConfig.script), false)
62
57
  })];
63
58
  };
64
-
65
59
  exports.createCustomDeployJobs = createCustomDeployJobs;
@@ -1 +1,2 @@
1
- export * from "./deployJob";
1
+ import type { DeployTypeDefinition } from "..";
2
+ export declare const CUSTOM_DEPLOY_TYPE: DeployTypeDefinition<"custom">;
@@ -1,22 +1,17 @@
1
1
  "use strict";
2
2
 
3
- var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- Object.defineProperty(o, k2, {
6
- enumerable: true,
7
- get: function () {
8
- return m[k];
9
- }
10
- });
11
- } : function (o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- });
15
-
16
- var __exportStar = this && this.__exportStar || function (m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
-
20
3
  exports.__esModule = true;
21
-
22
- __exportStar(require("./deployJob"), exports);
4
+ exports.CUSTOM_DEPLOY_TYPE = void 0;
5
+ var deployJob_1 = require("./deployJob");
6
+ exports.CUSTOM_DEPLOY_TYPE = {
7
+ jobs: deployJob_1.createCustomDeployJobs,
8
+ defaults: function () {
9
+ return {};
10
+ },
11
+ additionalSecretKeys: function () {
12
+ return [];
13
+ },
14
+ getAdditionalEnvVars: function () {
15
+ return {};
16
+ }
17
+ };
@@ -0,0 +1,3 @@
1
+ import type { Context } from "../../types/context";
2
+ import type { CatladderJob } from "../../types/jobs";
3
+ export declare const createDockerTagDeployJobs: (context: Context) => CatladderJob[];
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createDockerTagDeployJobs = void 0;
5
+ var lodash_1 = require("lodash");
6
+ var docker_1 = require("../../build/docker");
7
+ var base_1 = require("../base");
8
+ var types_1 = require("../types");
9
+ var createDockerTagDeployJobs = function (context) {
10
+ var deployConfig = context.componentConfig.deploy;
11
+ if (deployConfig === false) {
12
+ return [];
13
+ }
14
+ if (!(0, types_1.isOfDeployType)(deployConfig, "dockerTag")) {
15
+ // should not happen
16
+ throw new Error("deploy config is not dockerTag");
17
+ }
18
+ var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
19
+ var tag = deployConfig.tag;
20
+ return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
21
+ script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_IMAGE:".concat(tag), "docker push $DOCKER_IMAGE:".concat(tag), "echo \"pushed as $DOCKER_IMAGE:".concat(tag, "\"")]
22
+ })];
23
+ };
24
+ exports.createDockerTagDeployJobs = createDockerTagDeployJobs;