@catladder/pipeline 0.0.7 → 1.0.2

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 (211) hide show
  1. package/babel-inline.json +11 -0
  2. package/bin/catladder-gitlab.js +3 -0
  3. package/dist/build/base/constants.d.ts +7 -0
  4. package/dist/build/base/constants.js +11 -0
  5. package/dist/build/base/createBuildJob.d.ts +5 -0
  6. package/dist/build/base/createBuildJob.js +99 -0
  7. package/dist/build/docker.d.ts +5 -0
  8. package/dist/build/docker.js +95 -0
  9. package/dist/build/index.d.ts +12 -0
  10. package/dist/build/index.js +63 -0
  11. package/dist/build/node/buildJob.d.ts +3 -0
  12. package/dist/build/node/buildJob.js +97 -0
  13. package/dist/build/node/cache.d.ts +4 -0
  14. package/dist/build/node/cache.js +67 -0
  15. package/dist/build/node/constants.d.ts +6 -0
  16. package/dist/build/node/constants.js +10 -0
  17. package/dist/build/node/index.d.ts +5 -0
  18. package/dist/build/node/index.js +63 -0
  19. package/dist/build/node/meteor.d.ts +3 -0
  20. package/dist/build/node/meteor.js +103 -0
  21. package/dist/build/node/testJob.d.ts +3 -0
  22. package/dist/build/node/testJob.js +112 -0
  23. package/dist/build/node/yarn.d.ts +2 -0
  24. package/dist/build/node/yarn.js +12 -0
  25. package/dist/build/tests/storybook.test.d.ts +1 -0
  26. package/dist/build/tests/storybook.test.js +221 -0
  27. package/dist/build/types.d.ts +63 -0
  28. package/dist/build/types.js +16 -0
  29. package/dist/catladder-gitlab.d.ts +1 -0
  30. package/dist/catladder-gitlab.js +44 -0
  31. package/dist/config/configruedEnvs.d.ts +4 -0
  32. package/dist/config/configruedEnvs.js +86 -0
  33. package/dist/config/configruedEnvs.test.d.ts +1 -0
  34. package/dist/config/configruedEnvs.test.js +103 -0
  35. package/dist/config/index.d.ts +2 -0
  36. package/dist/config/index.js +24 -0
  37. package/dist/config/readConfig.d.ts +2 -0
  38. package/dist/config/readConfig.js +47 -0
  39. package/dist/constants.d.ts +2 -0
  40. package/dist/constants.js +6 -0
  41. package/dist/context/index.d.ts +5 -0
  42. package/dist/context/index.js +211 -0
  43. package/dist/defaults/index.d.ts +2 -0
  44. package/dist/defaults/index.js +8 -0
  45. package/dist/deploy/base.d.ts +9 -0
  46. package/dist/deploy/base.js +94 -0
  47. package/dist/deploy/index.d.ts +11 -0
  48. package/dist/deploy/index.js +34 -0
  49. package/dist/deploy/kubernetes/cloudsql.d.ts +6 -0
  50. package/dist/deploy/kubernetes/cloudsql.js +16 -0
  51. package/dist/deploy/kubernetes/deployJob.d.ts +3 -0
  52. package/dist/deploy/kubernetes/deployJob.js +148 -0
  53. package/dist/deploy/kubernetes/index.d.ts +1 -0
  54. package/dist/deploy/kubernetes/index.js +22 -0
  55. package/dist/deploy/kubernetes/mongodb.d.ts +15 -0
  56. package/dist/deploy/kubernetes/mongodb.js +23 -0
  57. package/dist/deploy/types.d.ts +92 -0
  58. package/dist/deploy/types.js +16 -0
  59. package/dist/index.d.ts +8 -0
  60. package/dist/index.js +36 -0
  61. package/dist/pipeline/createChildPipeline.d.ts +9 -0
  62. package/dist/pipeline/createChildPipeline.js +266 -0
  63. package/dist/pipeline/createChildPipeline.test.d.ts +1 -0
  64. package/dist/pipeline/createChildPipeline.test.js +199 -0
  65. package/dist/pipeline/createJobs.d.ts +3 -0
  66. package/dist/pipeline/createJobs.js +331 -0
  67. package/dist/pipeline/index.d.ts +2 -0
  68. package/dist/pipeline/index.js +24 -0
  69. package/dist/pipeline/yarnInfo.d.ts +2 -0
  70. package/dist/pipeline/yarnInfo.js +296 -0
  71. package/dist/rules/index.d.ts +3 -0
  72. package/dist/rules/index.js +27 -0
  73. package/dist/runner/index.d.ts +3 -0
  74. package/dist/runner/index.js +12 -0
  75. package/dist/tsconfig.tsbuildinfo +1 -0
  76. package/dist/types/config.d.ts +73 -0
  77. package/dist/types/config.js +80 -0
  78. package/dist/types/context.d.ts +36 -0
  79. package/dist/types/context.js +3 -0
  80. package/dist/types/gitlab-types.d.ts +86 -0
  81. package/dist/types/gitlab-types.js +5 -0
  82. package/dist/{scripts/magic/types → types}/index.d.ts +1 -1
  83. package/dist/types/index.js +26 -0
  84. package/dist/utils/index.d.ts +2 -0
  85. package/dist/utils/index.js +18 -0
  86. package/package.json +30 -9
  87. package/src/build/base/constants.ts +7 -0
  88. package/src/build/base/createBuildJob.ts +46 -0
  89. package/{scripts/magic → src}/build/docker.ts +15 -2
  90. package/src/build/index.ts +42 -0
  91. package/src/build/node/buildJob.ts +54 -0
  92. package/src/build/node/cache.ts +36 -0
  93. package/src/build/node/constants.ts +6 -0
  94. package/src/build/node/index.ts +17 -0
  95. package/src/build/node/meteor.ts +75 -0
  96. package/src/build/node/testJob.ts +80 -0
  97. package/src/build/node/yarn.ts +8 -0
  98. package/src/build/tests/storybook.test.ts +46 -0
  99. package/src/build/types.ts +75 -0
  100. package/src/catladder-gitlab.ts +52 -0
  101. package/src/config/configruedEnvs.test.ts +97 -0
  102. package/src/config/configruedEnvs.ts +56 -0
  103. package/src/config/index.ts +2 -0
  104. package/src/config/readConfig.ts +36 -0
  105. package/src/constants.ts +2 -0
  106. package/src/context/index.ts +194 -0
  107. package/src/defaults/index.ts +6 -0
  108. package/src/deploy/base.ts +101 -0
  109. package/src/deploy/index.ts +19 -0
  110. package/src/deploy/kubernetes/cloudsql.ts +13 -0
  111. package/src/deploy/kubernetes/deployJob.ts +116 -0
  112. package/src/deploy/kubernetes/index.ts +1 -0
  113. package/src/deploy/kubernetes/mongodb.ts +20 -0
  114. package/src/deploy/types.ts +60 -0
  115. package/src/index.ts +8 -0
  116. package/{scripts/magic/tests/createPipeline.test.ts → src/pipeline/createChildPipeline.test.ts} +5 -4
  117. package/src/pipeline/createChildPipeline.ts +51 -0
  118. package/src/pipeline/createJobs.ts +158 -0
  119. package/src/pipeline/index.ts +2 -0
  120. package/src/pipeline/yarnInfo.ts +54 -0
  121. package/src/rules/index.ts +37 -0
  122. package/src/runner/index.ts +10 -0
  123. package/src/types/config.ts +88 -0
  124. package/src/types/context.ts +36 -0
  125. package/src/types/gitlab-types.ts +94 -0
  126. package/{scripts/magic → src}/types/index.ts +0 -0
  127. package/src/utils/index.ts +10 -0
  128. package/tsconfig.json +4 -2
  129. package/Dockerfile +0 -84
  130. package/dist/scripts/createSamplePipeline.d.ts +0 -2
  131. package/dist/scripts/createSamplePipeline.js +0 -14
  132. package/dist/scripts/magic/build/docker.d.ts +0 -2
  133. package/dist/scripts/magic/build/docker.js +0 -68
  134. package/dist/scripts/magic/build/index.d.ts +0 -9
  135. package/dist/scripts/magic/build/index.js +0 -12
  136. package/dist/scripts/magic/build/node.d.ts +0 -6
  137. package/dist/scripts/magic/build/node.js +0 -150
  138. package/dist/scripts/magic/build/types.d.ts +0 -18
  139. package/dist/scripts/magic/build/types.js +0 -7
  140. package/dist/scripts/magic/context/index.d.ts +0 -3
  141. package/dist/scripts/magic/context/index.js +0 -122
  142. package/dist/scripts/magic/createChildPipeline/index.d.ts +0 -3
  143. package/dist/scripts/magic/createChildPipeline/index.js +0 -68
  144. package/dist/scripts/magic/createPipeline.d.ts +0 -14
  145. package/dist/scripts/magic/createPipeline.js +0 -80
  146. package/dist/scripts/magic/deploy/index.d.ts +0 -9
  147. package/dist/scripts/magic/deploy/index.js +0 -12
  148. package/dist/scripts/magic/deploy/kubernetes.d.ts +0 -5
  149. package/dist/scripts/magic/deploy/kubernetes.js +0 -62
  150. package/dist/scripts/magic/deploy/types.d.ts +0 -41
  151. package/dist/scripts/magic/deploy/types.js +0 -7
  152. package/dist/scripts/magic/index.d.ts +0 -2
  153. package/dist/scripts/magic/index.js +0 -16
  154. package/dist/scripts/magic/sample-config.d.ts +0 -3
  155. package/dist/scripts/magic/sample-config.js +0 -77
  156. package/dist/scripts/magic/tests/createPipeline.test.d.ts +0 -1
  157. package/dist/scripts/magic/tests/createPipeline.test.js +0 -89
  158. package/dist/scripts/magic/types/config.d.ts +0 -49
  159. package/dist/scripts/magic/types/config.js +0 -17
  160. package/dist/scripts/magic/types/context.d.ts +0 -19
  161. package/dist/scripts/magic/types/context.js +0 -2
  162. package/dist/scripts/magic/types/gitlab-types.d.ts +0 -57
  163. package/dist/scripts/magic/types/gitlab-types.js +0 -2
  164. package/dist/scripts/magic/types/index.js +0 -15
  165. package/dist/scripts/magic.d.ts +0 -2
  166. package/dist/scripts/magic.js +0 -43
  167. package/dist/scripts/monorepoGenerate.d.ts +0 -2
  168. package/dist/scripts/monorepoGenerate.js +0 -164
  169. package/dist/scripts/printAllValues.d.ts +0 -2
  170. package/dist/scripts/printAllValues.js +0 -58
  171. package/dist/scripts/printBuildEnv.d.ts +0 -2
  172. package/dist/scripts/printBuildEnv.js +0 -77
  173. package/dist/scripts/utils/extractAllValues.d.ts +0 -1
  174. package/dist/scripts/utils/extractAllValues.js +0 -78
  175. package/dist/scripts/utils/extractBuildEnv.d.ts +0 -5
  176. package/dist/scripts/utils/extractBuildEnv.js +0 -152
  177. package/dist/scripts/utils/extractValuesFromEnvVars.d.ts +0 -2
  178. package/dist/scripts/utils/extractValuesFromEnvVars.js +0 -63
  179. package/dist/scripts/utils/extractValuesFromMr.d.ts +0 -2
  180. package/dist/scripts/utils/extractValuesFromMr.js +0 -86
  181. package/dist/tests/extractValuesFromMr.test.d.ts +0 -1
  182. package/dist/tests/extractValuesFromMr.test.js +0 -68
  183. package/scripts/createSamplePipeline.ts +0 -10
  184. package/scripts/getCommitInfo +0 -11
  185. package/scripts/kubernetesCreateSecret +0 -9
  186. package/scripts/kubernetesDelete +0 -4
  187. package/scripts/kubernetesDeploy +0 -55
  188. package/scripts/kubernetesEnsureNamespace +0 -3
  189. package/scripts/magic/build/index.ts +0 -18
  190. package/scripts/magic/build/node.ts +0 -143
  191. package/scripts/magic/build/types.ts +0 -21
  192. package/scripts/magic/context/index.ts +0 -127
  193. package/scripts/magic/createChildPipeline/index.ts +0 -60
  194. package/scripts/magic/createPipeline.ts +0 -52
  195. package/scripts/magic/deploy/index.ts +0 -19
  196. package/scripts/magic/deploy/kubernetes.ts +0 -65
  197. package/scripts/magic/deploy/types.ts +0 -29
  198. package/scripts/magic/index.ts +0 -2
  199. package/scripts/magic/sample-config.ts +0 -78
  200. package/scripts/magic/types/config.ts +0 -54
  201. package/scripts/magic/types/context.ts +0 -21
  202. package/scripts/magic/types/gitlab-types.ts +0 -69
  203. package/scripts/magic.ts +0 -51
  204. package/scripts/monorepoGenerate.ts +0 -104
  205. package/scripts/printAllValues.ts +0 -17
  206. package/scripts/printBuildEnv.ts +0 -22
  207. package/scripts/utils/extractAllValues.ts +0 -32
  208. package/scripts/utils/extractBuildEnv.ts +0 -94
  209. package/scripts/utils/extractValuesFromEnvVars.ts +0 -21
  210. package/scripts/utils/extractValuesFromMr.ts +0 -39
  211. package/tests/extractValuesFromMr.test.ts +0 -156
@@ -0,0 +1,148 @@
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
+
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9
+ }
10
+
11
+ return t;
12
+ };
13
+
14
+ return __assign.apply(this, arguments);
15
+ };
16
+
17
+ var __read = this && this.__read || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o),
21
+ r,
22
+ ar = [],
23
+ e;
24
+
25
+ try {
26
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27
+ } catch (error) {
28
+ e = {
29
+ error: error
30
+ };
31
+ } finally {
32
+ try {
33
+ if (r && !r.done && (m = i["return"])) m.call(i);
34
+ } finally {
35
+ if (e) throw e.error;
36
+ }
37
+ }
38
+
39
+ return ar;
40
+ };
41
+
42
+ exports.__esModule = true;
43
+ exports.createKubernetesDeployJobs = void 0;
44
+
45
+ var types_1 = require("../types");
46
+
47
+ var runner_1 = require("../../runner");
48
+
49
+ var base_1 = require("../base");
50
+
51
+ var lodash_1 = require("lodash");
52
+
53
+ var js_yaml_1 = require("js-yaml");
54
+
55
+ var mongodb_1 = require("./mongodb");
56
+
57
+ var cloudsql_1 = require("./cloudsql");
58
+
59
+ var createKubernetesDeployJobs = function (context) {
60
+ var _a, _b, _c, _d;
61
+
62
+ var deployConfig = context.componentConfig.deploy;
63
+
64
+ if (deployConfig === false) {
65
+ return [];
66
+ }
67
+
68
+ if (!(0, types_1.isOfDeployType)(deployConfig, "kubernetes")) {
69
+ // should not happen
70
+ throw new Error("deploy config is not kubernetes");
71
+ }
72
+
73
+ var allEnvVars = context.environment.envVars;
74
+ /**
75
+ * separate by secrets and public.
76
+ * we evalulate the actual values later, but want to store the secrets in kubernetes secrets
77
+ */
78
+
79
+ var env = Object.entries(allEnvVars).reduce(function (acc, _a) {
80
+ var _b, _c;
81
+
82
+ var _d = __read(_a, 2),
83
+ key = _d[0],
84
+ value = _d[1];
85
+
86
+ if (value === null || value === void 0 ? void 0 : value.startsWith("$CL_")) {
87
+ acc.secret = __assign(__assign({}, acc.secret), (_b = {}, _b[key] = value, _b));
88
+ return acc;
89
+ }
90
+
91
+ acc.public = __assign(__assign({}, acc.public), (_c = {}, _c[key] = value, _c));
92
+ return acc;
93
+ }, {
94
+ secret: {},
95
+ public: {}
96
+ });
97
+
98
+ var defaultKubeValues = __assign(__assign({
99
+ application: {
100
+ hostname: context.environment.hostname,
101
+ command: context.componentConfig.build.startCommand
102
+ },
103
+ env: env
104
+ }, ((_b = (_a = deployConfig.values) === null || _a === void 0 ? void 0 : _a.cloudsql) === null || _b === void 0 ? void 0 : _b.enabled) ? (0, cloudsql_1.createCloudsqlBaseConfig)(context) : {}), ((_d = (_c = deployConfig.values) === null || _c === void 0 ? void 0 : _c.mongodb) === null || _d === void 0 ? void 0 : _d.enabled) ? (0, mongodb_1.createMongodbBaseConfig)(context) : {});
105
+
106
+ var kubeValues = (0, lodash_1.merge)({}, defaultKubeValues, deployConfig.values);
107
+ var kubernetesEnvironment = {
108
+ namespace: context.environment.envVars.KUBE_NAMESPACE
109
+ };
110
+ var shared = {
111
+ job: {
112
+ image: (0, runner_1.getRunnerImage)("kubernetes"),
113
+ variables: __assign(__assign({}, context.environment.envVars), {
114
+ HELM_EXPERIMENTAL_OCI: "1",
115
+ IMAGE_PULL_SECRET: "gitlab-registry-".concat(context.componentName),
116
+ KUBE_VALUES: (0, js_yaml_1.dump)(kubeValues, {
117
+ lineWidth: -1,
118
+ quotingType: "'",
119
+ forceQuotes: true
120
+ }),
121
+ HELM_GITLAB_CHART_NAME: "the-panter-chart",
122
+ HELM_ARGS: deployConfig.additionalHelmArgs,
123
+ COMPONENT_NAME: context.componentName,
124
+ // TODO: unify with docker build stage
125
+ IMAGE_TAG: "$CI_COMMIT_SHA"
126
+ })
127
+ }
128
+ };
129
+ var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
130
+ var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
131
+ return [(0, lodash_1.merge)({}, baseDeploymentJob, shared, {
132
+ job: {
133
+ script: ["kubernetesEnsureNamespace", "kubernetesCreateSecret", "kubernetesDeploy"],
134
+ environment: {
135
+ kubernetes: kubernetesEnvironment
136
+ }
137
+ }
138
+ }), (0, lodash_1.merge)({}, baseStopJob, shared, {
139
+ job: {
140
+ script: ["kubernetesDelete"],
141
+ environment: {
142
+ kubernetes: kubernetesEnvironment
143
+ }
144
+ }
145
+ })];
146
+ };
147
+
148
+ exports.createKubernetesDeployJobs = createKubernetesDeployJobs;
@@ -0,0 +1 @@
1
+ export * from "./deployJob";
@@ -0,0 +1,22 @@
1
+ "use strict";
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
+ exports.__esModule = true;
21
+
22
+ __exportStar(require("./deployJob"), exports);
@@ -0,0 +1,15 @@
1
+ import { Context } from "../..";
2
+ export declare const createMongodbBaseConfig: (context: Context) => {
3
+ mongodb: {
4
+ enabled: boolean;
5
+ backup: {
6
+ enabled: boolean;
7
+ };
8
+ };
9
+ "mongodb-replicaset": {
10
+ replicas: number;
11
+ persistentVolume: {
12
+ storageClass: string;
13
+ };
14
+ };
15
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createMongodbBaseConfig = void 0;
5
+
6
+ var createMongodbBaseConfig = function (context) {
7
+ return {
8
+ mongodb: {
9
+ enabled: true,
10
+ backup: {
11
+ enabled: ["prod", "stage"].includes(context.environment.envType)
12
+ }
13
+ },
14
+ "mongodb-replicaset": {
15
+ replicas: 1,
16
+ persistentVolume: {
17
+ storageClass: ["prod", "stage"].includes(context.environment.envType) ? "fast" : "standard"
18
+ }
19
+ }
20
+ };
21
+ };
22
+
23
+ exports.createMongodbBaseConfig = createMongodbBaseConfig;
@@ -0,0 +1,92 @@
1
+ export declare type DeployConfigBase = {};
2
+ declare type AllowUnknownProps<T extends Record<string, unknown>> = T & Record<string, unknown>;
3
+ export declare type DeployConfigKubernetes = {
4
+ type: "kubernetes";
5
+ cluster?: string;
6
+ additionalHelmArgs?: string[];
7
+ values?: AllowUnknownProps<{
8
+ cloudsql?: {
9
+ enabled: boolean;
10
+ instanceId?: string;
11
+ projectId?: string;
12
+ region?: string;
13
+ };
14
+ mongodb?: AllowUnknownProps<{
15
+ enabled: boolean;
16
+ }>;
17
+ mailhog?: {
18
+ enabled: boolean;
19
+ };
20
+ jobs?: Record<string, AllowUnknownProps<{
21
+ command: string;
22
+ }>>;
23
+ cronjobs?: Record<string, AllowUnknownProps<{
24
+ schedule: string;
25
+ command: string;
26
+ concurrencyPolicy?: "Forbid" | "Allow" | "Replace";
27
+ }>>;
28
+ application?: AllowUnknownProps<{
29
+ redirects?: AllowUnknownProps<{
30
+ host: string;
31
+ }>[];
32
+ replicas?: number;
33
+ resources?: {
34
+ limits?: {
35
+ cpu?: string;
36
+ memory?: string;
37
+ };
38
+ requests?: {
39
+ cpu?: string;
40
+ memory?: string;
41
+ };
42
+ };
43
+ }>;
44
+ }>;
45
+ } & DeployConfigBase;
46
+ export declare type DeployConfig = DeployConfigKubernetes;
47
+ export declare const isOfDeployType: <T extends "kubernetes"[]>(t: DeployConfig | false, ...types: T) => t is Extract<{
48
+ type: "kubernetes";
49
+ cluster?: string | undefined;
50
+ additionalHelmArgs?: string[] | undefined;
51
+ values?: AllowUnknownProps<{
52
+ cloudsql?: {
53
+ enabled: boolean;
54
+ instanceId?: string | undefined;
55
+ projectId?: string | undefined;
56
+ region?: string | undefined;
57
+ } | undefined;
58
+ mongodb?: AllowUnknownProps<{
59
+ enabled: boolean;
60
+ }> | undefined;
61
+ mailhog?: {
62
+ enabled: boolean;
63
+ } | undefined;
64
+ jobs?: Record<string, AllowUnknownProps<{
65
+ command: string;
66
+ }>> | undefined;
67
+ cronjobs?: Record<string, AllowUnknownProps<{
68
+ schedule: string;
69
+ command: string;
70
+ concurrencyPolicy?: "Forbid" | "Allow" | "Replace" | undefined;
71
+ }>> | undefined;
72
+ application?: AllowUnknownProps<{
73
+ redirects?: AllowUnknownProps<{
74
+ host: string;
75
+ }>[] | undefined;
76
+ replicas?: number | undefined;
77
+ resources?: {
78
+ limits?: {
79
+ cpu?: string | undefined;
80
+ memory?: string | undefined;
81
+ } | undefined;
82
+ requests?: {
83
+ cpu?: string | undefined;
84
+ memory?: string | undefined;
85
+ } | undefined;
86
+ } | undefined;
87
+ }> | undefined;
88
+ }> | undefined;
89
+ }, {
90
+ type: T[number];
91
+ }>;
92
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.isOfDeployType = void 0;
5
+
6
+ var isOfDeployType = function (t) {
7
+ var types = [];
8
+
9
+ for (var _i = 1; _i < arguments.length; _i++) {
10
+ types[_i - 1] = arguments[_i];
11
+ }
12
+
13
+ return t && types.includes(t.type);
14
+ };
15
+
16
+ exports.isOfDeployType = isOfDeployType;
@@ -0,0 +1,8 @@
1
+ export * from "./pipeline/";
2
+ export * from "./types";
3
+ export * from "./rules";
4
+ export * from "./runner";
5
+ export * from "./config";
6
+ export * from "./context";
7
+ export * from "./build";
8
+ export * from "./deploy";
package/dist/index.js ADDED
@@ -0,0 +1,36 @@
1
+ "use strict";
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
+ exports.__esModule = true;
21
+
22
+ __exportStar(require("./pipeline/"), exports);
23
+
24
+ __exportStar(require("./types"), exports);
25
+
26
+ __exportStar(require("./rules"), exports);
27
+
28
+ __exportStar(require("./runner"), exports);
29
+
30
+ __exportStar(require("./config"), exports);
31
+
32
+ __exportStar(require("./context"), exports);
33
+
34
+ __exportStar(require("./build"), exports);
35
+
36
+ __exportStar(require("./deploy"), exports);
@@ -0,0 +1,9 @@
1
+ import { Config, PipelineTrigger } from "../types/config";
2
+ import { GitlabJobDef } from "../types/gitlab-types";
3
+ export declare const createChildPipeline: (trigger: PipelineTrigger, config: Config) => Promise<{
4
+ image: string;
5
+ workflow: {
6
+ rules: import("../types/gitlab-types").GitlabRule[];
7
+ };
8
+ stages: string[];
9
+ } & Record<string, GitlabJobDef>>;
@@ -0,0 +1,266 @@
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
+
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9
+ }
10
+
11
+ return t;
12
+ };
13
+
14
+ return __assign.apply(this, arguments);
15
+ };
16
+
17
+ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) {
19
+ return value instanceof P ? value : new P(function (resolve) {
20
+ resolve(value);
21
+ });
22
+ }
23
+
24
+ return new (P || (P = Promise))(function (resolve, reject) {
25
+ function fulfilled(value) {
26
+ try {
27
+ step(generator.next(value));
28
+ } catch (e) {
29
+ reject(e);
30
+ }
31
+ }
32
+
33
+ function rejected(value) {
34
+ try {
35
+ step(generator["throw"](value));
36
+ } catch (e) {
37
+ reject(e);
38
+ }
39
+ }
40
+
41
+ function step(result) {
42
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
43
+ }
44
+
45
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
46
+ });
47
+ };
48
+
49
+ var __generator = this && this.__generator || function (thisArg, body) {
50
+ var _ = {
51
+ label: 0,
52
+ sent: function () {
53
+ if (t[0] & 1) throw t[1];
54
+ return t[1];
55
+ },
56
+ trys: [],
57
+ ops: []
58
+ },
59
+ f,
60
+ y,
61
+ t,
62
+ g;
63
+ return g = {
64
+ next: verb(0),
65
+ "throw": verb(1),
66
+ "return": verb(2)
67
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
68
+ return this;
69
+ }), g;
70
+
71
+ function verb(n) {
72
+ return function (v) {
73
+ return step([n, v]);
74
+ };
75
+ }
76
+
77
+ function step(op) {
78
+ if (f) throw new TypeError("Generator is already executing.");
79
+
80
+ while (_) try {
81
+ 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;
82
+ if (y = 0, t) op = [op[0] & 2, t.value];
83
+
84
+ switch (op[0]) {
85
+ case 0:
86
+ case 1:
87
+ t = op;
88
+ break;
89
+
90
+ case 4:
91
+ _.label++;
92
+ return {
93
+ value: op[1],
94
+ done: false
95
+ };
96
+
97
+ case 5:
98
+ _.label++;
99
+ y = op[1];
100
+ op = [0];
101
+ continue;
102
+
103
+ case 7:
104
+ op = _.ops.pop();
105
+
106
+ _.trys.pop();
107
+
108
+ continue;
109
+
110
+ default:
111
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
112
+ _ = 0;
113
+ continue;
114
+ }
115
+
116
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
117
+ _.label = op[1];
118
+ break;
119
+ }
120
+
121
+ if (op[0] === 6 && _.label < t[1]) {
122
+ _.label = t[1];
123
+ t = op;
124
+ break;
125
+ }
126
+
127
+ if (t && _.label < t[2]) {
128
+ _.label = t[2];
129
+
130
+ _.ops.push(op);
131
+
132
+ break;
133
+ }
134
+
135
+ if (t[2]) _.ops.pop();
136
+
137
+ _.trys.pop();
138
+
139
+ continue;
140
+ }
141
+
142
+ op = body.call(thisArg, _);
143
+ } catch (e) {
144
+ op = [6, e];
145
+ y = 0;
146
+ } finally {
147
+ f = t = 0;
148
+ }
149
+
150
+ if (op[0] & 5) throw op[1];
151
+ return {
152
+ value: op[0] ? op[1] : void 0,
153
+ done: true
154
+ };
155
+ }
156
+ };
157
+
158
+ var __read = this && this.__read || function (o, n) {
159
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
160
+ if (!m) return o;
161
+ var i = m.call(o),
162
+ r,
163
+ ar = [],
164
+ e;
165
+
166
+ try {
167
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
168
+ } catch (error) {
169
+ e = {
170
+ error: error
171
+ };
172
+ } finally {
173
+ try {
174
+ if (r && !r.done && (m = i["return"])) m.call(i);
175
+ } finally {
176
+ if (e) throw e.error;
177
+ }
178
+ }
179
+
180
+ return ar;
181
+ };
182
+
183
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
184
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
185
+ if (ar || !(i in from)) {
186
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
187
+ ar[i] = from[i];
188
+ }
189
+ }
190
+ return to.concat(ar || Array.prototype.slice.call(from));
191
+ };
192
+
193
+ exports.__esModule = true;
194
+ exports.createChildPipeline = void 0;
195
+
196
+ var config_1 = require("../config");
197
+
198
+ var createJobs_1 = require("./createJobs");
199
+
200
+ var rules_1 = require("../rules");
201
+
202
+ var runner_1 = require("../runner");
203
+
204
+ var baseStages = ["setup", "test", "build", "deploy", "verify", "stop"];
205
+
206
+ var createChildPipeline = function (trigger, config) {
207
+ return __awaiter(void 0, void 0, void 0, function () {
208
+ var components, jobs, allEnvs, stages, childPipeline;
209
+ return __generator(this, function (_a) {
210
+ switch (_a.label) {
211
+ case 0:
212
+ components = Object.keys(config.components);
213
+ return [4
214
+ /*yield*/
215
+ , components.reduce(function (acc, componentName) {
216
+ return __awaiter(void 0, void 0, void 0, function () {
217
+ var envs, _a, _b;
218
+
219
+ return __generator(this, function (_c) {
220
+ switch (_c.label) {
221
+ case 0:
222
+ envs = (0, config_1.getAllEnvsByTrigger)(config, componentName, trigger);
223
+ _a = [{}];
224
+ return [4
225
+ /*yield*/
226
+ , acc];
227
+
228
+ case 1:
229
+ _b = [__assign.apply(void 0, _a.concat([_c.sent()]))];
230
+ return [4
231
+ /*yield*/
232
+ , (0, createJobs_1.createJobs)(envs, config, componentName, trigger)];
233
+
234
+ case 2:
235
+ return [2
236
+ /*return*/
237
+ , __assign.apply(void 0, _b.concat([_c.sent()]))];
238
+ }
239
+ });
240
+ });
241
+ }, Promise.resolve({}))];
242
+
243
+ case 1:
244
+ jobs = _a.sent();
245
+ allEnvs = (0, config_1.getAllEnvsInAllComponents)(config);
246
+ stages = baseStages.reduce(function (acc, baseStage) {
247
+ return __spreadArray(__spreadArray(__spreadArray([], __read(acc), false), [baseStage], false), __read(allEnvs.map(function (e) {
248
+ return "".concat(baseStage, " ").concat(e);
249
+ })), false);
250
+ }, []);
251
+ childPipeline = __assign({
252
+ image: (0, runner_1.getRunnerImage)("jobs"),
253
+ workflow: {
254
+ rules: rules_1.RULES_ALWAYS
255
+ },
256
+ stages: stages
257
+ }, jobs);
258
+ return [2
259
+ /*return*/
260
+ , childPipeline];
261
+ }
262
+ });
263
+ });
264
+ };
265
+
266
+ exports.createChildPipeline = createChildPipeline;
@@ -0,0 +1 @@
1
+ export {};