@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
@@ -1,49 +0,0 @@
1
- import { Config } from "../types";
2
- import { createChildPipeline } from "./createChildPipeline";
3
-
4
- describe("createChildPipeline", () => {
5
- describe("node-app to kuberntes", () => {
6
- const config: Config = {
7
- appName: "test",
8
- customerName: "pan",
9
- components: {
10
- "my-app": {
11
- dir: "myapp",
12
- build: {
13
- type: "node",
14
- },
15
- deploy: {
16
- type: "kubernetes",
17
- cluster: {
18
- type: "gcloud",
19
- name: "mega-cluster",
20
- projectId: "super-google-project",
21
- region: "ch-blabla",
22
- },
23
- },
24
- },
25
- },
26
- };
27
-
28
- it("creates a pipeline for a single app on the main branch", async () => {
29
- const { image, jobs } = await createChildPipeline(
30
- "gitlab",
31
- "mainBranch",
32
- config
33
- );
34
- expect(image).toEqual(
35
- "git.panter.ch:5001/catladder/catladder/base-pipeline:"
36
- );
37
-
38
- expect(Object.keys(jobs)).toEqual([
39
- "my-app audit",
40
- "my-app lint",
41
- "my-app test",
42
- "dev my-app app-build",
43
- "dev my-app docker-build",
44
- "dev my-app deploy-to-kubernetes",
45
- "dev my-app kubernetes-stop",
46
- ]);
47
- });
48
- });
49
- });
@@ -1,195 +0,0 @@
1
- import { exec } from "child-process-promise";
2
- import { isFunction, isObject } from "lodash";
3
- import { BUILD_TYPES } from "../build";
4
- import { createContext } from "../context";
5
- import { DEPLOY_TYPES } from "../deploy";
6
- import { PipelineJob, PipelineType } from "../types";
7
- import { Config, PipelineTrigger } from "../types/config";
8
- import { CommitInfo, Context } from "../types/context";
9
- import { CatladderJob } from "../types/jobs";
10
- import { notNil } from "../utils";
11
- import { makeGitlabJob } from "./gitlab/makeGitlabJob";
12
- import { getPackageManagerInfo } from "./packageManager";
13
-
14
- const injectDefaultVarsInCustomJobs = (
15
- context: Context,
16
- jobs: CatladderJob[]
17
- ) =>
18
- jobs.map(({ variables, ...job }) => ({
19
- variables: {
20
- ...(context.environment.envVars ?? {}),
21
- ...(variables ?? {}),
22
- },
23
- ...job,
24
- }));
25
- const getCustomJobs = (context: Context) => {
26
- if (!context.componentConfig.customJobs) {
27
- return [];
28
- }
29
- const rawJobs = isFunction(context.componentConfig.customJobs)
30
- ? context.componentConfig.customJobs(context)
31
- : context.componentConfig.customJobs;
32
- return injectDefaultVarsInCustomJobs(context, rawJobs);
33
- };
34
- const createRawJobs = (context: Context): CatladderJob[] => {
35
- if (context.componentConfig.deploy === false) {
36
- return [];
37
- }
38
- const buildJobs =
39
- BUILD_TYPES[context.componentConfig.build.type].jobs(context);
40
- const deployJobs =
41
- DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context);
42
-
43
- const customJobs = getCustomJobs(context);
44
- return [...buildJobs, ...deployJobs, ...customJobs];
45
- };
46
- const getFullJobName = (
47
- name: string,
48
- componentName: string,
49
- env?: string | null
50
- ) => {
51
- if (env) {
52
- return `${componentName} ${name} | ${env} `;
53
- }
54
- return `${componentName} ${name}`;
55
- };
56
-
57
- const getFullReferencedJobName = (
58
- referencedJobName: string,
59
- componentName: string,
60
- env: string,
61
- allRawJobs: CatladderJob[]
62
- ) => {
63
- const referencedJob = allRawJobs.find((j) => j.name === referencedJobName);
64
- if (!referencedJob) {
65
- throw new Error("unknown job referenced: " + referencedJobName);
66
- }
67
- const envToSet = referencedJob.envMode !== "none" ? env : null;
68
- return getFullJobName(referencedJobName, componentName, envToSet);
69
- };
70
- // replaces references to other jobs with the full name
71
- // the full name contains the componentname and the env name (if any)
72
- const replaceReferences = (
73
- job: CatladderJob,
74
- componentName: string,
75
- env: string,
76
- allRawJobs: CatladderJob[]
77
- ): CatladderJob<string> => {
78
- const stage =
79
- job.envMode === "stagePerEnv" ? `${job.stage} ${env}` : job.stage;
80
- return {
81
- ...job,
82
- stage,
83
- needs: job.needs?.map((n) =>
84
- isObject(n)
85
- ? {
86
- job: getFullReferencedJobName(
87
- n.job,
88
- componentName,
89
- env,
90
- allRawJobs
91
- ),
92
- artifacts: n.artifacts,
93
- }
94
- : getFullReferencedJobName(n, componentName, env, allRawJobs)
95
- ),
96
- environment: job.environment?.on_stop
97
- ? {
98
- ...job.environment,
99
- on_stop: getFullReferencedJobName(
100
- job.environment.on_stop,
101
- componentName,
102
- env,
103
- allRawJobs
104
- ),
105
- }
106
- : job.environment,
107
- };
108
- };
109
-
110
- // this can be removed once https://gitlab.com/gitlab-org/gitlab/-/issues/220758 is resolved
111
- const addStageNeeds = (jobs: CatladderJob[]): CatladderJob[] => {
112
- // when a job defines needsStages, we add these as needs
113
- return jobs.map((job) => {
114
- if (!job.needsStages || job.needsStages.length === 0) {
115
- return job;
116
- }
117
-
118
- const neededJobs = jobs
119
- .map((j) => {
120
- const neededStage = job.needsStages?.find((s) => j.stage === s.stage);
121
- if (neededStage) {
122
- return {
123
- job: j.name,
124
- artifacts: neededStage.artifacts ?? false,
125
- };
126
- }
127
- })
128
- .filter(notNil);
129
- return {
130
- ...job,
131
-
132
- needs: [...(job.needs ?? []), ...neededJobs],
133
- };
134
- });
135
- };
136
-
137
- export const createJobs = async <T extends PipelineType>(
138
- type: T,
139
- envs: string[],
140
- config: Config,
141
- componentName: string,
142
- trigger: PipelineTrigger
143
- ): Promise<Record<string, PipelineJob<T>>> => {
144
- const commitInfo: CommitInfo = {
145
- refName: process.env.CI_COMMIT_REF_NAME ?? "unknown",
146
- reviewSlug: process.env.CI_MERGE_REQUEST_IID
147
- ? `mr${process.env.CI_MERGE_REQUEST_IID}`
148
- : "unknown",
149
- buildTime: new Date().toISOString(),
150
- buildId: await exec("git describe --tags || git rev-parse HEAD").then((s) =>
151
- s.stdout.trim()
152
- ),
153
- trigger,
154
- };
155
-
156
- const packageManagerInfo = await getPackageManagerInfo(config, componentName);
157
-
158
- return envs.reduce((acc, env) => {
159
- const context = createContext(
160
- config,
161
- componentName,
162
- env,
163
- commitInfo,
164
- packageManagerInfo
165
- );
166
- const jobs = addStageNeeds(createRawJobs(context));
167
-
168
- const result = {
169
- ...acc,
170
- ...jobs.reduce<Record<string, PipelineJob<T>>>((acc, job) => {
171
- const jobWithResolvedReferences = replaceReferences(
172
- job,
173
- componentName,
174
- env,
175
- jobs
176
- );
177
- const jobName = getFullJobName(
178
- job.name,
179
- componentName,
180
- job.envMode !== "none" ? env : undefined
181
- );
182
- if (type === "gitlab") {
183
- return {
184
- ...acc,
185
- [jobName]: makeGitlabJob(
186
- jobWithResolvedReferences
187
- ) as PipelineJob<T>,
188
- };
189
- }
190
- throw new Error("not supported");
191
- }, {}),
192
- };
193
- return result;
194
- }, {});
195
- };
@@ -1,16 +0,0 @@
1
- import { BASE_RETRY } from "../../defaults";
2
- import { GitlabJobDef } from "../../types";
3
- import { CatladderJob } from "../../types/jobs";
4
-
5
- export const makeGitlabJob = ({
6
- envMode,
7
- needsStages,
8
- name,
9
- ...rest
10
- }: CatladderJob<string>): GitlabJobDef => {
11
- return {
12
- ...rest,
13
- retry: BASE_RETRY,
14
- interruptible: true,
15
- };
16
- };