@catladder/pipeline 0.0.0-tagged-release-2fffd3dd โ†’ 0.0.0-waitfor-deploy-e64a33ba

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 (120) hide show
  1. package/dist/build/base/constants.js +2 -2
  2. package/dist/build/base/createBuildJob.d.ts +4 -2
  3. package/dist/build/base/createBuildJob.js +18 -17
  4. package/dist/build/base/getBuildInfo.d.ts +2 -0
  5. package/dist/build/base/getBuildInfo.js +12 -0
  6. package/dist/build/docker.d.ts +29 -4
  7. package/dist/build/docker.js +74 -23
  8. package/dist/build/index.d.ts +2 -2
  9. package/dist/build/index.js +1 -1
  10. package/dist/build/node/buildJob.d.ts +2 -2
  11. package/dist/build/node/buildJob.js +27 -11
  12. package/dist/build/node/cache.d.ts +3 -1
  13. package/dist/build/node/cache.js +34 -6
  14. package/dist/build/node/constants.js +2 -2
  15. package/dist/build/node/index.d.ts +4 -4
  16. package/dist/build/node/meteor.d.ts +2 -2
  17. package/dist/build/node/meteor.js +7 -23
  18. package/dist/build/node/testJob.d.ts +2 -2
  19. package/dist/build/node/testJob.js +22 -30
  20. package/dist/build/node/yarn.d.ts +5 -0
  21. package/dist/build/node/yarn.js +51 -3
  22. package/dist/build/tests/storybook.test.js +17 -24
  23. package/dist/build/types.d.ts +13 -0
  24. package/dist/catladder-gitlab.js +42 -9
  25. package/dist/config/configruedEnvs.test.js +12 -3
  26. package/dist/config/readConfig.d.ts +5 -1
  27. package/dist/config/readConfig.js +20 -5
  28. package/dist/constants.js +1 -1
  29. package/dist/context/index.d.ts +4 -3
  30. package/dist/context/index.js +56 -43
  31. package/dist/context/resolveReferences.d.ts +6 -0
  32. package/dist/context/resolveReferences.js +93 -0
  33. package/dist/context/resolveReferences.test.d.ts +1 -0
  34. package/dist/context/resolveReferences.test.js +141 -0
  35. package/dist/deploy/base.d.ts +3 -4
  36. package/dist/deploy/base.js +55 -35
  37. package/dist/deploy/custom/deployJob.d.ts +3 -0
  38. package/dist/deploy/custom/deployJob.js +65 -0
  39. package/dist/deploy/custom/index.d.ts +1 -0
  40. package/dist/deploy/custom/index.js +22 -0
  41. package/dist/deploy/index.d.ts +5 -3
  42. package/dist/deploy/index.js +12 -0
  43. package/dist/deploy/kubernetes/cloudsql.js +1 -1
  44. package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
  45. package/dist/deploy/kubernetes/deployJob.js +74 -42
  46. package/dist/deploy/kubernetes/mongodb.js +1 -1
  47. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +87 -0
  48. package/dist/deploy/kubernetes/processSecretsAsFiles.js +39 -0
  49. package/dist/deploy/types.d.ts +194 -84
  50. package/dist/deploy/utils.d.ts +5 -0
  51. package/dist/deploy/utils.js +36 -0
  52. package/dist/pipeline/createChildPipeline.d.ts +2 -8
  53. package/dist/pipeline/createChildPipeline.js +24 -15
  54. package/dist/pipeline/createChildPipeline.test.js +10 -15
  55. package/dist/pipeline/createJobs.d.ts +2 -2
  56. package/dist/pipeline/createJobs.js +95 -33
  57. package/dist/pipeline/gitlab/makeGitlabJob.d.ts +8 -0
  58. package/dist/pipeline/gitlab/makeGitlabJob.js +45 -0
  59. package/dist/pipeline/packageManager.d.ts +2 -0
  60. package/dist/pipeline/{yarnInfo.js โ†’ packageManager.js} +69 -8
  61. package/dist/runner/index.d.ts +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/dist/types/config.d.ts +87 -1
  64. package/dist/types/context.d.ts +19 -8
  65. package/dist/types/gitlab-types.d.ts +10 -22
  66. package/dist/types/gitlab-types.js +1 -3
  67. package/dist/types/index.d.ts +2 -1
  68. package/dist/types/index.js +3 -1
  69. package/dist/types/jobs.d.ts +80 -0
  70. package/dist/types/jobs.js +5 -0
  71. package/dist/types/pipeline.d.ts +4 -0
  72. package/dist/types/pipeline.js +3 -0
  73. package/dist/utils/index.d.ts +2 -1
  74. package/dist/utils/index.js +45 -2
  75. package/package.json +1 -3
  76. package/src/build/base/constants.ts +2 -2
  77. package/src/build/base/createBuildJob.ts +31 -34
  78. package/src/build/base/getBuildInfo.ts +7 -0
  79. package/src/build/docker.ts +75 -35
  80. package/src/build/index.ts +4 -3
  81. package/src/build/node/buildJob.ts +46 -24
  82. package/src/build/node/cache.ts +31 -6
  83. package/src/build/node/constants.ts +2 -2
  84. package/src/build/node/index.ts +4 -4
  85. package/src/build/node/meteor.ts +12 -18
  86. package/src/build/node/testJob.ts +35 -40
  87. package/src/build/node/yarn.ts +25 -4
  88. package/src/build/tests/storybook.test.ts +10 -2
  89. package/src/build/types.ts +12 -0
  90. package/src/catladder-gitlab.ts +12 -7
  91. package/src/config/configruedEnvs.test.ts +10 -3
  92. package/src/config/readConfig.ts +18 -6
  93. package/src/context/index.ts +90 -52
  94. package/src/context/resolveReferences.test.ts +158 -0
  95. package/src/context/resolveReferences.ts +66 -0
  96. package/src/deploy/base.ts +73 -47
  97. package/src/deploy/custom/deployJob.ts +23 -0
  98. package/src/deploy/custom/index.ts +1 -0
  99. package/src/deploy/index.ts +10 -4
  100. package/src/deploy/kubernetes/cloudsql.ts +3 -4
  101. package/src/deploy/kubernetes/deployJob.ts +85 -45
  102. package/src/deploy/kubernetes/mongodb.ts +1 -3
  103. package/src/deploy/kubernetes/processSecretsAsFiles.ts +34 -0
  104. package/src/deploy/types.ts +177 -42
  105. package/src/deploy/utils.ts +30 -0
  106. package/src/pipeline/createChildPipeline.test.ts +8 -1
  107. package/src/pipeline/createChildPipeline.ts +23 -18
  108. package/src/pipeline/createJobs.ts +104 -56
  109. package/src/pipeline/gitlab/makeGitlabJob.ts +16 -0
  110. package/src/pipeline/packageManager.ts +99 -0
  111. package/src/runner/index.ts +3 -1
  112. package/src/types/config.ts +79 -1
  113. package/src/types/context.ts +18 -5
  114. package/src/types/gitlab-types.ts +10 -30
  115. package/src/types/index.ts +1 -0
  116. package/src/types/jobs.ts +94 -0
  117. package/src/types/pipeline.ts +11 -0
  118. package/src/utils/index.ts +10 -1
  119. package/dist/pipeline/yarnInfo.d.ts +0 -2
  120. package/src/pipeline/yarnInfo.ts +0 -54
@@ -6,6 +6,6 @@ exports.APP_BUILD_JOB_NAME = "๐Ÿ”จ app";
6
6
  exports.RUNNER_BUILD_RESOURCE_VARIABLES = {
7
7
  KUBERNETES_CPU_REQUEST: "0.5",
8
8
  KUBERNETES_CPU_LIMIT: "2",
9
- KUBERNETES_MEMORY_REQUEST: "512Mi",
10
- KUBERNETES_MEMORY_LIMIT: "2Gi"
9
+ KUBERNETES_MEMORY_REQUEST: "1Gi",
10
+ KUBERNETES_MEMORY_LIMIT: "4Gi"
11
11
  };
@@ -1,5 +1,7 @@
1
- import { Context, GitlabJob, GitlabJobDef } from "../..";
1
+ import { Context } from "../..";
2
+ import { CatladderJob } from "../../types/jobs";
2
3
  export declare const createBuildJob: (context: Context, {
3
4
  script,
5
+ variables,
4
6
  ...def
5
- }: Partial<GitlabJobDef>) => GitlabJob;
7
+ }: Partial<CatladderJob>) => CatladderJob;
@@ -65,35 +65,36 @@ exports.createBuildJob = void 0;
65
65
 
66
66
  var lodash_1 = require("lodash");
67
67
 
68
- var defaults_1 = require("../../defaults");
68
+ var __1 = require("../..");
69
69
 
70
70
  var utils_1 = require("../../utils");
71
71
 
72
+ var yarn_1 = require("../node/yarn");
73
+
72
74
  var constants_1 = require("./constants");
73
75
 
76
+ var getBuildInfo_1 = require("./getBuildInfo");
77
+
74
78
  var createBuildJob = function (context, _a) {
75
79
  var _b, _c;
76
80
 
77
81
  var script = _a.script,
78
- def = __rest(_a, ["script"]);
82
+ variables = _a.variables,
83
+ def = __rest(_a, ["script", "variables"]);
79
84
 
80
- var buildInfo = [". getCommitInfo", "echo '{\"id\":\"'$BUILD_ID'\",\"commit\":\"'$BUILD_COMMIT'\",\"tag\":\"'$BUILD_TAG'\",\"time\":\"'$BUILD_TIME'\"}' > ".concat(context.componentConfig.dir, "/__build_info.json")];
81
- return {
85
+ return (0, lodash_1.merge)({
82
86
  name: constants_1.APP_BUILD_JOB_NAME,
83
87
  envMode: "jobPerEnv",
84
- job: (0, lodash_1.merge)({
85
- needs: [],
86
- cache: [],
87
- variables: __assign(__assign(__assign({}, constants_1.RUNNER_BUILD_RESOURCE_VARIABLES), context.environment.envVars), (_b = context.componentConfig.build.extraVars) !== null && _b !== void 0 ? _b : {}),
88
- retry: defaults_1.BASE_RETRY,
89
- interruptible: true,
90
- stage: "build",
91
- script: __spreadArray(__spreadArray(__spreadArray([], __read(buildInfo), false), ["cd ".concat(context.componentConfig.dir)], false), __read((_c = (0, utils_1.ensureArray)(script)) !== null && _c !== void 0 ? _c : []), false),
92
- artifacts: {
93
- paths: [context.componentConfig.dir + "/__build_info.json"]
94
- }
95
- }, def)
96
- };
88
+ stage: "build",
89
+ image: (0, __1.getRunnerImage)("jobs-default"),
90
+ needs: [],
91
+ cache: [],
92
+ variables: __assign(__assign(__assign(__assign({}, constants_1.RUNNER_BUILD_RESOURCE_VARIABLES), variables !== null && variables !== void 0 ? variables : {}), context.environment.envVars), (_b = context.componentConfig.build.extraVars) !== null && _b !== void 0 ? _b : {}),
93
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, getBuildInfo_1.getBuildInfo)(context)), false), __read((0, yarn_1.ensureNodeVersion)(context)), false), ["cd ".concat(context.componentConfig.dir)], false), __read((_c = (0, utils_1.ensureArray)(script)) !== null && _c !== void 0 ? _c : []), false),
94
+ artifacts: {
95
+ paths: [context.componentConfig.dir + "/__build_info.json"]
96
+ }
97
+ }, def);
97
98
  };
98
99
 
99
100
  exports.createBuildJob = createBuildJob;
@@ -0,0 +1,2 @@
1
+ import { Context } from "../../types";
2
+ export declare const getBuildInfo: (context: Context) => string[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getBuildInfo = void 0;
5
+
6
+ var getBuildInfo = function (context) {
7
+ var _a, _b;
8
+
9
+ return ["echo '{\"id\":\"".concat((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.buildId, "\",\"time\":\"").concat((_b = context.commitInfo) === null || _b === void 0 ? void 0 : _b.buildTime, "\"}' > ").concat(context.componentConfig.dir, "/__build_info.json")];
10
+ };
11
+
12
+ exports.getBuildInfo = getBuildInfo;
@@ -1,5 +1,30 @@
1
- import { GitlabJobDef, Context } from "../types";
1
+ import { Context } from "../types";
2
+ import { CatladderJob } from "../types/jobs";
3
+ export declare const requiresDockerBuild: (context: Context) => boolean;
4
+ export declare const getDockerBuildVariables: (context: Context) => {
5
+ DOCKER_BUILDKIT: string;
6
+ DOCKERFILE_ADDITIONS: string | undefined;
7
+ DOCKERFILE_ADDITIONS_END: string | undefined;
8
+ APP_DIR: string;
9
+ DOCKER_HOST: string;
10
+ DOCKER_TLS_CERTDIR: string;
11
+ DOCKER_DIR: string;
12
+ IMAGE_TAG: string;
13
+ DOCKER_DRIVER: string;
14
+ IMAGE_NAME: string;
15
+ CACHE_IMAGE: string;
16
+ KUBERNETES_CPU_REQUEST: string;
17
+ KUBERNETES_CPU_LIMIT: string;
18
+ KUBERNETES_MEMORY_REQUEST: string;
19
+ KUBERNETES_MEMORY_LIMIT: string;
20
+ };
2
21
  export declare const DOCKER_BUILD_JOB_NAME = "\uD83D\uDD28 docker";
3
- export declare const createDockerBuildJob: (context: Context, {
4
- script
5
- }: Pick<GitlabJobDef, "script">) => GitlabJobDef;
22
+ export declare const createDockerBuildJobBase: (context: Context, {
23
+ script,
24
+ variables,
25
+ ...def
26
+ }: Partial<CatladderJob>) => CatladderJob;
27
+ export declare const createDockerBuildJobDefault: (context: Context, {
28
+ script,
29
+ ...def
30
+ }: Partial<CatladderJob>) => CatladderJob;
@@ -14,6 +14,17 @@ var __assign = this && this.__assign || function () {
14
14
  return __assign.apply(this, arguments);
15
15
  };
16
16
 
17
+ var __rest = this && this.__rest || function (s, e) {
18
+ var t = {};
19
+
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
21
+
22
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
24
+ }
25
+ return t;
26
+ };
27
+
17
28
  var __read = this && this.__read || function (o, n) {
18
29
  var m = typeof Symbol === "function" && o[Symbol.iterator];
19
30
  if (!m) return o;
@@ -50,7 +61,11 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
50
61
  };
51
62
 
52
63
  exports.__esModule = true;
53
- exports.createDockerBuildJob = exports.DOCKER_BUILD_JOB_NAME = void 0;
64
+ exports.createDockerBuildJobDefault = exports.createDockerBuildJobBase = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = void 0;
65
+
66
+ var lodash_1 = require("lodash");
67
+
68
+ var deploy_1 = require("../deploy");
54
69
 
55
70
  var runner_1 = require("../runner");
56
71
 
@@ -60,36 +75,72 @@ var DOCKER_RUNNER_BUILD_VARIABLES = {
60
75
  KUBERNETES_MEMORY_REQUEST: "1Gi",
61
76
  KUBERNETES_MEMORY_LIMIT: "2Gi"
62
77
  };
78
+
79
+ var requiresDockerBuild = function (context) {
80
+ var deployConfig = context.componentConfig.deploy;
81
+
82
+ if ((0, deploy_1.isOfDeployType)(deployConfig, "kubernetes")) {
83
+ return true;
84
+ }
85
+
86
+ if ((0, deploy_1.isOfDeployType)(deployConfig, "custom") && deployConfig.requiresDocker) {
87
+ return true;
88
+ }
89
+
90
+ return false;
91
+ };
92
+
93
+ exports.requiresDockerBuild = requiresDockerBuild;
94
+
95
+ var getDockerBuildVariables = function (context) {
96
+ var _a, _b, _c, _d;
97
+
98
+ return __assign(__assign({}, DOCKER_RUNNER_BUILD_VARIABLES), {
99
+ DOCKER_BUILDKIT: "1",
100
+ DOCKERFILE_ADDITIONS: (_b = (_a = context.componentConfig.build.docker) === null || _a === void 0 ? void 0 : _a.additionsBegin) === null || _b === void 0 ? void 0 : _b.join("\n"),
101
+ DOCKERFILE_ADDITIONS_END: (_d = (_c = context.componentConfig.build.docker) === null || _c === void 0 ? void 0 : _c.additionsEnd) === null || _d === void 0 ? void 0 : _d.join("\n"),
102
+ APP_DIR: context.componentConfig.dir,
103
+ DOCKER_HOST: "tcp://0.0.0.0:2375",
104
+ DOCKER_TLS_CERTDIR: "",
105
+ DOCKER_DIR: ".",
106
+ IMAGE_TAG: "$CI_COMMIT_SHA",
107
+ DOCKER_DRIVER: "overlay2",
108
+ IMAGE_NAME: "$CI_REGISTRY_IMAGE/" + context.environment.shortName + "/" + context.componentName,
109
+ CACHE_IMAGE: "$CI_REGISTRY_IMAGE/caches/" + context.componentName
110
+ });
111
+ };
112
+
113
+ exports.getDockerBuildVariables = getDockerBuildVariables;
63
114
  exports.DOCKER_BUILD_JOB_NAME = "๐Ÿ”จ docker";
64
115
 
65
- var createDockerBuildJob = function (context, _a) {
66
- var _b, _c, _d, _e;
116
+ var createDockerBuildJobBase = function (context, _a) {
117
+ var script = _a.script,
118
+ variables = _a.variables,
119
+ def = __rest(_a, ["script", "variables"]);
67
120
 
68
- var script = _a.script;
69
- var base = {
121
+ return (0, lodash_1.merge)({
122
+ name: exports.DOCKER_BUILD_JOB_NAME,
123
+ envMode: "jobPerEnv",
70
124
  stage: "build",
71
125
  image: (0, runner_1.getRunnerImage)("docker-build"),
72
- interruptible: true,
73
126
  services: [{
74
127
  name: "docker:20-dind",
75
128
  command: ["--tls=false"]
76
129
  }],
77
- variables: __assign(__assign({}, DOCKER_RUNNER_BUILD_VARIABLES), {
78
- DOCKERFILE_ADDITIONS: (_c = (_b = context.componentConfig.build.docker) === null || _b === void 0 ? void 0 : _b.additionsBegin) === null || _c === void 0 ? void 0 : _c.join("\n"),
79
- DOCKERFILE_ADDITIONS_END: (_e = (_d = context.componentConfig.build.docker) === null || _d === void 0 ? void 0 : _d.additionsEnd) === null || _e === void 0 ? void 0 : _e.join("\n"),
80
- APP_DIR: context.componentConfig.dir,
81
- DOCKER_HOST: "tcp://0.0.0.0:2375",
82
- DOCKER_TLS_CERTDIR: "",
83
- DOCKER_DIR: ".",
84
- IMAGE_TAG: "$CI_COMMIT_SHA",
85
- DOCKER_DRIVER: "overlay2",
86
- IMAGE_NAME: "$CI_REGISTRY_IMAGE/" + context.componentName,
87
- CACHE_IMAGE: "$CI_REGISTRY_IMAGE/" + context.componentName + "/cache:cache"
88
- })
89
- };
90
- return __assign(__assign({}, base), {
91
- script: __spreadArray(__spreadArray([], __read(script), false), ["docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY", "docker pull $CACHE_IMAGE || true", "docker build --network host --cache-from $CACHE_IMAGE --tag $IMAGE_NAME:$IMAGE_TAG -f $APP_DIR/Dockerfile .", "docker push $IMAGE_NAME:$IMAGE_TAG", "docker tag $IMAGE_NAME:$IMAGE_TAG $CACHE_IMAGE", "docker push $CACHE_IMAGE"], false)
92
- });
130
+ variables: __assign(__assign({}, (0, exports.getDockerBuildVariables)(context)), variables !== null && variables !== void 0 ? variables : {}),
131
+ script: script || []
132
+ }, def);
133
+ };
134
+
135
+ exports.createDockerBuildJobBase = createDockerBuildJobBase;
136
+
137
+ var createDockerBuildJobDefault = function (context, _a) {
138
+ var script = _a.script,
139
+ def = __rest(_a, ["script"]);
140
+
141
+ return (0, exports.createDockerBuildJobBase)(context, __assign({
142
+ script: __spreadArray(__spreadArray([], __read(script || []), false), ["docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY", "docker build --network host --cache-from $CACHE_IMAGE --tag $IMAGE_NAME:$IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1", "docker push $IMAGE_NAME:$IMAGE_TAG", "docker tag $IMAGE_NAME:$IMAGE_TAG $CACHE_IMAGE", "docker push $CACHE_IMAGE"], false)
143
+ }, def));
93
144
  };
94
145
 
95
- exports.createDockerBuildJob = createDockerBuildJob;
146
+ exports.createDockerBuildJobDefault = createDockerBuildJobDefault;
@@ -1,10 +1,10 @@
1
1
  import { Context } from "../types/context";
2
- import { GitlabJobs } from "../types/gitlab-types";
2
+ import { CatladderJob } from "../types/jobs";
3
3
  import { BuildConfig } from "./types";
4
4
  export * from "./types";
5
5
  export * from "./node";
6
6
  export declare type BuildTypes = { [type in BuildConfig["type"]]: {
7
- jobs: (context: Context) => GitlabJobs;
7
+ jobs: (context: Context) => CatladderJob[];
8
8
  defaults: () => Partial<Extract<BuildConfig, {
9
9
  type: type;
10
10
  }>>;
@@ -48,7 +48,7 @@ exports.BUILD_TYPES = {
48
48
  jobs: node_1.createStorybookJobs,
49
49
  defaults: function () {
50
50
  return {
51
- buildCommand: ["yarn storybook", "mv ./storybook-out /dist"]
51
+ buildCommand: ["yarn build-storybook --quiet -o ./dist"]
52
52
  };
53
53
  }
54
54
  },
@@ -1,3 +1,3 @@
1
1
  import { Context } from "../../types/context";
2
- import { GitlabJobs } from "../../types/gitlab-types";
3
- export declare const createNodeBuildJobs: (context: Context) => GitlabJobs;
2
+ import { CatladderJob } from "../../types/jobs";
3
+ export declare const createNodeBuildJobs: (context: Context) => CatladderJob[];
@@ -60,14 +60,18 @@ var createBuildJob_1 = require("../base/createBuildJob");
60
60
 
61
61
  var docker_1 = require("../docker");
62
62
 
63
+ var path_1 = require("path");
64
+
63
65
  var types_1 = require("../types");
64
66
 
65
67
  var cache_1 = require("./cache");
66
68
 
69
+ var constants_2 = require("./constants");
70
+
67
71
  var yarn_1 = require("./yarn");
68
72
 
69
73
  var createNodeBuildJobs = function (context) {
70
- var _a;
74
+ var _a, _b, _c, _d, _e;
71
75
 
72
76
  var buildConfig = context.componentConfig.build;
73
77
 
@@ -77,21 +81,33 @@ var createNodeBuildJobs = function (context) {
77
81
 
78
82
  var yarnInstall = (0, yarn_1.getYarnInstall)(context);
79
83
  var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
84
+ variables: __assign({}, constants_2.NODE_RUNNER_BUILD_VARIABLES),
80
85
  cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read((0, cache_1.getNextCache)(context)), false),
81
86
  script: __spreadArray(__spreadArray([], __read(yarnInstall), false), __read((_a = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _a !== void 0 ? _a : []), false),
82
87
  artifacts: {
83
- paths: [context.componentConfig.dir + "/__build_info.json", context.componentConfig.dir + "/dist", context.componentConfig.dir + "/.next"]
88
+ paths: __spreadArray([(0, path_1.join)(context.componentConfig.dir, "__build_info.json"), (0, path_1.join)(context.componentConfig.dir, "dist"), (0, path_1.join)(context.componentConfig.dir, ".next")], __read((_c = (_b = buildConfig.artifactsPaths) === null || _b === void 0 ? void 0 : _b.map(function (path) {
89
+ return (0, path_1.join)(context.componentConfig.dir, path);
90
+ })) !== null && _c !== void 0 ? _c : []), false)
84
91
  }
85
92
  }) : null;
86
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), [{
87
- name: docker_1.DOCKER_BUILD_JOB_NAME,
88
- envMode: "jobPerEnv",
89
- job: __assign(__assign({}, (0, docker_1.createDockerBuildJob)(context, {
90
- script: [buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"]
91
- })), {
92
- needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
93
- })
94
- }], false);
93
+ return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
94
+ script: [buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"],
95
+ cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
96
+ variables: {
97
+ // only required for non static
98
+ YARN_INSTALL: (0, yarn_1.getYarnInstallCommand)(context, {
99
+ prodOnly: true
100
+ }),
101
+ YARN_INSTALL_WITHOUT_SCRIPTS: (0, yarn_1.getYarnInstallCommand)(context, {
102
+ prodOnly: true,
103
+ noScripts: true
104
+ }),
105
+ DOCKER_COPY_WORKSPACE_FILES: (_e = (_d = context.packageManagerInfo) === null || _d === void 0 ? void 0 : _d.pathsToCopyInDocker.map(function (dir) {
106
+ return "COPY --chown=node:node ".concat(dir, " /app/").concat(dir);
107
+ })) === null || _e === void 0 ? void 0 : _e.join("\n")
108
+ },
109
+ needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
110
+ })] : []), false);
95
111
  };
96
112
 
97
113
  exports.createNodeBuildJobs = createNodeBuildJobs;
@@ -1,4 +1,6 @@
1
1
  import { Context } from "../../types/context";
2
2
  import { GitlabJobCache } from "../../types/gitlab-types";
3
- export declare const getNodeCache: (context: Context) => GitlabJobCache[];
3
+ export declare const getYarnCache: (context: Context, policy?: string) => GitlabJobCache[];
4
+ export declare const getNodeModulesCache: (context: Context, policy?: string) => GitlabJobCache[];
5
+ export declare const getNodeCache: (context: Context, policy?: string) => GitlabJobCache[];
4
6
  export declare const getNextCache: (context: Context) => GitlabJobCache[];
@@ -36,24 +36,52 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
36
36
  };
37
37
 
38
38
  exports.__esModule = true;
39
- exports.getNextCache = exports.getNodeCache = void 0;
39
+ exports.getNextCache = exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
40
40
 
41
41
  var path_1 = require("path");
42
42
 
43
- var getNodeCache = function (context) {
43
+ var getYarnCache = function (context, policy) {
44
+ if (policy === void 0) {
45
+ policy = "pull-push";
46
+ }
47
+
48
+ return [{
49
+ key: "yarn",
50
+ policy: policy,
51
+ paths: [".yarn"]
52
+ }];
53
+ };
54
+
55
+ exports.getYarnCache = getYarnCache;
56
+
57
+ var getNodeModulesCache = function (context, policy) {
44
58
  var _a, _b, _c;
45
59
 
46
- var componentIsInWorkspace = (_a = context.yarnInfo) === null || _a === void 0 ? void 0 : _a.componentIsInWorkspace;
60
+ if (policy === void 0) {
61
+ policy = "pull-push";
62
+ }
63
+
64
+ var componentIsInWorkspace = (_a = context.packageManagerInfo) === null || _a === void 0 ? void 0 : _a.componentIsInWorkspace;
47
65
  return [{
48
66
  // if component is in a shared workspace, use workspace cache. use individual cache else
49
- key: componentIsInWorkspace ? "node-modules-workspace" : context.componentName + "-node-modules",
50
- policy: "pull-push",
51
- paths: __spreadArray([".yarn"], __read(componentIsInWorkspace ? __spreadArray(["node_modules"], __read((_c = (_b = context.yarnInfo) === null || _b === void 0 ? void 0 : _b.workspaces.map(function (w) {
67
+ key: componentIsInWorkspace ? "node-modules-workspace" : context.componentConfig.dir + "-node-modules",
68
+ policy: policy,
69
+ paths: __spreadArray([], __read(componentIsInWorkspace ? __spreadArray(["node_modules"], __read((_c = (_b = context.packageManagerInfo) === null || _b === void 0 ? void 0 : _b.workspaces.map(function (w) {
52
70
  return (0, path_1.join)(w.location, "node_modules");
53
71
  })) !== null && _c !== void 0 ? _c : []), false) : [(0, path_1.join)(context.componentConfig.dir, "node_modules")]), false)
54
72
  }];
55
73
  };
56
74
 
75
+ exports.getNodeModulesCache = getNodeModulesCache;
76
+
77
+ var getNodeCache = function (context, policy) {
78
+ if (policy === void 0) {
79
+ policy = "pull-push";
80
+ }
81
+
82
+ return __spreadArray(__spreadArray([], __read((0, exports.getYarnCache)(context, policy)), false), __read((0, exports.getNodeModulesCache)(context, policy)), false);
83
+ };
84
+
57
85
  exports.getNodeCache = getNodeCache;
58
86
 
59
87
  var getNextCache = function (context) {
@@ -5,6 +5,6 @@ exports.NODE_RUNNER_BUILD_VARIABLES = void 0;
5
5
  exports.NODE_RUNNER_BUILD_VARIABLES = {
6
6
  KUBERNETES_CPU_REQUEST: "0.5",
7
7
  KUBERNETES_CPU_LIMIT: "2",
8
- KUBERNETES_MEMORY_REQUEST: "512Mi",
9
- KUBERNETES_MEMORY_LIMIT: "2Gi"
8
+ KUBERNETES_MEMORY_REQUEST: "2Gi",
9
+ KUBERNETES_MEMORY_LIMIT: "4Gi"
10
10
  };
@@ -1,5 +1,5 @@
1
1
  import type { Context } from "../../types/context";
2
- import type { GitlabJobs } from "../../types/gitlab-types";
3
- export declare const createNodeJobs: (context: Context) => GitlabJobs;
4
- export declare const createStorybookJobs: (context: Context) => GitlabJobs;
5
- export declare const createMeteorJobs: (context: Context) => GitlabJobs;
2
+ import { CatladderJob } from "../../types/jobs";
3
+ export declare const createNodeJobs: (context: Context) => CatladderJob[];
4
+ export declare const createStorybookJobs: (context: Context) => CatladderJob[];
5
+ export declare const createMeteorJobs: (context: Context) => CatladderJob[];
@@ -1,3 +1,3 @@
1
1
  import type { Context } from "../../types/context";
2
- import type { GitlabJobs } from "../../types/gitlab-types";
3
- export declare const createMeteorBuildJobs: (context: Context) => GitlabJobs;
2
+ import { CatladderJob } from "../../types/jobs";
3
+ export declare const createMeteorBuildJobs: (context: Context) => CatladderJob[];
@@ -1,19 +1,5 @@
1
1
  "use strict";
2
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
3
  var __read = this && this.__read || function (o, n) {
18
4
  var m = typeof Symbol === "function" && o[Symbol.iterator];
19
5
  if (!m) return o;
@@ -54,6 +40,8 @@ exports.createMeteorBuildJobs = void 0;
54
40
 
55
41
  var path_1 = require("path");
56
42
 
43
+ var runner_1 = require("../../runner");
44
+
57
45
  var constants_1 = require("../base/constants");
58
46
 
59
47
  var createBuildJob_1 = require("../base/createBuildJob");
@@ -84,20 +72,16 @@ var createMeteorBuildJobs = function (context) {
84
72
  var yarnInstall = (0, yarn_1.getYarnInstall)(context);
85
73
  var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
86
74
  cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read(getMeteorCache(context)), false),
75
+ image: (0, runner_1.getRunnerImage)("jobs-meteor"),
87
76
  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
77
  artifacts: {
89
78
  paths: [context.componentConfig.dir + "/__build_info.json", context.componentConfig.dir + "/dist"]
90
79
  }
91
80
  }) : 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);
81
+ return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), [(0, docker_1.createDockerBuildJobDefault)(context, {
82
+ script: ["ensureMeteorDockerfile"],
83
+ needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
84
+ })], false);
101
85
  };
102
86
 
103
87
  exports.createMeteorBuildJobs = createMeteorBuildJobs;
@@ -1,3 +1,3 @@
1
1
  import { Context } from "../../types/context";
2
- import { GitlabJobs } from "../../types/gitlab-types";
3
- export declare const createNodeTestJobs: (context: Context) => GitlabJobs;
2
+ import { CatladderJob } from "../../types/jobs";
3
+ export declare const createNodeTestJobs: (context: Context) => CatladderJob[];
@@ -52,8 +52,6 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
52
52
  exports.__esModule = true;
53
53
  exports.createNodeTestJobs = void 0;
54
54
 
55
- var defaults_1 = require("../../defaults");
56
-
57
55
  var utils_1 = require("../../utils");
58
56
 
59
57
  var cache_1 = require("./cache");
@@ -63,7 +61,7 @@ var constants_1 = require("./constants");
63
61
  var yarn_1 = require("./yarn");
64
62
 
65
63
  var createNodeTestJobs = function (context) {
66
- var _a, _b, _c, _d, _e, _f, _g, _h; // don't run tests after release
64
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j; // don't run tests after release
67
65
 
68
66
 
69
67
  if (((_a = context.commitInfo) === null || _a === void 0 ? void 0 : _a.trigger) === "taggedRelease") {
@@ -76,36 +74,30 @@ var createNodeTestJobs = function (context) {
76
74
  APP_PATH: context.componentConfig.dir
77
75
  }, constants_1.NODE_RUNNER_BUILD_VARIABLES), (_b = buildConfig.extraVars) !== null && _b !== void 0 ? _b : {}),
78
76
  stage: "test",
79
- interruptible: true,
80
77
  needs: [],
81
- retry: defaults_1.BASE_RETRY
78
+ envMode: "none"
82
79
  };
83
80
  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;
81
+ var auditJob = buildConfig.audit !== false ? __assign(__assign({
82
+ name: "๐Ÿ›ก audit"
83
+ }, base), {
84
+ cache: undefined,
85
+ 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 : [((_e = context.packageManagerInfo) === null || _e === void 0 ? void 0 : _e.isClassic) ? "yarn audit" : "yarn npm audit --environment production" // yarn 2
86
+ ]), false),
87
+ allow_failure: true
88
+ }) : null;
89
+ var lintJob = buildConfig.lint !== false ? __assign(__assign({
90
+ name: "๐Ÿ‘ฎ lint"
91
+ }, base), {
92
+ cache: (0, cache_1.getNodeCache)(context),
93
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(yarnInstall), false), __read((_g = (0, utils_1.ensureArray)((_f = buildConfig.lint) === null || _f === void 0 ? void 0 : _f.command)) !== null && _g !== void 0 ? _g : ["yarn lint"]), false)
94
+ }) : null;
95
+ var testJob = buildConfig.test !== false ? __assign(__assign({
96
+ name: "๐Ÿงช test"
97
+ }, base), {
98
+ cache: (0, cache_1.getNodeCache)(context),
99
+ script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(yarnInstall), false), __read((_j = (0, utils_1.ensureArray)((_h = buildConfig.test) === null || _h === void 0 ? void 0 : _h.command)) !== null && _j !== void 0 ? _j : ["yarn test"]), false)
100
+ }) : null;
109
101
  return [auditJob, lintJob, testJob].filter(utils_1.notNil);
110
102
  };
111
103
 
@@ -1,2 +1,7 @@
1
1
  import { Context } from "../../types";
2
+ export declare const getYarnInstallCommand: (context: Context, options?: {
3
+ prodOnly?: boolean | undefined;
4
+ noScripts?: boolean | undefined;
5
+ } | undefined) => string;
6
+ export declare const ensureNodeVersion: (context: Context) => string[];
2
7
  export declare const getYarnInstall: (context: Context) => string[];