@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
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- 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), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
30
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
31
- to[j] = from[i];
32
- return to;
33
- };
34
- exports.__esModule = true;
35
- exports.createJobs = void 0;
36
- var build_1 = require("../build");
37
- var context_1 = require("../context");
38
- var deploy_1 = require("../deploy");
39
- var createRawJobs = function (context) {
40
- var buildJobs = build_1.buildJobCreators[context.componentConfig.build.type](context);
41
- var deployJobs = deploy_1.deployJobCreators[context.componentConfig.deploy.type](context);
42
- return __spreadArray(__spreadArray([], __read(buildJobs)), __read(deployJobs));
43
- };
44
- var getFullJobName = function (name, componentName, env) {
45
- if (env) {
46
- return env + " " + componentName + " " + name;
47
- }
48
- return componentName + " " + name;
49
- };
50
- var replaceReferences = function (def, componentName, env) {
51
- var _a, _b;
52
- return __assign(__assign({}, def), { needs: (_a = def.needs) === null || _a === void 0 ? void 0 : _a.map(function (n) { return getFullJobName(n, componentName, env); }), dependencies: (_b = def.dependencies) === null || _b === void 0 ? void 0 : _b.map(function (n) {
53
- return getFullJobName(n, componentName, env);
54
- }) });
55
- };
56
- var createJobs = function (envs, config, componentName) {
57
- return envs.reduce(function (acc, env) {
58
- var context = context_1.createContext(componentName, config, env);
59
- var jobs = createRawJobs(context);
60
- return __assign(__assign({}, acc), jobs.reduce(function (acc, _a) {
61
- var _b;
62
- var name = _a.name, job = _a.job, _c = _a.perEnv, perEnv = _c === void 0 ? true : _c;
63
- var def = job;
64
- return __assign(__assign({}, acc), (_b = {}, _b[getFullJobName(name, componentName, perEnv ? env : undefined)] = replaceReferences(def, componentName, perEnv ? env : undefined), _b));
65
- }, {}));
66
- }, {});
67
- };
68
- exports.createJobs = createJobs;
@@ -1,14 +0,0 @@
1
- import { Config, PipelineTrigger } from "./types/config";
2
- export declare const createPipeline: (trigger: PipelineTrigger, config: Config) => Promise<{
3
- image: string;
4
- workflow: {
5
- rules: ({
6
- if: string;
7
- when?: undefined;
8
- } | {
9
- if: string;
10
- when: string;
11
- })[];
12
- };
13
- stages: string[];
14
- }>;
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- 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;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- exports.__esModule = true;
50
- exports.createPipeline = void 0;
51
- var createChildPipeline_1 = require("./createChildPipeline");
52
- var config_1 = require("./types/config");
53
- var createPipeline = function (trigger, config) { return __awaiter(void 0, void 0, void 0, function () {
54
- var envs, components, jobs, rules, mainPipeline;
55
- return __generator(this, function (_a) {
56
- envs = Object.keys(config_1.ENV_TYPES).filter(function (e) { return config_1.ENV_TYPES[e].trigger === trigger; });
57
- components = Object.keys(config.components);
58
- jobs = components.reduce(function (acc, componentName) {
59
- return __assign(__assign({}, acc), createChildPipeline_1.createJobs(envs, config, componentName));
60
- }, {});
61
- rules = [
62
- // same as rules "always", but with `changes` to only trigger changed branches
63
- { "if": "$CI_COMMIT_TAG" },
64
- {
65
- "if": "$CI_COMMIT_MESSAGE =~ /^chore(release).*/",
66
- when: "never"
67
- },
68
- { "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/" },
69
- {
70
- "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
71
- },
72
- { "if": "$CI_MERGE_REQUEST_ID" },
73
- ];
74
- mainPipeline = __assign({ image: "git.panter.ch:5001/catladder/gitlab-ci/pipeline:$PIPELINE_IMAGE_TAG", workflow: {
75
- rules: rules
76
- }, stages: ["setup", "test", "build", "deploy", "verify", "actions"] }, jobs);
77
- return [2 /*return*/, mainPipeline];
78
- });
79
- }); };
80
- exports.createPipeline = createPipeline;
@@ -1,9 +0,0 @@
1
- import { GitlabJobs } from "../types/gitlab-types";
2
- import { Context } from "../types/context";
3
- import { DeployConfig } from "./types";
4
- export declare const deployJobCreators: {
5
- [type in DeployConfig["type"]]: (context: Context) => GitlabJobs;
6
- };
7
- export declare const getDeployDefaults: {
8
- [type in DeployConfig["type"]]: () => Partial<DeployConfig>;
9
- };
@@ -1,12 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.getDeployDefaults = exports.deployJobCreators = void 0;
4
- var kubernetes_1 = require("./kubernetes");
5
- exports.deployJobCreators = {
6
- kubernetes: kubernetes_1.createKubernetesDeployJobs,
7
- serverless: function () { return []; }
8
- };
9
- exports.getDeployDefaults = {
10
- kubernetes: kubernetes_1.getKubernetesDefault,
11
- serverless: function () { return ({}); }
12
- };
@@ -1,5 +0,0 @@
1
- import { GitlabJobs } from "../types/gitlab-types";
2
- import { Context } from "../types/context";
3
- import { DeployConfigKubernetes } from "./types";
4
- export declare const createKubernetesDeployJobs: (context: Context) => GitlabJobs;
5
- export declare const getKubernetesDefault: () => Partial<DeployConfigKubernetes>;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- exports.__esModule = true;
14
- exports.getKubernetesDefault = exports.createKubernetesDeployJobs = void 0;
15
- var types_1 = require("./types");
16
- var createKubernetesDeployJobs = function (context) {
17
- var deployConfig = context.componentConfig.deploy;
18
- if (!types_1.isOfType(deployConfig, "kubernetes")) {
19
- // should not happen
20
- throw new Error("deploy config is not kubernetes");
21
- }
22
- var defaltKubeValues = {
23
- application: {
24
- hostname: context.environment.hostname,
25
- command: context.componentConfig.build.startCommand
26
- }
27
- };
28
- var kubeValues = __assign(__assign({}, defaltKubeValues), deployConfig.values); // TODO: merge with some defaults
29
- return [
30
- {
31
- name: "deploy-to-kubernetes",
32
- job: {
33
- variables: __assign(__assign({}, context.environment.variables), {
34
- // TODO: refactor and unify with other stages
35
- HELM_EXPERIMENTAL_OCI: "1", IMAGE_PULL_SECRET: "gitlab-registry-" + context.componentName, KUBE_VALUES: JSON.stringify(kubeValues), HELM_GITLAB_CHART_PATH: "catladder/helm-charts", HELM_GITLAB_CHART_NAME: "the-panter-chart", COMPONENT_NAME: context.componentName,
36
- // TODO: unify with docker build stage
37
- IMAGE_TAG: "$CI_COMMIT_SHA", HELM_GITLAB_CHART_VERSION: "3.2.0", RELEASE_NAME: context.fullConfig.customerName + "-" + context.fullConfig.appName + "-$CI_ENVIRONMENT_SLUG" }),
38
- stage: "deploy",
39
- dependencies: [],
40
- script: [
41
- "kubernetesEnsureNamespace",
42
- "kubernetesCreateSecret",
43
- "kubernetesDeploy",
44
- ],
45
- environment: {
46
- name: context.environment.fullName,
47
- url: context.environment.url,
48
- kubernetes: {
49
- namespace: context.environment.variables.KUBE_NAMESPACE
50
- }
51
- }
52
- }
53
- },
54
- ];
55
- };
56
- exports.createKubernetesDeployJobs = createKubernetesDeployJobs;
57
- var getKubernetesDefault = function () {
58
- return {
59
- values: {}
60
- };
61
- };
62
- exports.getKubernetesDefault = getKubernetesDefault;
@@ -1,41 +0,0 @@
1
- export declare type DeployConfigBase = {};
2
- export declare type DeployConfigKubernetes = {
3
- type: "kubernetes";
4
- additionalHelmArgs?: string[];
5
- values?: {
6
- application?: {
7
- resources?: {
8
- limits?: {
9
- cpu?: any;
10
- };
11
- requests?: {
12
- cpu?: any;
13
- };
14
- };
15
- } & Record<string, any>;
16
- } & Record<string, any>;
17
- } & DeployConfigBase;
18
- export declare type DeployConfigServerless = {
19
- type: "serverless";
20
- };
21
- export declare type DeployConfig = DeployConfigKubernetes | DeployConfigServerless;
22
- export declare const isOfType: <T extends "kubernetes" | "serverless">(t: DeployConfig, type: T) => t is Extract<{
23
- type: "kubernetes";
24
- additionalHelmArgs?: string[] | undefined;
25
- values?: ({
26
- application?: ({
27
- resources?: {
28
- limits?: {
29
- cpu?: any;
30
- } | undefined;
31
- requests?: {
32
- cpu?: any;
33
- } | undefined;
34
- } | undefined;
35
- } & Record<string, any>) | undefined;
36
- } & Record<string, any>) | undefined;
37
- }, {
38
- type: T;
39
- }> | Extract<DeployConfigServerless, {
40
- type: T;
41
- }>;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.isOfType = void 0;
4
- var isOfType = function (t, type) {
5
- return t.type === type;
6
- };
7
- exports.isOfType = isOfType;
@@ -1,2 +0,0 @@
1
- export { createPipeline } from "./createPipeline";
2
- export * from "./types";
@@ -1,16 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- exports.__esModule = true;
13
- exports.createPipeline = void 0;
14
- var createPipeline_1 = require("./createPipeline");
15
- __createBinding(exports, createPipeline_1, "createPipeline");
16
- __exportStar(require("./types"), exports);
@@ -1,3 +0,0 @@
1
- import { Config } from "./types/config";
2
- declare const sampleConfig: Config;
3
- export default sampleConfig;
@@ -1,77 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- var sampleConfig = {
4
- customerName: "pan",
5
- appName: "fonsi",
6
- components: {
7
- web: {
8
- dir: "web",
9
- build: {
10
- type: "node"
11
- },
12
- deploy: {
13
- type: "kubernetes",
14
- values: {
15
- application: {
16
- resources: {
17
- limits: {
18
- cpu: "100m"
19
- }
20
- }
21
- }
22
- }
23
- },
24
- vars: {
25
- public: {
26
- GOOGLE_TAG_MANAGER_ID: "1234"
27
- },
28
- fromComponents: {
29
- api: {
30
- API_URL: "ROOT_URL"
31
- }
32
- }
33
- },
34
- env: {
35
- prod: {
36
- hostname: "fudilo.ch",
37
- vars: {},
38
- deploy: {
39
- type: "kubernetes",
40
- values: {
41
- application: {
42
- resources: {
43
- limits: {
44
- cpu: "1000m"
45
- }
46
- }
47
- }
48
- }
49
- }
50
- },
51
- myCustomProd: {
52
- type: "prod",
53
- hostname: "fudilo2.ch"
54
- }
55
- }
56
- },
57
- api: {
58
- env: {
59
- prod: {
60
- hostname: "api.fudilo.ch"
61
- },
62
- myCustomProd: {
63
- type: "prod",
64
- hostname: "api.fudilo2.ch"
65
- }
66
- },
67
- build: {
68
- type: "node"
69
- },
70
- deploy: {
71
- type: "kubernetes"
72
- },
73
- dir: "api"
74
- }
75
- }
76
- };
77
- exports["default"] = sampleConfig;
@@ -1 +0,0 @@
1
- export {};
@@ -1,89 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __rest = (this && this.__rest) || function (s, e) {
39
- var t = {};
40
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
41
- t[p] = s[p];
42
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
43
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
44
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
45
- t[p[i]] = s[p[i]];
46
- }
47
- return t;
48
- };
49
- exports.__esModule = true;
50
- var createPipeline_1 = require("../createPipeline");
51
- describe("createPipeline", function () {
52
- describe("node-app to kuberntes", function () {
53
- var config = {
54
- appName: "test",
55
- customerName: "pan",
56
- components: {
57
- "my-app": {
58
- dir: "myapp",
59
- build: {
60
- type: "node"
61
- },
62
- deploy: {
63
- type: "kubernetes"
64
- }
65
- }
66
- }
67
- };
68
- it("creates a pipeline for a single app on the main branch", function () { return __awaiter(void 0, void 0, void 0, function () {
69
- var _a, image, stages, workflow, jobs;
70
- return __generator(this, function (_b) {
71
- switch (_b.label) {
72
- case 0: return [4 /*yield*/, createPipeline_1.createPipeline("mainBranch", config)];
73
- case 1:
74
- _a = _b.sent(), image = _a.image, stages = _a.stages, workflow = _a.workflow, jobs = __rest(_a, ["image", "stages", "workflow"]);
75
- expect(image).toEqual("git.panter.ch:5001/catladder/gitlab-ci/pipeline:$PIPELINE_IMAGE_TAG");
76
- expect(Object.keys(jobs)).toEqual([
77
- "my-app audit",
78
- "my-app lint",
79
- "my-app test",
80
- "dev my-app app-build",
81
- "dev my-app docker-build",
82
- "dev my-app deploy-to-kubernetes",
83
- ]);
84
- return [2 /*return*/];
85
- }
86
- });
87
- }); });
88
- });
89
- });
@@ -1,49 +0,0 @@
1
- import { BuildConfig } from "../build/types";
2
- import { DeployConfig } from "../deploy/types";
3
- export declare type PipelineTrigger = "mainBranch" | "mr" | "taggedRelease";
4
- export declare const ENV_TYPES: {
5
- readonly dev: {
6
- readonly trigger: "mainBranch";
7
- };
8
- readonly review: {
9
- readonly trigger: "mr";
10
- };
11
- readonly prod: {
12
- readonly trigger: "taggedRelease";
13
- };
14
- readonly stage: {
15
- readonly trigger: "taggedRelease";
16
- };
17
- };
18
- declare type EnvType = keyof typeof ENV_TYPES;
19
- export declare type DefaultEnvConfig = {
20
- deploy: DeployConfig;
21
- build: BuildConfig;
22
- vars?: {
23
- public?: Record<string, any>;
24
- secret?: Record<string, string>;
25
- fromComponents?: {
26
- [otherApp: string]: Record<string, string>;
27
- };
28
- };
29
- };
30
- declare type EnvConfig<E extends EnvType = EnvType> = {
31
- type?: E;
32
- hostname?: string;
33
- } & Partial<DefaultEnvConfig>;
34
- export declare type Env = {
35
- dev?: EnvConfig<"dev">;
36
- stage?: EnvConfig<"stage">;
37
- review?: EnvConfig<"review">;
38
- prod?: EnvConfig<"prod">;
39
- } & Record<string, EnvConfig>;
40
- export declare type ComponentConfig = {
41
- env?: Env;
42
- dir: string;
43
- } & DefaultEnvConfig;
44
- export declare type Config = {
45
- customerName: string;
46
- appName: string;
47
- components: Record<string, ComponentConfig>;
48
- };
49
- export {};
@@ -1,17 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.ENV_TYPES = void 0;
4
- exports.ENV_TYPES = {
5
- dev: {
6
- trigger: "mainBranch"
7
- },
8
- review: {
9
- trigger: "mr"
10
- },
11
- prod: {
12
- trigger: "taggedRelease"
13
- },
14
- stage: {
15
- trigger: "taggedRelease"
16
- }
17
- };
@@ -1,19 +0,0 @@
1
- import { ComponentConfig, Config } from "./config";
2
- export declare type Environment = {
3
- hostname: string;
4
- fullName: string;
5
- shortName: string;
6
- url: string;
7
- variables: Record<string, string>;
8
- };
9
- export declare type CommitInfo = {
10
- refName: string;
11
- refSlug: string;
12
- };
13
- export declare type Context = {
14
- componentConfig: ComponentConfig;
15
- componentName: string;
16
- fullConfig: Config;
17
- environment: Environment;
18
- commit: CommitInfo;
19
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
@@ -1,57 +0,0 @@
1
- export declare type GitlabStage = "setup" | "test" | "build" | "deploy" | "verify" | "actions";
2
- export declare type Artifacts = {
3
- paths: string[];
4
- };
5
- export declare type GitlabJobCache = {
6
- key: string;
7
- policy?: string;
8
- paths: string[];
9
- };
10
- export declare type GitlabRule = {
11
- if: string;
12
- when?: "always" | "on_success" | "manual" | "never";
13
- };
14
- export declare type Retry = {
15
- max: number;
16
- when: string[];
17
- };
18
- export declare type Service = {
19
- name: string;
20
- command: string[];
21
- };
22
- export declare type GitlabEnvironment = {
23
- url: string;
24
- name: string;
25
- kubernetes?: {
26
- namespace?: string;
27
- };
28
- };
29
- export declare type GitlabJobDef = {
30
- stage: GitlabStage;
31
- before_script?: string[];
32
- script: string[];
33
- interruptible?: boolean;
34
- needs?: string[];
35
- rules?: GitlabRule[];
36
- cache?: GitlabJobCache | GitlabJobCache[];
37
- artifacts?: Artifacts;
38
- retry?: Retry;
39
- services?: Service[];
40
- image?: string;
41
- variables?: GitlabVariables;
42
- dependencies?: string[];
43
- environment?: GitlabEnvironment;
44
- allow_failure?: boolean;
45
- };
46
- export declare type GitlabVariables = Record<string, string | undefined>;
47
- export declare type GitlabJob = {
48
- name: string;
49
- perEnv?: boolean;
50
- job: GitlabJobDef;
51
- };
52
- export declare type GitlabJobs = GitlabJob[];
53
- export declare type GitlabPipeline = {
54
- variables: GitlabVariables;
55
- stages: GitlabStage[];
56
- jobs: GitlabJobs;
57
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;