@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,276 @@
1
+ import type { AllowUnknownProps, DeployConfigBase } from "./base";
2
+ export declare type DeployConfigKubernetesClusterGCloud = {
3
+ type: "gcloud";
4
+ /**
5
+ * gcoud name of the cluster
6
+ */
7
+ name: string;
8
+ /**
9
+ * google cloud project id
10
+ */
11
+ projectId: string;
12
+ /**
13
+ * region
14
+ */
15
+ region: string;
16
+ /**
17
+ * domain of the cluster, for canonical domains without custom host (e.g. review and dev apps)
18
+ */
19
+ domainCanonical?: string;
20
+ };
21
+ export declare type DeployConfigKubernetesCluster = DeployConfigKubernetesClusterGCloud;
22
+ export declare type KubernetesAutoscaleMetricResourceTarget = {
23
+ type: "Utilization";
24
+ averageUtilization: number;
25
+ } | {
26
+ type: "AverageValue";
27
+ averageValue: number | string;
28
+ };
29
+ export declare type KubernetesAutoscaleMetric = {
30
+ type: "Resource";
31
+ resource: {
32
+ name: "cpu" | "memory";
33
+ target: KubernetesAutoscaleMetricResourceTarget;
34
+ };
35
+ };
36
+ export declare type KubernetesAutoscale = {
37
+ minReplicas: number;
38
+ maxReplicas: number;
39
+ /**
40
+ * declare a number of metrics (at least one). Usually you would use cpu as a metric
41
+ */
42
+ metrics: KubernetesAutoscaleMetric[];
43
+ };
44
+ export declare type KubernetesResourcesDef = {
45
+ limits?: {
46
+ cpu?: string;
47
+ memory?: string;
48
+ };
49
+ requests?: {
50
+ cpu?: string;
51
+ memory?: string;
52
+ };
53
+ };
54
+ declare type KubernetesHealthDef = {
55
+ httpGet?: {
56
+ path?: string;
57
+ port?: number;
58
+ httpHeaders?: {
59
+ name: string;
60
+ value: string;
61
+ }[];
62
+ failureThreshold?: number;
63
+ timeoutSeconds?: number;
64
+ periodSeconds?: number;
65
+ successThreshold?: number;
66
+ };
67
+ };
68
+ export declare type KubernetesUpdateStrategy = {
69
+ rollingUpdate: {
70
+ /**
71
+ * how many pods can be created additionally to the target number
72
+ * can be absolute number or percentage.
73
+ * defaults to 1 (kube default is 25%)
74
+ */
75
+ maxSurge: number | string;
76
+ /**
77
+ * how many pods are allowed to be unavailable
78
+ * can be absolute number or percentage
79
+ * defaults to 0 (kube default is 25%)
80
+ */
81
+ maxUnavailable: number | string;
82
+ };
83
+ type: "RollingUpdate";
84
+ };
85
+ export declare type KubernetesWorkerDef = {
86
+ enabled: boolean;
87
+ /**
88
+ * which command to run. defaults to `yarn start`
89
+ */
90
+ command?: string;
91
+ resources?: KubernetesResourcesDef;
92
+ service?: {
93
+ enabled?: boolean;
94
+ };
95
+ };
96
+ export declare type DeployConfigMongodbBase = {
97
+ enabled?: boolean;
98
+ dbName?: string;
99
+ persistence?: {
100
+ /**
101
+ * set premium-rwo for ssd
102
+ */
103
+ storageClass?: "standard-rwo" | "premium-rwo";
104
+ /**
105
+ * size of the volume, defaults to 8Gi
106
+ */
107
+ size?: string;
108
+ };
109
+ resources?: KubernetesResourcesDef;
110
+ };
111
+ export declare type DeployConfigMongodbStandalone = {
112
+ architecture: "standalone";
113
+ };
114
+ export declare type DeployConfigMongodbReplicaset = {
115
+ architecture: "replicaset";
116
+ /**
117
+ * defaults to 2
118
+ */
119
+ replicaCount?: number;
120
+ };
121
+ export declare type DeployConfigMongodb = DeployConfigMongodbBase & (DeployConfigMongodbStandalone | DeployConfigMongodbReplicaset);
122
+ export declare type DeployConfigKubernetesValues = AllowUnknownProps<{
123
+ /**
124
+ * enable cloudsql db. Currently you have to manually set it up
125
+ */
126
+ cloudsql?: {
127
+ enabled: boolean;
128
+ instanceId?: string;
129
+ projectId?: string;
130
+ region?: string;
131
+ };
132
+ /**
133
+ * enable mongodb. The mongodb is deployed using a helm chart.
134
+ * See https://github.com/bitnami/charts/tree/master/bitnami/mongodb
135
+ */
136
+ mongodb?: DeployConfigMongodb;
137
+ /**
138
+ * enable mailhog. Mailhog is a virtual mail server that catches all outgoing mailsl and show them in a mailbox.
139
+ * This is great for development as it prevents to accidentially send out real emails and helps with debugging outgoing mails.
140
+ *
141
+ * It will automaticaly inject a MAIL_URL env var.
142
+ *
143
+ * Turn it of for production.
144
+ */
145
+ mailhog?: {
146
+ enabled: boolean;
147
+ };
148
+ /**
149
+ * post-install/upgrade jobs. These use the app image and have all env vars available.
150
+ * Typically used for migrations and seeds
151
+ */
152
+ jobs?: Record<string, false | AllowUnknownProps<{
153
+ /**
154
+ * the command to execute
155
+ */
156
+ command: string;
157
+ /**
158
+ * comma-separated list of helm hooks, see https://helm.sh/docs/topics/charts_hooks/
159
+ *
160
+ * defaults to post-install,post-upgrade
161
+ */
162
+ hook?: string;
163
+ }>>;
164
+ /**
165
+ * cronjobs that run periodically. These use the app image have all env vars available.
166
+ */
167
+ cronjobs?: Record<string, false | AllowUnknownProps<{
168
+ schedule: string;
169
+ command: string;
170
+ concurrencyPolicy?: "Forbid" | "Allow" | "Replace";
171
+ }>>;
172
+ /**
173
+ * configuration for the application ("Deployment" in kubernetes)
174
+ */
175
+ application?: false | AllowUnknownProps<{
176
+ /**
177
+ * command to start, defaults to build's startCommand
178
+ */
179
+ command?: string;
180
+ /**
181
+ * enable, disable app deployment, defaults to true
182
+ */
183
+ enabled?: boolean;
184
+ /**
185
+ * redirects
186
+ */
187
+ redirects?: AllowUnknownProps<{
188
+ host: string;
189
+ }>[];
190
+ /**
191
+ * Host aliases
192
+ */
193
+ hostAliases?: string[];
194
+ /**
195
+ * how many pods will be started
196
+ */
197
+ replicas?: number;
198
+ /**
199
+ * autoscale the pods horizontally
200
+ */
201
+ autoscale?: KubernetesAutoscale;
202
+ /**
203
+ * the update strategy, see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment
204
+ */
205
+ updateStrategy?: KubernetesUpdateStrategy;
206
+ /**
207
+ * kubernetes resources
208
+ */
209
+ resources?: KubernetesResourcesDef;
210
+ healthRoute?: string;
211
+ startupProbe?: KubernetesHealthDef;
212
+ readinessProbe?: KubernetesHealthDef;
213
+ livenessProbe?: KubernetesHealthDef;
214
+ /**
215
+ * specify a worker. A worker is a separate deployment that runs continously in the background.
216
+ * The worker pod can use the same entry point as the app or a different one (specify command).
217
+ * It has the same environment variables as the application and an additional IS_WORKER="true" variable
218
+ */
219
+ worker?: KubernetesWorkerDef;
220
+ /**
221
+ * kubernetes resources for jobs and cronjobs
222
+ */
223
+ jobDefaults?: {
224
+ resources: KubernetesResourcesDef;
225
+ };
226
+ }>;
227
+ /**
228
+ * load secrets from other components.
229
+ * Use this only in cases where the secret is not known on pipeline-time
230
+ * and only if the component is also in the same cluster.
231
+ *
232
+ * a typical case is reusing mongo_url from other component
233
+ *
234
+ * also make sure that the other component deploys first
235
+ *
236
+ * in all other cases use normal env var handling
237
+ */
238
+ secretsFromOtherComponent?: {
239
+ [envVar: string]: string;
240
+ };
241
+ /**
242
+ * map another services internal endpoint into a env var.
243
+ */
244
+ mapServiceUrlToEnv?: {
245
+ [envVar: string]: string;
246
+ };
247
+ /**
248
+ * Mount secrets as files in the filesystem.
249
+ * These secrets are still available as env vars, but will contain the path of the file instead
250
+ *
251
+ * @deprecated this will be removed in the future, because its very niche and not used
252
+ */
253
+ secretsAsFile?: string[];
254
+ }>;
255
+ export declare type DeployConfigKubernetes = {
256
+ type: "kubernetes";
257
+ /**
258
+ * cluster config to use.
259
+ */
260
+ cluster: DeployConfigKubernetesCluster;
261
+ /**
262
+ * prints out debug info (helm --debug)
263
+ */
264
+ debug?: boolean;
265
+ additionalHelmArgs?: string[];
266
+ /**
267
+ * values to configure the app
268
+ */
269
+ values?: DeployConfigKubernetesValues;
270
+ /**
271
+ * Custom Helm chart location.
272
+ * Not recommended to use.
273
+ */
274
+ chartName?: string;
275
+ } & DeployConfigBase;
276
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
@@ -1,5 +1,5 @@
1
- import { Config, Context } from "../types";
2
- import { DeployConfigKubernetesCluster } from "./types";
1
+ import type { Config, Context } from "../types";
2
+ import type { DeployConfigKubernetesCluster } from "./types";
3
3
  export declare const getFullKubernetesClusterName: (cluster: DeployConfigKubernetesCluster) => string | undefined;
4
4
  export declare const getKubernetesNamespace: (config: Pick<Config, "customerName" | "appName">, env: string) => string;
5
5
  export declare const contextIsStoppable: (context: Context) => boolean;
@@ -2,35 +2,28 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.contextIsStoppable = exports.getKubernetesNamespace = exports.getFullKubernetesClusterName = void 0;
5
-
6
5
  var types_1 = require("./types");
7
-
8
6
  var getFullKubernetesClusterName = function (cluster) {
9
7
  if (cluster.type === "gcloud") {
10
8
  return "gke_".concat(cluster.projectId, "_").concat(cluster.region, "_").concat(cluster.name);
11
9
  }
12
10
  };
13
-
14
11
  exports.getFullKubernetesClusterName = getFullKubernetesClusterName;
15
-
16
12
  var getKubernetesNamespace = function (config, env) {
17
13
  return "".concat(config.customerName, "-").concat(config.appName, "-").concat(env);
18
14
  };
19
-
20
15
  exports.getKubernetesNamespace = getKubernetesNamespace;
21
-
22
16
  var contextIsStoppable = function (context) {
23
17
  var deployConfig = context.componentConfig.deploy;
24
-
25
18
  if ((0, types_1.isOfDeployType)(deployConfig, "kubernetes")) {
26
19
  return true;
27
20
  }
28
-
21
+ if ((0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) {
22
+ return true;
23
+ }
29
24
  if ((0, types_1.isOfDeployType)(deployConfig, "custom") && deployConfig.stopScript) {
30
25
  return true;
31
26
  }
32
-
33
27
  return false;
34
28
  };
35
-
36
29
  exports.contextIsStoppable = contextIsStoppable;
package/dist/index.js CHANGED
@@ -12,25 +12,15 @@ var __createBinding = this && this.__createBinding || (Object.create ? function
12
12
  if (k2 === undefined) k2 = k;
13
13
  o[k2] = m[k];
14
14
  });
15
-
16
15
  var __exportStar = this && this.__exportStar || function (m, exports) {
17
16
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
17
  };
19
-
20
18
  exports.__esModule = true;
21
-
22
19
  __exportStar(require("./pipeline/"), exports);
23
-
24
20
  __exportStar(require("./types"), exports);
25
-
26
21
  __exportStar(require("./rules"), exports);
27
-
28
22
  __exportStar(require("./runner"), exports);
29
-
30
23
  __exportStar(require("./config"), exports);
31
-
32
24
  __exportStar(require("./context"), exports);
33
-
34
25
  __exportStar(require("./build"), exports);
35
-
36
26
  __exportStar(require("./deploy"), exports);
@@ -0,0 +1 @@
1
+ export declare const getBuildId: () => Promise<string>;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P ? value : new P(function (resolve) {
6
+ resolve(value);
7
+ });
8
+ }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) {
11
+ try {
12
+ step(generator.next(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ }
17
+ function rejected(value) {
18
+ try {
19
+ step(generator["throw"](value));
20
+ } catch (e) {
21
+ reject(e);
22
+ }
23
+ }
24
+ function step(result) {
25
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
26
+ }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = this && this.__generator || function (thisArg, body) {
31
+ var _ = {
32
+ label: 0,
33
+ sent: function () {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ },
40
+ f,
41
+ y,
42
+ t,
43
+ g;
44
+ return g = {
45
+ next: verb(0),
46
+ "throw": verb(1),
47
+ "return": verb(2)
48
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
49
+ return this;
50
+ }), g;
51
+ function verb(n) {
52
+ return function (v) {
53
+ return step([n, v]);
54
+ };
55
+ }
56
+ function step(op) {
57
+ if (f) throw new TypeError("Generator is already executing.");
58
+ while (_) try {
59
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
60
+ if (y = 0, t) op = [op[0] & 2, t.value];
61
+ switch (op[0]) {
62
+ case 0:
63
+ case 1:
64
+ t = op;
65
+ break;
66
+ case 4:
67
+ _.label++;
68
+ return {
69
+ value: op[1],
70
+ done: false
71
+ };
72
+ case 5:
73
+ _.label++;
74
+ y = op[1];
75
+ op = [0];
76
+ continue;
77
+ case 7:
78
+ op = _.ops.pop();
79
+ _.trys.pop();
80
+ continue;
81
+ default:
82
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
+ _ = 0;
84
+ continue;
85
+ }
86
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
+ _.label = op[1];
88
+ break;
89
+ }
90
+ if (op[0] === 6 && _.label < t[1]) {
91
+ _.label = t[1];
92
+ t = op;
93
+ break;
94
+ }
95
+ if (t && _.label < t[2]) {
96
+ _.label = t[2];
97
+ _.ops.push(op);
98
+ break;
99
+ }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop();
102
+ continue;
103
+ }
104
+ op = body.call(thisArg, _);
105
+ } catch (e) {
106
+ op = [6, e];
107
+ y = 0;
108
+ } finally {
109
+ f = t = 0;
110
+ }
111
+ if (op[0] & 5) throw op[1];
112
+ return {
113
+ value: op[0] ? op[1] : void 0,
114
+ done: true
115
+ };
116
+ }
117
+ };
118
+ exports.__esModule = true;
119
+ exports.getBuildId = void 0;
120
+ var child_process_promise_1 = require("child-process-promise");
121
+ var getBuildId = function () {
122
+ return __awaiter(void 0, void 0, void 0, function () {
123
+ return __generator(this, function (_a) {
124
+ switch (_a.label) {
125
+ case 0:
126
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("git describe --tags || git rev-parse HEAD").then(function (s) {
127
+ return s.stdout.trim();
128
+ })];
129
+ case 1:
130
+ return [2 /*return*/, _a.sent()];
131
+ }
132
+ });
133
+ });
134
+ };
135
+ exports.getBuildId = getBuildId;
@@ -0,0 +1,2 @@
1
+ import type { CommitInfo } from "../../types";
2
+ export declare const getBaseCommitInfo: () => Promise<Omit<CommitInfo, "trigger">>;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) {
5
+ return value instanceof P ? value : new P(function (resolve) {
6
+ resolve(value);
7
+ });
8
+ }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) {
11
+ try {
12
+ step(generator.next(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ }
17
+ function rejected(value) {
18
+ try {
19
+ step(generator["throw"](value));
20
+ } catch (e) {
21
+ reject(e);
22
+ }
23
+ }
24
+ function step(result) {
25
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
26
+ }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = this && this.__generator || function (thisArg, body) {
31
+ var _ = {
32
+ label: 0,
33
+ sent: function () {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ },
40
+ f,
41
+ y,
42
+ t,
43
+ g;
44
+ return g = {
45
+ next: verb(0),
46
+ "throw": verb(1),
47
+ "return": verb(2)
48
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
49
+ return this;
50
+ }), g;
51
+ function verb(n) {
52
+ return function (v) {
53
+ return step([n, v]);
54
+ };
55
+ }
56
+ function step(op) {
57
+ if (f) throw new TypeError("Generator is already executing.");
58
+ while (_) try {
59
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
60
+ if (y = 0, t) op = [op[0] & 2, t.value];
61
+ switch (op[0]) {
62
+ case 0:
63
+ case 1:
64
+ t = op;
65
+ break;
66
+ case 4:
67
+ _.label++;
68
+ return {
69
+ value: op[1],
70
+ done: false
71
+ };
72
+ case 5:
73
+ _.label++;
74
+ y = op[1];
75
+ op = [0];
76
+ continue;
77
+ case 7:
78
+ op = _.ops.pop();
79
+ _.trys.pop();
80
+ continue;
81
+ default:
82
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
+ _ = 0;
84
+ continue;
85
+ }
86
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
+ _.label = op[1];
88
+ break;
89
+ }
90
+ if (op[0] === 6 && _.label < t[1]) {
91
+ _.label = t[1];
92
+ t = op;
93
+ break;
94
+ }
95
+ if (t && _.label < t[2]) {
96
+ _.label = t[2];
97
+ _.ops.push(op);
98
+ break;
99
+ }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop();
102
+ continue;
103
+ }
104
+ op = body.call(thisArg, _);
105
+ } catch (e) {
106
+ op = [6, e];
107
+ y = 0;
108
+ } finally {
109
+ f = t = 0;
110
+ }
111
+ if (op[0] & 5) throw op[1];
112
+ return {
113
+ value: op[0] ? op[1] : void 0,
114
+ done: true
115
+ };
116
+ }
117
+ };
118
+ exports.__esModule = true;
119
+ exports.getBaseCommitInfo = void 0;
120
+ var getBuildId_1 = require("./getBuildId");
121
+ var getBaseCommitInfo = function () {
122
+ return __awaiter(void 0, void 0, void 0, function () {
123
+ var _a;
124
+ var _b;
125
+ return __generator(this, function (_c) {
126
+ switch (_c.label) {
127
+ case 0:
128
+ _a = {
129
+ refName: (_b = process.env.CI_COMMIT_REF_NAME) !== null && _b !== void 0 ? _b : "unknown",
130
+ reviewSlug: process.env.CI_MERGE_REQUEST_IID ? "mr".concat(process.env.CI_MERGE_REQUEST_IID) : "unknown",
131
+ buildTime: new Date().toISOString()
132
+ };
133
+ return [4 /*yield*/, (0, getBuildId_1.getBuildId)()];
134
+ case 1:
135
+ return [2 /*return*/, (_a.buildId = _c.sent(), _a)];
136
+ }
137
+ });
138
+ });
139
+ };
140
+ exports.getBaseCommitInfo = getBaseCommitInfo;
@@ -0,0 +1,8 @@
1
+ import type { Config, PipelineTrigger } from "../types";
2
+ import type { CatladderJob } from "../types/jobs";
3
+ export declare type AllCatladderJobs = {
4
+ [componentName: string]: {
5
+ [env: string]: Array<CatladderJob>;
6
+ };
7
+ };
8
+ export declare const createAllJobs: (config: Config, trigger: PipelineTrigger) => Promise<AllCatladderJobs>;