@catladder/pipeline 1.111.4 → 1.112.1

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 (66) hide show
  1. package/dist/build/base/createAppBuildJob.d.ts +8 -0
  2. package/dist/build/base/{createBuildJob.js → createAppBuildJob.js} +3 -3
  3. package/dist/build/base/index.d.ts +8 -0
  4. package/dist/build/base/index.js +57 -0
  5. package/dist/build/custom/buildJob.js +19 -22
  6. package/dist/build/docker.d.ts +2 -4
  7. package/dist/build/docker.js +4 -39
  8. package/dist/build/node/buildJob.js +30 -32
  9. package/dist/build/node/meteor.js +19 -21
  10. package/dist/build/rails/build.js +12 -19
  11. package/dist/build/types.d.ts +4 -3
  12. package/dist/bundles/catladder-gitlab/index.js +1 -1
  13. package/dist/constants.js +1 -1
  14. package/dist/deploy/base/deploy.d.ts +3 -2
  15. package/dist/deploy/base/deploy.js +9 -4
  16. package/dist/deploy/base/index.d.ts +10 -3
  17. package/dist/deploy/base/index.js +37 -16
  18. package/dist/deploy/base/rollback.d.ts +3 -2
  19. package/dist/deploy/base/rollback.js +8 -6
  20. package/dist/deploy/base/stop.d.ts +3 -2
  21. package/dist/deploy/base/stop.js +8 -6
  22. package/dist/deploy/cloudRun/deployJob.js +28 -26
  23. package/dist/deploy/custom/deployJob.js +14 -11
  24. package/dist/deploy/dockerTag/deployJob.js +15 -5
  25. package/dist/deploy/kubernetes/deployJob.js +14 -26
  26. package/dist/deploy/kubernetes/mongodb.d.ts +1 -1
  27. package/dist/deploy/kubernetes/mongodb.js +8 -7
  28. package/dist/deploy/types/index.d.ts +1 -1
  29. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +1 -0
  30. package/dist/pipeline/gitlab/createGitlabJobs.js +4 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/dist/types/gitlab-ci-yml.d.ts +769 -0
  33. package/dist/types/gitlab-ci-yml.js +9 -0
  34. package/dist/types/gitlab-types.d.ts +12 -85
  35. package/dist/types/jobs.d.ts +3 -3
  36. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -36
  37. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -36
  38. package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -36
  39. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -72
  40. package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -36
  41. package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -36
  42. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -36
  43. package/package.json +4 -2
  44. package/scripts/generate-gitlab-ci-types.ts +51 -0
  45. package/src/build/base/{createBuildJob.ts → createAppBuildJob.ts} +3 -2
  46. package/src/build/base/index.ts +35 -0
  47. package/src/build/custom/buildJob.ts +32 -45
  48. package/src/build/docker.ts +14 -17
  49. package/src/build/node/buildJob.ts +50 -61
  50. package/src/build/node/meteor.ts +31 -36
  51. package/src/build/rails/build.ts +8 -10
  52. package/src/build/types.ts +4 -8
  53. package/src/deploy/base/deploy.ts +16 -2
  54. package/src/deploy/base/index.ts +22 -3
  55. package/src/deploy/base/rollback.ts +13 -2
  56. package/src/deploy/base/stop.ts +13 -4
  57. package/src/deploy/cloudRun/deployJob.ts +13 -15
  58. package/src/deploy/custom/deployJob.ts +17 -20
  59. package/src/deploy/dockerTag/deployJob.ts +6 -7
  60. package/src/deploy/kubernetes/deployJob.ts +17 -34
  61. package/src/deploy/kubernetes/mongodb.ts +3 -2
  62. package/src/pipeline/gitlab/createGitlabJobs.ts +3 -0
  63. package/src/types/gitlab-ci-yml.ts +892 -0
  64. package/src/types/gitlab-types.ts +49 -86
  65. package/src/types/jobs.ts +3 -4
  66. package/dist/build/base/createBuildJob.d.ts +0 -7
@@ -0,0 +1,8 @@
1
+ import type { Context } from "../..";
2
+ import type { CatladderJob } from "../../types/jobs";
3
+ export declare type AppBuildJobDefinition = Partial<CatladderJob>;
4
+ export declare const createAppBuildJob: (context: Context, {
5
+ script,
6
+ variables,
7
+ ...def
8
+ }: AppBuildJobDefinition) => CatladderJob;
@@ -50,7 +50,7 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
50
50
  return to.concat(ar || Array.prototype.slice.call(from));
51
51
  };
52
52
  exports.__esModule = true;
53
- exports.createBuildJob = void 0;
53
+ exports.createAppBuildJob = void 0;
54
54
  var lodash_1 = require("lodash");
55
55
  var path_1 = require("path");
56
56
  var __1 = require("../..");
@@ -59,7 +59,7 @@ var yarn_1 = require("../node/yarn");
59
59
  var constants_1 = require("./constants");
60
60
  var writeBuildInfo_1 = require("./writeBuildInfo");
61
61
  var writeDotEnv_1 = require("./writeDotEnv");
62
- var createBuildJob = function (context, _a) {
62
+ var createAppBuildJob = function (context, _a) {
63
63
  var _b, _c, _d, _e;
64
64
  var script = _a.script,
65
65
  variables = _a.variables,
@@ -83,4 +83,4 @@ var createBuildJob = function (context, _a) {
83
83
  }
84
84
  }, def);
85
85
  };
86
- exports.createBuildJob = createBuildJob;
86
+ exports.createAppBuildJob = createAppBuildJob;
@@ -0,0 +1,8 @@
1
+ import type { Context } from "../../types/context";
2
+ import type { CatladderJob } from "../../types/jobs";
3
+ import type { DockerBuildJobDefinition } from "../docker";
4
+ import type { AppBuildJobDefinition } from "./createAppBuildJob";
5
+ export declare const createBuildJobs: (context: Context, definitions: {
6
+ appBuild?: AppBuildJobDefinition;
7
+ dockerBuild: DockerBuildJobDefinition;
8
+ }) => CatladderJob[];
@@ -0,0 +1,57 @@
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
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 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),
17
+ r,
18
+ ar = [],
19
+ e;
20
+ try {
21
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
22
+ } catch (error) {
23
+ e = {
24
+ error: error
25
+ };
26
+ } finally {
27
+ try {
28
+ if (r && !r.done && (m = i["return"])) m.call(i);
29
+ } finally {
30
+ if (e) throw e.error;
31
+ }
32
+ }
33
+ return ar;
34
+ };
35
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
36
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
37
+ if (ar || !(i in from)) {
38
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
39
+ ar[i] = from[i];
40
+ }
41
+ }
42
+ return to.concat(ar || Array.prototype.slice.call(from));
43
+ };
44
+ exports.__esModule = true;
45
+ exports.createBuildJobs = void 0;
46
+ var sbom_1 = require("../../deploy/sbom");
47
+ var docker_1 = require("../docker");
48
+ var sbom_2 = require("../sbom");
49
+ var constants_1 = require("./constants");
50
+ var createAppBuildJob_1 = require("./createAppBuildJob");
51
+ var createBuildJobs = function (context, definitions) {
52
+ var _a;
53
+ return __spreadArray(__spreadArray(__spreadArray([], __read(definitions.appBuild ? [(0, createAppBuildJob_1.createAppBuildJob)(context, definitions.appBuild)] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobBase)(context, __assign(__assign({}, definitions.dockerBuild), {
54
+ needs: __spreadArray(__spreadArray([], __read((_a = definitions.dockerBuild.needs) !== null && _a !== void 0 ? _a : []), false), __read(definitions.appBuild ? [constants_1.APP_BUILD_JOB_NAME] : []), false)
55
+ }))] : []), false), __read((0, sbom_1.sbomDeactivated)(context) ? [] : [(0, sbom_2.createSbomBuildJob)(context)]), false);
56
+ };
57
+ exports.createBuildJobs = createBuildJobs;
@@ -45,12 +45,9 @@ exports.__esModule = true;
45
45
  exports.createCustomBuildJobs = void 0;
46
46
  var path_1 = require("path");
47
47
  var utils_1 = require("../../utils");
48
- var constants_1 = require("../base/constants");
49
- var createBuildJob_1 = require("../base/createBuildJob");
50
48
  var docker_1 = require("../docker");
51
49
  var types_1 = require("../types");
52
- var sbom_1 = require("../sbom");
53
- var sbom_2 = require("../../deploy/sbom");
50
+ var base_1 = require("../base");
54
51
  var RUNNER_BUILD_VARIABLES = {
55
52
  KUBERNETES_CPU_REQUEST: "0.5",
56
53
  KUBERNETES_CPU_LIMIT: "2",
@@ -63,24 +60,24 @@ var createCustomBuildJobs = function (context) {
63
60
  if (!(0, types_1.isOfBuildType)(buildConfig, "custom")) {
64
61
  throw new Error("deploy config is not custom");
65
62
  }
66
- var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
67
- image: buildConfig.jobImage,
68
- variables: __assign({}, RUNNER_BUILD_VARIABLES),
69
- cache: buildConfig.jobCache,
70
- services: buildConfig.jobServices,
71
- script: __spreadArray([], __read((_a = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _a !== void 0 ? _a : []), false),
72
- artifacts: {
73
- paths: __spreadArray([(0, path_1.join)(context.componentConfig.dir, "__build_info.json"), (0, path_1.join)(context.componentConfig.dir, "dist")], __read((_c = (_b = buildConfig.artifactsPaths) === null || _b === void 0 ? void 0 : _b.map(function (path) {
74
- return (0, path_1.join)(context.componentConfig.dir, path);
75
- })) !== null && _c !== void 0 ? _c : []), false),
76
- expire_in: "1 day"
63
+ return (0, base_1.createBuildJobs)(context, {
64
+ appBuild: buildConfig.buildCommand !== null ? {
65
+ image: buildConfig.jobImage,
66
+ variables: __assign({}, RUNNER_BUILD_VARIABLES),
67
+ cache: buildConfig.jobCache,
68
+ services: buildConfig.jobServices,
69
+ script: __spreadArray([], __read((_a = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _a !== void 0 ? _a : []), false),
70
+ artifacts: {
71
+ paths: __spreadArray([(0, path_1.join)(context.componentConfig.dir, "__build_info.json"), (0, path_1.join)(context.componentConfig.dir, "dist")], __read((_c = (_b = buildConfig.artifactsPaths) === null || _b === void 0 ? void 0 : _b.map(function (path) {
72
+ return (0, path_1.join)(context.componentConfig.dir, path);
73
+ })) !== null && _c !== void 0 ? _c : []), false),
74
+ expire_in: "1 day"
75
+ }
76
+ } : undefined,
77
+ dockerBuild: {
78
+ script: (0, docker_1.getDockerBuildDefaultScript)(((_d = buildConfig.docker) === null || _d === void 0 ? void 0 : _d.type) === "nginx" ? "ensureNginxDockerfile" : ""),
79
+ variables: {}
77
80
  }
78
- }) : null;
79
- return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
80
- script: [((_d = buildConfig.docker) === null || _d === void 0 ? void 0 : _d.type) === "nginx" ? "ensureNginxDockerfile" : "" // e.g. custom,
81
- ].filter(Boolean),
82
- variables: {},
83
- needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
84
- })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
81
+ });
85
82
  };
86
83
  exports.createCustomBuildJobs = createCustomBuildJobs;
@@ -50,12 +50,10 @@ export declare const getDockerJobBaseProps: (context: Context) => {
50
50
  DOCKER_BUILDKIT: string;
51
51
  };
52
52
  };
53
+ export declare type DockerBuildJobDefinition = Partial<CatladderJob>;
53
54
  export declare const createDockerBuildJobBase: (context: Context, {
54
55
  script,
55
56
  ...def
56
57
  }: Partial<CatladderJob>) => CatladderJob;
57
58
  export declare const gitlabDockerLogin = "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY";
58
- export declare const createDockerBuildJobDefault: (context: Context, {
59
- script,
60
- ...def
61
- }: Partial<CatladderJob>) => CatladderJob;
59
+ export declare const getDockerBuildDefaultScript: (ensureDockerFileScript?: string | undefined) => (string | undefined)[];
@@ -18,39 +18,8 @@ var __rest = this && this.__rest || function (s, e) {
18
18
  }
19
19
  return t;
20
20
  };
21
- var __read = this && this.__read || function (o, n) {
22
- var m = typeof Symbol === "function" && o[Symbol.iterator];
23
- if (!m) return o;
24
- var i = m.call(o),
25
- r,
26
- ar = [],
27
- e;
28
- try {
29
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
- } catch (error) {
31
- e = {
32
- error: error
33
- };
34
- } finally {
35
- try {
36
- if (r && !r.done && (m = i["return"])) m.call(i);
37
- } finally {
38
- if (e) throw e.error;
39
- }
40
- }
41
- return ar;
42
- };
43
- var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
44
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
45
- if (ar || !(i in from)) {
46
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
47
- ar[i] = from[i];
48
- }
49
- }
50
- return to.concat(ar || Array.prototype.slice.call(from));
51
- };
52
21
  exports.__esModule = true;
53
- exports.createDockerBuildJobDefault = exports.gitlabDockerLogin = exports.createDockerBuildJobBase = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
22
+ exports.getDockerBuildDefaultScript = exports.gitlabDockerLogin = exports.createDockerBuildJobBase = exports.getDockerJobBaseProps = exports.DOCKER_BUILD_JOB_NAME = exports.getDockerBuildVariables = exports.requiresDockerBuild = exports.getDockerImageVariables = void 0;
54
23
  var lodash_1 = require("lodash");
55
24
  var deploy_1 = require("../deploy");
56
25
  var runner_1 = require("../runner");
@@ -124,11 +93,7 @@ var createDockerBuildJobBase = function (context, _a) {
124
93
  };
125
94
  exports.createDockerBuildJobBase = createDockerBuildJobBase;
126
95
  exports.gitlabDockerLogin = "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY";
127
- var createDockerBuildJobDefault = function (context, _a) {
128
- var script = _a.script,
129
- def = __rest(_a, ["script"]);
130
- return (0, exports.createDockerBuildJobBase)(context, __assign({
131
- script: __spreadArray(__spreadArray([], __read(script || []), false), [exports.gitlabDockerLogin, "docker version", "docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1", "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE", "docker push $DOCKER_CACHE_IMAGE"], false)
132
- }, def));
96
+ var getDockerBuildDefaultScript = function (ensureDockerFileScript) {
97
+ return [ensureDockerFileScript, exports.gitlabDockerLogin, "docker version", "docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1", "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE", "docker push $DOCKER_CACHE_IMAGE"].filter(Boolean);
133
98
  };
134
- exports.createDockerBuildJobDefault = createDockerBuildJobDefault;
99
+ exports.getDockerBuildDefaultScript = getDockerBuildDefaultScript;
@@ -43,18 +43,15 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
43
43
  };
44
44
  exports.__esModule = true;
45
45
  exports.createNodeBuildJobs = void 0;
46
+ var path_1 = require("path");
47
+ var runner_1 = require("../../runner");
46
48
  var utils_1 = require("../../utils");
47
- var constants_1 = require("../base/constants");
48
- var createBuildJob_1 = require("../base/createBuildJob");
49
+ var base_1 = require("../base");
49
50
  var docker_1 = require("../docker");
50
- var path_1 = require("path");
51
51
  var types_1 = require("../types");
52
52
  var cache_1 = require("./cache");
53
- var constants_2 = require("./constants");
53
+ var constants_1 = require("./constants");
54
54
  var yarn_1 = require("./yarn");
55
- var runner_1 = require("../../runner");
56
- var sbom_1 = require("../sbom");
57
- var sbom_2 = require("../../deploy/sbom");
58
55
  var createNodeBuildJobs = function (context) {
59
56
  var _a, _b, _c, _d, _e, _f, _g;
60
57
  var buildConfig = context.componentConfig.build;
@@ -63,30 +60,31 @@ var createNodeBuildJobs = function (context) {
63
60
  }
64
61
  var defaultImage = (0, runner_1.getRunnerImage)("jobs-default");
65
62
  var yarnInstall = (0, yarn_1.getYarnInstall)(context);
66
- var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
67
- image: (_a = buildConfig.jobImage) !== null && _a !== void 0 ? _a : defaultImage,
68
- variables: __assign({}, constants_2.NODE_RUNNER_BUILD_VARIABLES),
69
- cache: __spreadArray(__spreadArray(__spreadArray([], __read((_b = (0, utils_1.ensureArray)(buildConfig.jobCache)) !== null && _b !== void 0 ? _b : []), false), __read((0, cache_1.getNodeCache)(context)), false), __read((0, cache_1.getNextCache)(context)), false),
70
- script: __spreadArray(__spreadArray([], __read(yarnInstall), false), __read((_c = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _c !== void 0 ? _c : []), false),
71
- artifacts: {
72
- 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((_e = (_d = buildConfig.artifactsPaths) === null || _d === void 0 ? void 0 : _d.map(function (path) {
73
- return (0, path_1.join)(context.componentConfig.dir, path);
74
- })) !== null && _e !== void 0 ? _e : []), false),
75
- expire_in: "1 day"
76
- },
77
- jobTags: buildConfig.jobTags
78
- }) : null;
79
- return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
80
- script: [buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"],
81
- cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
82
- variables: {
83
- // only required for non static
84
- DOCKER_COPY_AND_INSTALL_APP: (0, yarn_1.getDockerAppCopyAndBuildScript)(context),
85
- DOCKER_COPY_WORKSPACE_FILES: (_g = (_f = context.packageManagerInfo) === null || _f === void 0 ? void 0 : _f.pathsToCopyInDocker.map(function (dir) {
86
- return "COPY --chown=node:node ".concat(dir, " /app/").concat(dir);
87
- })) === null || _g === void 0 ? void 0 : _g.join("\n")
88
- },
89
- needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
90
- })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
63
+ return (0, base_1.createBuildJobs)(context, {
64
+ appBuild: buildConfig.buildCommand !== null ? {
65
+ image: (_a = buildConfig.jobImage) !== null && _a !== void 0 ? _a : defaultImage,
66
+ variables: __assign({}, constants_1.NODE_RUNNER_BUILD_VARIABLES),
67
+ cache: __spreadArray(__spreadArray(__spreadArray([], __read((_b = (0, utils_1.ensureArray)(buildConfig.jobCache)) !== null && _b !== void 0 ? _b : []), false), __read((0, cache_1.getNodeCache)(context)), false), __read((0, cache_1.getNextCache)(context)), false),
68
+ script: __spreadArray(__spreadArray([], __read(yarnInstall), false), __read((_c = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _c !== void 0 ? _c : []), false),
69
+ artifacts: {
70
+ 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((_e = (_d = buildConfig.artifactsPaths) === null || _d === void 0 ? void 0 : _d.map(function (path) {
71
+ return (0, path_1.join)(context.componentConfig.dir, path);
72
+ })) !== null && _e !== void 0 ? _e : []), false),
73
+ expire_in: "1 day"
74
+ },
75
+ jobTags: buildConfig.jobTags
76
+ } : undefined,
77
+ dockerBuild: {
78
+ script: (0, docker_1.getDockerBuildDefaultScript)(buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"),
79
+ cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
80
+ variables: {
81
+ // only required for non static
82
+ DOCKER_COPY_AND_INSTALL_APP: (0, yarn_1.getDockerAppCopyAndBuildScript)(context),
83
+ DOCKER_COPY_WORKSPACE_FILES: (_g = (_f = context.packageManagerInfo) === null || _f === void 0 ? void 0 : _f.pathsToCopyInDocker.map(function (dir) {
84
+ return "COPY --chown=node:node ".concat(dir, " /app/").concat(dir);
85
+ })) === null || _g === void 0 ? void 0 : _g.join("\n")
86
+ }
87
+ }
88
+ });
91
89
  };
92
90
  exports.createNodeBuildJobs = createNodeBuildJobs;
@@ -35,14 +35,11 @@ exports.__esModule = true;
35
35
  exports.createMeteorBuildJobs = void 0;
36
36
  var path_1 = require("path");
37
37
  var runner_1 = require("../../runner");
38
- var constants_1 = require("../base/constants");
39
- var createBuildJob_1 = require("../base/createBuildJob");
38
+ var base_1 = require("../base");
40
39
  var docker_1 = require("../docker");
41
40
  var types_1 = require("../types");
42
41
  var cache_1 = require("./cache");
43
42
  var yarn_1 = require("./yarn");
44
- var sbom_1 = require("../../deploy/sbom");
45
- var sbom_2 = require("../sbom");
46
43
  var getMeteorCache = function (context) {
47
44
  return [{
48
45
  key: context.componentName + "meteor-build-cache",
@@ -56,23 +53,24 @@ var createMeteorBuildJobs = function (context) {
56
53
  throw new Error("deploy config is not meteor");
57
54
  }
58
55
  var yarnInstall = (0, yarn_1.getYarnInstall)(context);
59
- var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
60
- cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read(getMeteorCache(context)), false),
61
- image: (0, runner_1.getRunnerImage)("jobs-meteor"),
62
- variables: {
63
- METEOR_DISABLE_OPTIMISTIC_CACHING: "1"
64
- },
65
- 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),
66
- artifacts: {
67
- paths: [context.componentConfig.dir + "/__build_info.json", context.componentConfig.dir + "/dist"]
56
+ return (0, base_1.createBuildJobs)(context, {
57
+ appBuild: buildConfig.buildCommand !== null ? {
58
+ cache: __spreadArray(__spreadArray([], __read((0, cache_1.getNodeCache)(context)), false), __read(getMeteorCache(context)), false),
59
+ image: (0, runner_1.getRunnerImage)("jobs-meteor"),
60
+ variables: {
61
+ METEOR_DISABLE_OPTIMISTIC_CACHING: "1"
62
+ },
63
+ 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),
64
+ artifacts: {
65
+ paths: [context.componentConfig.dir + "/__build_info.json", context.componentConfig.dir + "/dist"]
66
+ }
67
+ } : undefined,
68
+ dockerBuild: {
69
+ script: (0, docker_1.getDockerBuildDefaultScript)("ensureMeteorDockerfile"),
70
+ variables: {
71
+ METEOR_INSTALL_SCRIPTS: buildConfig.installScripts ? "true" : ""
72
+ }
68
73
  }
69
- }) : null;
70
- return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), [(0, docker_1.createDockerBuildJobDefault)(context, {
71
- script: ["ensureMeteorDockerfile"],
72
- variables: {
73
- METEOR_INSTALL_SCRIPTS: buildConfig.installScripts ? "true" : ""
74
- },
75
- needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
76
- })], false), __read((0, sbom_1.sbomDeactivated)(context) ? [] : [(0, sbom_2.createSbomBuildJob)(context)]), false);
74
+ });
77
75
  };
78
76
  exports.createMeteorBuildJobs = createMeteorBuildJobs;
@@ -32,21 +32,11 @@ var __read = this && this.__read || function (o, n) {
32
32
  }
33
33
  return ar;
34
34
  };
35
- var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
36
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
37
- if (ar || !(i in from)) {
38
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
39
- ar[i] = from[i];
40
- }
41
- }
42
- return to.concat(ar || Array.prototype.slice.call(from));
43
- };
44
35
  exports.__esModule = true;
45
36
  exports.createRailsBuildJobs = void 0;
46
- var types_1 = require("../types");
37
+ var base_1 = require("../base");
47
38
  var docker_1 = require("../docker");
48
- var sbom_1 = require("../../deploy/sbom");
49
- var sbom_2 = require("../sbom");
39
+ var types_1 = require("../types");
50
40
  var createRailsBuildJobs = function (context) {
51
41
  var _a, _b, _c;
52
42
  var buildConfig = context.componentConfig.build;
@@ -61,12 +51,15 @@ var createRailsBuildJobs = function (context) {
61
51
  v = _b[1];
62
52
  return "--env '".concat(k).concat(v ? "=".concat(v) : "", "'");
63
53
  }).join(" ");
64
- return __spreadArray([(0, docker_1.createDockerBuildJobBase)(context, {
65
- variables: __assign(__assign({}, context.environment.jobOnlyVars.build.envVars), context.componentConfig.build.extraVars),
66
- // custom script
67
- script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_CACHE_IMAGE || true", "wget --output-document=- https://github.com/buildpacks/pack/releases/download/v".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "/pack-v").concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "-linux.tgz | tar -zx --directory /usr/local/bin pack"), "chmod +x /usr/local/bin/pack",
68
- // replace private git ssh gem sources with https to make bundler with credentials via env var work
69
- "sed --in-place 's|git@\\([^:]*\\):|https://\\1/|g' Gemfile Gemfile.lock", "pack build \"$DOCKER_IMAGE:$DOCKER_IMAGE_TAG\" --builder '".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.image, "' --publish --cache-image \"$DOCKER_CACHE_IMAGE\" ").concat(packEnvArgs, " ").concat((_c = (_b = cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packExtraArgs) === null || _b === void 0 ? void 0 : _b.join(" ")) !== null && _c !== void 0 ? _c : "")]
70
- })], __read((0, sbom_1.sbomDeactivated)(context) ? [] : [(0, sbom_2.createSbomBuildJob)(context)]), false);
54
+ return (0, base_1.createBuildJobs)(context, {
55
+ appBuild: undefined,
56
+ dockerBuild: {
57
+ variables: __assign(__assign({}, context.environment.jobOnlyVars.build.envVars), context.componentConfig.build.extraVars),
58
+ // custom script
59
+ script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_CACHE_IMAGE || true", "wget --output-document=- https://github.com/buildpacks/pack/releases/download/v".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "/pack-v").concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packVersion, "-linux.tgz | tar -zx --directory /usr/local/bin pack"), "chmod +x /usr/local/bin/pack",
60
+ // replace private git ssh gem sources with https to make bundler with credentials via env var work
61
+ "sed --in-place 's|git@\\([^:]*\\):|https://\\1/|g' Gemfile Gemfile.lock", "pack build \"$DOCKER_IMAGE:$DOCKER_IMAGE_TAG\" --builder '".concat(cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.image, "' --publish --cache-image \"$DOCKER_CACHE_IMAGE\" ").concat(packEnvArgs, " ").concat((_c = (_b = cnbConf === null || cnbConf === void 0 ? void 0 : cnbConf.packExtraArgs) === null || _b === void 0 ? void 0 : _b.join(" ")) !== null && _c !== void 0 ? _c : "")]
62
+ }
63
+ });
71
64
  };
72
65
  exports.createRailsBuildJobs = createRailsBuildJobs;
@@ -1,4 +1,5 @@
1
- import type { Artifacts, EnvVars, GitlabJobImage, GitlabJobService } from "../types";
1
+ import type { Artifacts, EnvVars, GitlabJobImage } from "../types";
2
+ import type { Services } from "../types/gitlab-ci-yml";
2
3
  import type { CatladderJob } from "../types/jobs";
3
4
  export declare type BuildConfigArtifactsReports = {
4
5
  /**
@@ -137,9 +138,9 @@ export declare type BuildConfigCustom = Omit<BuildConfigBase, "lint" | "test" |
137
138
  type: "custom";
138
139
  jobImage: GitlabJobImage;
139
140
  /**
140
- * {@link GitlabJobService}s used in lint, test, audit, and build jobs.
141
+ * {@link Services}s used in lint, test, audit, and build jobs.
141
142
  */
142
- jobServices?: GitlabJobService[];
143
+ jobServices?: Services;
143
144
  docker: BuildConfigCustomDocker;
144
145
  /**
145
146
  * custom lint, disabled when not set