@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,103 @@
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
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
43
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
44
+ if (ar || !(i in from)) {
45
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
46
+ ar[i] = from[i];
47
+ }
48
+ }
49
+ return to.concat(ar || Array.prototype.slice.call(from));
50
+ };
51
+
52
+ exports.__esModule = true;
53
+ exports.createMeteorBuildJobs = void 0;
54
+
55
+ var path_1 = require("path");
56
+
57
+ var constants_1 = require("../base/constants");
58
+
59
+ var createBuildJob_1 = require("../base/createBuildJob");
60
+
61
+ var docker_1 = require("../docker");
62
+
63
+ var types_1 = require("../types");
64
+
65
+ var cache_1 = require("./cache");
66
+
67
+ var yarn_1 = require("./yarn");
68
+
69
+ var getMeteorCache = function (context) {
70
+ return [{
71
+ key: context.componentName + "meteor-build-cache",
72
+ policy: "pull-push",
73
+ paths: [(0, path_1.join)(context.componentConfig.dir, ".meteor/local/resolver-result-cache.json"), (0, path_1.join)(context.componentConfig.dir, ".meteor/local/plugin-cache"), (0, path_1.join)(context.componentConfig.dir, ".meteor/local/isopacks"), (0, path_1.join)(context.componentConfig.dir, ".meteor/local/bundler-cache/scanner")]
74
+ }];
75
+ };
76
+
77
+ var createMeteorBuildJobs = function (context) {
78
+ var buildConfig = context.componentConfig.build;
79
+
80
+ if (!(0, types_1.isOfBuildType)(buildConfig, "meteor")) {
81
+ throw new Error("deploy config is not meteor");
82
+ }
83
+
84
+ var yarnInstall = (0, yarn_1.getYarnInstall)(context);
85
+ var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
86
+ cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read(getMeteorCache(context)), false),
87
+ script: __spreadArray(__spreadArray([], __read(yarnInstall), false), ['echo "add healthcheck package"', "meteor add panter:healthroute --allow-superuser", "meteor add qualia:prod-shell --allow-superuser", 'TOOL_NODE_FLAGS="--max_old_space_size=3584 --min_semi_space_size=8 --max_semi_space_size=256 --optimize_for_size" meteor build ./dist --architecture os.linux.x86_64 --allow-superuser --server-only --directory', "cp ./__build_info.json ./dist/bundle/programs/server"], false),
88
+ artifacts: {
89
+ paths: [context.componentConfig.dir + "/__build_info.json", context.componentConfig.dir + "/dist"]
90
+ }
91
+ }) : null;
92
+ return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), [{
93
+ name: docker_1.DOCKER_BUILD_JOB_NAME,
94
+ envMode: "jobPerEnv",
95
+ job: __assign(__assign({}, (0, docker_1.createDockerBuildJob)(context, {
96
+ script: ["ensureMeteorDockerfile"]
97
+ })), {
98
+ needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
99
+ })
100
+ }], false);
101
+ };
102
+
103
+ exports.createMeteorBuildJobs = createMeteorBuildJobs;
@@ -0,0 +1,3 @@
1
+ import { Context } from "../../types/context";
2
+ import { GitlabJobs } from "../../types/gitlab-types";
3
+ export declare const createNodeTestJobs: (context: Context) => GitlabJobs;
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+
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
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
43
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
44
+ if (ar || !(i in from)) {
45
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
46
+ ar[i] = from[i];
47
+ }
48
+ }
49
+ return to.concat(ar || Array.prototype.slice.call(from));
50
+ };
51
+
52
+ exports.__esModule = true;
53
+ exports.createNodeTestJobs = void 0;
54
+
55
+ var defaults_1 = require("../../defaults");
56
+
57
+ var utils_1 = require("../../utils");
58
+
59
+ var cache_1 = require("./cache");
60
+
61
+ var constants_1 = require("./constants");
62
+
63
+ var yarn_1 = require("./yarn");
64
+
65
+ var createNodeTestJobs = function (context) {
66
+ var _a, _b, _c, _d, _e, _f, _g, _h; // don't run tests after release
67
+
68
+
69
+ if (((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.trigger) === "taggedRelease") {
70
+ return [];
71
+ }
72
+
73
+ var buildConfig = context.componentConfig.build;
74
+ var base = {
75
+ variables: __assign(__assign({
76
+ APP_PATH: context.componentConfig.dir
77
+ }, constants_1.NODE_RUNNER_BUILD_VARIABLES), (_b = buildConfig.extraVars) !== null && _b !== void 0 ? _b : {}),
78
+ stage: "test",
79
+ interruptible: true,
80
+ needs: [],
81
+ retry: defaults_1.BASE_RETRY
82
+ };
83
+ var yarnInstall = (0, yarn_1.getYarnInstall)(context);
84
+ var auditJob = buildConfig.audit !== false ? {
85
+ name: "🛡 audit",
86
+ envMode: "none",
87
+ job: __assign(__assign({}, base), {
88
+ cache: undefined,
89
+ script: __spreadArray(["cd ".concat(context.componentConfig.dir)], __read((_d = (0, utils_1.ensureArray)((_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.command)) !== null && _d !== void 0 ? _d : ["yarn audit"]), false),
90
+ allow_failure: true
91
+ })
92
+ } : null;
93
+ var lintJob = buildConfig.lint !== false ? {
94
+ name: "👮 lint",
95
+ envMode: "none",
96
+ job: __assign(__assign({}, base), {
97
+ cache: (0, cache_1.getNodeCache)(context),
98
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(yarnInstall), false), __read((_f = (0, utils_1.ensureArray)((_e = buildConfig.lint) === null || _e === void 0 ? void 0 : _e.command)) !== null && _f !== void 0 ? _f : ["yarn lint"]), false)
99
+ })
100
+ } : null;
101
+ var testJob = buildConfig.test !== false ? {
102
+ name: "🧪 test",
103
+ envMode: "none",
104
+ job: __assign(__assign({}, base), {
105
+ cache: (0, cache_1.getNodeCache)(context),
106
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(yarnInstall), false), __read((_h = (0, utils_1.ensureArray)((_g = buildConfig.test) === null || _g === void 0 ? void 0 : _g.command)) !== null && _h !== void 0 ? _h : ["yarn test"]), false)
107
+ })
108
+ } : null;
109
+ return [auditJob, lintJob, testJob].filter(utils_1.notNil);
110
+ };
111
+
112
+ exports.createNodeTestJobs = createNodeTestJobs;
@@ -0,0 +1,2 @@
1
+ import { Context } from "../../types";
2
+ export declare const getYarnInstall: (context: Context) => string[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getYarnInstall = void 0;
5
+
6
+ var getYarnInstall = function (context) {
7
+ var _a;
8
+
9
+ return ["if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi", ((_a = context.yarnInfo) === null || _a === void 0 ? void 0 : _a.isClassic) ? "yarn install --frozen-lockfile" : "yarn install --immutable"];
10
+ };
11
+
12
+ exports.getYarnInstall = getYarnInstall;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,221 @@
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
+
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) {
12
+ try {
13
+ step(generator.next(value));
14
+ } catch (e) {
15
+ reject(e);
16
+ }
17
+ }
18
+
19
+ function rejected(value) {
20
+ try {
21
+ step(generator["throw"](value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ }
26
+
27
+ function step(result) {
28
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
29
+ }
30
+
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+
35
+ var __generator = this && this.__generator || function (thisArg, body) {
36
+ var _ = {
37
+ label: 0,
38
+ sent: function () {
39
+ if (t[0] & 1) throw t[1];
40
+ return t[1];
41
+ },
42
+ trys: [],
43
+ ops: []
44
+ },
45
+ f,
46
+ y,
47
+ t,
48
+ g;
49
+ return g = {
50
+ next: verb(0),
51
+ "throw": verb(1),
52
+ "return": verb(2)
53
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
54
+ return this;
55
+ }), g;
56
+
57
+ function verb(n) {
58
+ return function (v) {
59
+ return step([n, v]);
60
+ };
61
+ }
62
+
63
+ function step(op) {
64
+ if (f) throw new TypeError("Generator is already executing.");
65
+
66
+ while (_) try {
67
+ 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;
68
+ if (y = 0, t) op = [op[0] & 2, t.value];
69
+
70
+ switch (op[0]) {
71
+ case 0:
72
+ case 1:
73
+ t = op;
74
+ break;
75
+
76
+ case 4:
77
+ _.label++;
78
+ return {
79
+ value: op[1],
80
+ done: false
81
+ };
82
+
83
+ case 5:
84
+ _.label++;
85
+ y = op[1];
86
+ op = [0];
87
+ continue;
88
+
89
+ case 7:
90
+ op = _.ops.pop();
91
+
92
+ _.trys.pop();
93
+
94
+ continue;
95
+
96
+ default:
97
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
98
+ _ = 0;
99
+ continue;
100
+ }
101
+
102
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
103
+ _.label = op[1];
104
+ break;
105
+ }
106
+
107
+ if (op[0] === 6 && _.label < t[1]) {
108
+ _.label = t[1];
109
+ t = op;
110
+ break;
111
+ }
112
+
113
+ if (t && _.label < t[2]) {
114
+ _.label = t[2];
115
+
116
+ _.ops.push(op);
117
+
118
+ break;
119
+ }
120
+
121
+ if (t[2]) _.ops.pop();
122
+
123
+ _.trys.pop();
124
+
125
+ continue;
126
+ }
127
+
128
+ op = body.call(thisArg, _);
129
+ } catch (e) {
130
+ op = [6, e];
131
+ y = 0;
132
+ } finally {
133
+ f = t = 0;
134
+ }
135
+
136
+ if (op[0] & 5) throw op[1];
137
+ return {
138
+ value: op[0] ? op[1] : void 0,
139
+ done: true
140
+ };
141
+ }
142
+ };
143
+
144
+ var __rest = this && this.__rest || function (s, e) {
145
+ var t = {};
146
+
147
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
148
+
149
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
150
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
151
+ }
152
+ return t;
153
+ };
154
+
155
+ exports.__esModule = true;
156
+
157
+ var __1 = require("../../");
158
+
159
+ describe("storybook build", function () {
160
+ describe("creates two build jobs", function () {
161
+ var config = {
162
+ appName: "test",
163
+ customerName: "pan",
164
+ components: {
165
+ "my-app": {
166
+ dir: "myapp",
167
+ build: {
168
+ type: "storybook"
169
+ },
170
+ deploy: {
171
+ type: "kubernetes"
172
+ }
173
+ }
174
+ }
175
+ };
176
+ it("creates a pipeline for storybook that does not contain test stages", function () {
177
+ return __awaiter(void 0, void 0, void 0, function () {
178
+ var _a, image, stages, workflow, jobs;
179
+
180
+ return __generator(this, function (_b) {
181
+ switch (_b.label) {
182
+ case 0:
183
+ return [4
184
+ /*yield*/
185
+ , (0, __1.createChildPipeline)("mainBranch", config)];
186
+
187
+ case 1:
188
+ _a = _b.sent(), image = _a.image, stages = _a.stages, workflow = _a.workflow, jobs = __rest(_a, ["image", "stages", "workflow"]);
189
+ expect(Object.keys(jobs)).toEqual(["dev my-app app-build", "dev my-app docker-build", "dev my-app deploy-to-kubernetes", "dev my-app kubernetes-stop"]);
190
+ return [2
191
+ /*return*/
192
+ ];
193
+ }
194
+ });
195
+ });
196
+ });
197
+ it("runs build and renames folder", function () {
198
+ return __awaiter(void 0, void 0, void 0, function () {
199
+ var _a, image, stages, workflow, jobs, buildJob;
200
+
201
+ return __generator(this, function (_b) {
202
+ switch (_b.label) {
203
+ case 0:
204
+ return [4
205
+ /*yield*/
206
+ , (0, __1.createChildPipeline)("mainBranch", config)];
207
+
208
+ case 1:
209
+ _a = _b.sent(), image = _a.image, stages = _a.stages, workflow = _a.workflow, jobs = __rest(_a, ["image", "stages", "workflow"]);
210
+ buildJob = jobs["dev my-app app-build"];
211
+ expect(buildJob.script).toContain("yarn storybook");
212
+ expect(buildJob.script).toContain("mv ./storybook-out /dist");
213
+ return [2
214
+ /*return*/
215
+ ];
216
+ }
217
+ });
218
+ });
219
+ });
220
+ });
221
+ });
@@ -0,0 +1,63 @@
1
+ export declare type BuildConfigBase = {
2
+ startCommand?: string;
3
+ extraVars?: Record<string, string>;
4
+ /**
5
+ * define the build command
6
+ */
7
+
8
+ buildCommand?: string | string[] | null;
9
+ /**
10
+ * customize docker build
11
+ */
12
+
13
+ docker?: {
14
+ additionsBegin?: string[];
15
+ additionsEnd?: string[];
16
+ };
17
+ /**
18
+ * customize lint, set false to disable
19
+ */
20
+
21
+ lint?: false | {
22
+ command?: string | string[];
23
+ };
24
+ /**
25
+ * customize test, set false to disable
26
+ */
27
+
28
+ test?: false | {
29
+ command?: string | string[];
30
+ };
31
+ /**
32
+ * customize audit, set false to disable
33
+ */
34
+
35
+ audit?: false | {
36
+ command?: string | string[];
37
+ };
38
+ };
39
+ export declare type BuildConfigNodeBase = BuildConfigBase;
40
+ export declare type BuildConfigNode = {
41
+ type: "node";
42
+ } & BuildConfigNodeBase;
43
+ export declare type BuildConfigNodeStatic = BuildConfigNodeBase & {
44
+ type: "node-static";
45
+ startCommand?: never;
46
+ };
47
+ export declare type BuildConfigMeteor = BuildConfigNodeBase & {
48
+ type: "meteor";
49
+ };
50
+ export declare type BuildConfigStorybook = BuildConfigNodeBase & {
51
+ type: "storybook";
52
+ startCommand?: never;
53
+ };
54
+ export declare type BuildConfig = BuildConfigNode | BuildConfigNodeStatic | BuildConfigStorybook | BuildConfigMeteor;
55
+ export declare const isOfBuildType: <T extends ("node" | "node-static" | "meteor" | "storybook")[]>(t: BuildConfig, ...types: T) => t is Extract<BuildConfigNode, {
56
+ type: T[number];
57
+ }> | Extract<BuildConfigNodeStatic, {
58
+ type: T[number];
59
+ }> | Extract<BuildConfigMeteor, {
60
+ type: T[number];
61
+ }> | Extract<BuildConfigStorybook, {
62
+ type: T[number];
63
+ }>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.isOfBuildType = void 0;
5
+
6
+ var isOfBuildType = 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 types.includes(t.type);
14
+ };
15
+
16
+ exports.isOfBuildType = isOfBuildType;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+
5
+ var fs_1 = require("fs");
6
+
7
+ var config_1 = require("./config");
8
+
9
+ var constants_1 = require("./constants");
10
+
11
+ var pipeline_1 = require("./pipeline");
12
+
13
+ var _a = process.env,
14
+ CI_MERGE_REQUEST_ID = _a.CI_MERGE_REQUEST_ID,
15
+ CI_COMMIT_TAG = _a.CI_COMMIT_TAG,
16
+ CI_COMMIT_BRANCH = _a.CI_COMMIT_BRANCH,
17
+ CI_DEFAULT_BRANCH = _a.CI_DEFAULT_BRANCH;
18
+ var isDefaultBranch = CI_COMMIT_BRANCH == CI_DEFAULT_BRANCH;
19
+ var isHotfixBranch = false; // TODO: $CI_COMMIT_BRANCH =~ /^[0-9]+\.([0-9]+|x)\.x$/
20
+
21
+ var isMergeRequest = Boolean(CI_MERGE_REQUEST_ID);
22
+ var isTaggedRelease = Boolean(CI_COMMIT_TAG);
23
+ console.info("catladder version ".concat(constants_1.PIPELINE_IMAGE_TAG));
24
+ var trigger = isMergeRequest || isHotfixBranch ? "mr" : isDefaultBranch ? "mainBranch" : isTaggedRelease ? "taggedRelease" : null;
25
+
26
+ if (trigger) {
27
+ var config = (0, config_1.readConfigSync)();
28
+
29
+ if (!config) {
30
+ throw new Error("no catladder config found");
31
+ }
32
+
33
+ (0, pipeline_1.createChildPipeline)(trigger, config).then(function (mainPipeline) {
34
+ (0, fs_1.writeFileSync)("__pipeline.yml", JSON.stringify(mainPipeline, null, 2), {
35
+ encoding: "utf-8"
36
+ });
37
+ });
38
+ } else {
39
+ throw new Error("no matching trigger: " + JSON.stringify({
40
+ isMergeRequest: isMergeRequest,
41
+ isDefaultBranch: isDefaultBranch,
42
+ isTaggedRelease: isTaggedRelease
43
+ }, null, 2));
44
+ }
@@ -0,0 +1,4 @@
1
+ import { Config, PipelineTrigger } from "../types";
2
+ export declare const getAllEnvs: (config: Config, componentName: string) => string[];
3
+ export declare const getAllEnvsInAllComponents: (config: Config) => string[];
4
+ export declare const getAllEnvsByTrigger: (config: Config, componentName: string, trigger: PipelineTrigger) => string[];
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var __read = this && this.__read || function (o, n) {
4
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
5
+ if (!m) return o;
6
+ var i = m.call(o),
7
+ r,
8
+ ar = [],
9
+ e;
10
+
11
+ try {
12
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
+ } catch (error) {
14
+ e = {
15
+ error: error
16
+ };
17
+ } finally {
18
+ try {
19
+ if (r && !r.done && (m = i["return"])) m.call(i);
20
+ } finally {
21
+ if (e) throw e.error;
22
+ }
23
+ }
24
+
25
+ return ar;
26
+ };
27
+
28
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
29
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
+ if (ar || !(i in from)) {
31
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
+ ar[i] = from[i];
33
+ }
34
+ }
35
+ return to.concat(ar || Array.prototype.slice.call(from));
36
+ };
37
+
38
+ exports.__esModule = true;
39
+ exports.getAllEnvsByTrigger = exports.getAllEnvsInAllComponents = exports.getAllEnvs = void 0;
40
+
41
+ var types_1 = require("../types");
42
+
43
+ var getConfiguredAndDefaultEnvs = function (config, componentName, envTypes) {
44
+ var _a, _b;
45
+
46
+ var configuredEnvs = (_a = config.components[componentName].env) !== null && _a !== void 0 ? _a : {}; // the default envs have the same name as the env types
47
+ // these can be disabled with settimg them to `false`
48
+ // this is the list of all not disabled envs. These are always returned
49
+
50
+ var enabledDefaultEnvs = envTypes.filter(function (e) {
51
+ return configuredEnvs[e] !== false;
52
+ });
53
+ var configuredCustomEnvs = Object.entries((_b = config.components[componentName].env) !== null && _b !== void 0 ? _b : {}).filter(function (_a) {
54
+ var _b = __read(_a, 2),
55
+ config = _b[1];
56
+
57
+ return config && "type" in config && config.type && envTypes.includes(config.type);
58
+ }).map(function (_a) {
59
+ var _b = __read(_a, 1),
60
+ envName = _b[0];
61
+
62
+ return envName;
63
+ });
64
+ return __spreadArray([], __read(new Set(__spreadArray(__spreadArray([], __read(enabledDefaultEnvs), false), __read(configuredCustomEnvs), false))), false);
65
+ };
66
+
67
+ var getAllEnvs = function (config, componentName) {
68
+ return getConfiguredAndDefaultEnvs(config, componentName, types_1.DEFAULT_ENV_TYPES);
69
+ };
70
+
71
+ exports.getAllEnvs = getAllEnvs;
72
+
73
+ var getAllEnvsInAllComponents = function (config) {
74
+ return __spreadArray([], __read(new Set(Object.keys(config.components).flatMap(function (c) {
75
+ return (0, exports.getAllEnvs)(config, c);
76
+ }))), false);
77
+ };
78
+
79
+ exports.getAllEnvsInAllComponents = getAllEnvsInAllComponents;
80
+
81
+ var getAllEnvsByTrigger = function (config, componentName, trigger) {
82
+ var envTypesByTrigger = (0, types_1.getEnvTypesByTrigger)(trigger);
83
+ return getConfiguredAndDefaultEnvs(config, componentName, envTypesByTrigger);
84
+ };
85
+
86
+ exports.getAllEnvsByTrigger = getAllEnvsByTrigger;
@@ -0,0 +1 @@
1
+ export {};