@catladder/pipeline 1.111.5 → 1.113.0

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 (72) 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/context/getLabels.d.ts +1 -0
  15. package/dist/context/getLabels.js +1 -0
  16. package/dist/deploy/base/deploy.d.ts +3 -2
  17. package/dist/deploy/base/deploy.js +9 -4
  18. package/dist/deploy/base/index.d.ts +10 -3
  19. package/dist/deploy/base/index.js +37 -16
  20. package/dist/deploy/base/rollback.d.ts +3 -2
  21. package/dist/deploy/base/rollback.js +8 -6
  22. package/dist/deploy/base/stop.d.ts +3 -2
  23. package/dist/deploy/base/stop.js +8 -6
  24. package/dist/deploy/cloudRun/deployJob.js +28 -26
  25. package/dist/deploy/custom/deployJob.js +14 -11
  26. package/dist/deploy/dockerTag/deployJob.js +15 -5
  27. package/dist/deploy/kubernetes/deployJob.js +14 -14
  28. package/dist/deploy/kubernetes/mongodb.d.ts +1 -1
  29. package/dist/deploy/kubernetes/mongodb.js +8 -7
  30. package/dist/deploy/types/index.d.ts +1 -1
  31. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +1 -0
  32. package/dist/pipeline/gitlab/createGitlabJobs.js +4 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/dist/types/gitlab-ci-yml.d.ts +769 -0
  35. package/dist/types/gitlab-ci-yml.js +9 -0
  36. package/dist/types/gitlab-types.d.ts +12 -82
  37. package/dist/types/jobs.d.ts +3 -3
  38. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +4 -4
  39. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +4 -4
  40. package/examples/__snapshots__/cloud-run-non-public.ts.snap +4 -4
  41. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +8 -8
  42. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +24 -24
  43. package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +4 -4
  44. package/examples/__snapshots__/custom-build-job.ts.snap +4 -4
  45. package/examples/__snapshots__/custom-sbom-java.ts.snap +4 -4
  46. package/examples/__snapshots__/native-app.ts.snap +4 -4
  47. package/examples/__snapshots__/node-build-with-custom-image.ts.snap +4 -4
  48. package/package.json +4 -2
  49. package/scripts/generate-gitlab-ci-types.ts +51 -0
  50. package/src/build/base/{createBuildJob.ts → createAppBuildJob.ts} +3 -2
  51. package/src/build/base/index.ts +35 -0
  52. package/src/build/custom/buildJob.ts +32 -45
  53. package/src/build/docker.ts +14 -17
  54. package/src/build/node/buildJob.ts +50 -61
  55. package/src/build/node/meteor.ts +31 -36
  56. package/src/build/rails/build.ts +8 -10
  57. package/src/build/types.ts +4 -8
  58. package/src/context/getLabels.ts +1 -0
  59. package/src/deploy/base/deploy.ts +16 -2
  60. package/src/deploy/base/index.ts +22 -3
  61. package/src/deploy/base/rollback.ts +13 -2
  62. package/src/deploy/base/stop.ts +13 -4
  63. package/src/deploy/cloudRun/deployJob.ts +13 -15
  64. package/src/deploy/custom/deployJob.ts +17 -20
  65. package/src/deploy/dockerTag/deployJob.ts +6 -7
  66. package/src/deploy/kubernetes/deployJob.ts +17 -23
  67. package/src/deploy/kubernetes/mongodb.ts +3 -2
  68. package/src/pipeline/gitlab/createGitlabJobs.ts +3 -0
  69. package/src/types/gitlab-ci-yml.ts +892 -0
  70. package/src/types/gitlab-types.ts +49 -83
  71. package/src/types/jobs.ts +3 -4
  72. package/dist/build/base/createBuildJob.d.ts +0 -7
package/dist/constants.js CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
5
- exports.PIPELINE_IMAGE_TAG = "v1-111-5-e6bbfb36" || "";
5
+ exports.PIPELINE_IMAGE_TAG = "v1-113-0-8de39eaa" || "";
6
6
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "";
@@ -1,6 +1,7 @@
1
1
  import type { Context } from "../types";
2
2
  export declare const getLabels: (context: Context) => {
3
3
  "customer-name": string | undefined;
4
+ "component-name": string | undefined;
4
5
  "app-name": string | undefined;
5
6
  "env-type": string | undefined;
6
7
  "env-name": string | undefined;
@@ -28,6 +28,7 @@ var getLabels = function (context) {
28
28
  var _a, _b, _c;
29
29
  var labels = __assign({
30
30
  "customer-name": sanitize(context.fullConfig.customerName),
31
+ "component-name": sanitize(context.componentName),
31
32
  "app-name": sanitize(context.fullConfig.appName),
32
33
  "env-type": sanitize(context.environment.envType),
33
34
  "env-name": sanitize(context.environment.shortName),
@@ -1,4 +1,5 @@
1
1
  import type { Context } from "../../types/context";
2
- import type { JobWithoutScript } from "./types";
2
+ import type { CatladderJob } from "../../types/jobs";
3
3
  export declare const DEPLOY_JOB_NAME = "\uD83D\uDE80 Deploy";
4
- export declare const getBaseDeploymentJob: (context: Context) => JobWithoutScript;
4
+ export declare type DeployJobDefinition = Pick<CatladderJob, "script" | "variables" | "image" | "cache" | "artifacts" | "services">;
5
+ export declare const createDeployJob: (context: Context, jobDefinition: DeployJobDefinition) => CatladderJob;
@@ -42,7 +42,7 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
42
42
  return to.concat(ar || Array.prototype.slice.call(from));
43
43
  };
44
44
  exports.__esModule = true;
45
- exports.getBaseDeploymentJob = exports.DEPLOY_JOB_NAME = void 0;
45
+ exports.createDeployJob = exports.DEPLOY_JOB_NAME = void 0;
46
46
  var docker_1 = require("../../build/docker");
47
47
  var sbom_1 = require("../../build/sbom");
48
48
  var sbom_2 = require("../sbom");
@@ -50,7 +50,7 @@ var utils_1 = require("../utils");
50
50
  var stop_1 = require("./stop");
51
51
  var variables_1 = require("./variables");
52
52
  exports.DEPLOY_JOB_NAME = "🚀 Deploy";
53
- var getBaseDeploymentJob = function (context) {
53
+ var createDeployJob = function (context, jobDefinition) {
54
54
  var _a, _b, _c, _d;
55
55
  var hasDocker = (0, docker_1.requiresDockerBuild)(context);
56
56
  var isStoppable = (0, utils_1.contextIsStoppable)(context);
@@ -64,6 +64,11 @@ var getBaseDeploymentJob = function (context) {
64
64
  var whenDeploy = whenDeployDefined ? whenDeployDefined : whenDeployDefault;
65
65
  return {
66
66
  name: exports.DEPLOY_JOB_NAME,
67
+ script: jobDefinition.script,
68
+ image: jobDefinition.image,
69
+ cache: jobDefinition.cache,
70
+ artifacts: jobDefinition.artifacts,
71
+ services: jobDefinition.services,
67
72
  envMode: "stagePerEnv",
68
73
  needs: __spreadArray(__spreadArray([], __read((0, sbom_2.sbomDeactivated)(context) ? [] : [{
69
74
  job: sbom_1.SBOM_BUILD_JOB_NAME,
@@ -90,7 +95,7 @@ var getBaseDeploymentJob = function (context) {
90
95
  }],
91
96
  allow_failure: whenDeploy === "manual" ? true : false,
92
97
  stage: "deploy",
93
- variables: __assign(__assign(__assign(__assign(__assign({}, variables_1.DEPLOY_RUNNER_VARIABLES), context.environment.envVars), hasDocker ? (0, docker_1.getDockerImageVariables)(context) : {}), context.environment.jobOnlyVars.deploy.envVars), context.componentConfig.deploy ? (_d = context.componentConfig.deploy.extraVars) !== null && _d !== void 0 ? _d : {} : {}),
98
+ variables: __assign(__assign(__assign(__assign(__assign(__assign({}, variables_1.DEPLOY_RUNNER_VARIABLES), context.environment.envVars), hasDocker ? (0, docker_1.getDockerImageVariables)(context) : {}), context.environment.jobOnlyVars.deploy.envVars), context.componentConfig.deploy ? (_d = context.componentConfig.deploy.extraVars) !== null && _d !== void 0 ? _d : {} : {}), jobDefinition.variables),
94
99
  environment: __assign(__assign({}, context.environment.gitlabEnvironment), isStoppable ? {
95
100
  on_stop: stop_1.STOP_JOB_NAME,
96
101
  auto_stop_in: autoStop
@@ -98,4 +103,4 @@ var getBaseDeploymentJob = function (context) {
98
103
  jobTags: context.componentConfig.deploy ? context.componentConfig.deploy.jobTags : undefined
99
104
  };
100
105
  };
101
- exports.getBaseDeploymentJob = getBaseDeploymentJob;
106
+ exports.createDeployJob = createDeployJob;
@@ -1,3 +1,10 @@
1
- export * from "./deploy";
2
- export * from "./rollback";
3
- export * from "./stop";
1
+ import type { Context } from "../../types/context";
2
+ import type { CatladderJob } from "../../types/jobs";
3
+ import { type DeployJobDefinition } from "./deploy";
4
+ import { type RollbackJobDefinition } from "./rollback";
5
+ import { type StopJobDefinition } from "./stop";
6
+ export declare const createDeployementJobs: (context: Context, definitions: {
7
+ deploy: DeployJobDefinition;
8
+ stop?: StopJobDefinition;
9
+ rollback?: RollbackJobDefinition;
10
+ }) => CatladderJob[];
@@ -1,21 +1,42 @@
1
1
  "use strict";
2
2
 
3
- var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- Object.defineProperty(o, k2, {
6
- enumerable: true,
7
- get: function () {
8
- return m[k];
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
+ try {
11
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
12
+ } catch (error) {
13
+ e = {
14
+ error: error
15
+ };
16
+ } finally {
17
+ try {
18
+ if (r && !r.done && (m = i["return"])) m.call(i);
19
+ } finally {
20
+ if (e) throw e.error;
9
21
  }
10
- });
11
- } : function (o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- });
15
- var __exportStar = this && this.__exportStar || function (m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ }
23
+ return ar;
24
+ };
25
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
17
33
  };
18
34
  exports.__esModule = true;
19
- __exportStar(require("./deploy"), exports);
20
- __exportStar(require("./rollback"), exports);
21
- __exportStar(require("./stop"), exports);
35
+ exports.createDeployementJobs = void 0;
36
+ var deploy_1 = require("./deploy");
37
+ var rollback_1 = require("./rollback");
38
+ var stop_1 = require("./stop");
39
+ var createDeployementJobs = function (context, definitions) {
40
+ return __spreadArray(__spreadArray([(0, deploy_1.createDeployJob)(context, definitions.deploy)], __read(definitions.stop ? [(0, stop_1.createStopJob)(context, definitions.stop)] : []), false), __read(definitions.rollback ? [(0, rollback_1.createRollbackJob)(context, definitions.rollback)] : []), false);
41
+ };
42
+ exports.createDeployementJobs = createDeployementJobs;
@@ -1,4 +1,5 @@
1
1
  import type { Context } from "../../types/context";
2
- import type { JobWithoutScript } from "./types";
2
+ import type { CatladderJob } from "../../types/jobs";
3
3
  export declare const ROLLBACK_JOB_NAME = "\u21A9\uFE0F Rollback \u26A0\uFE0F";
4
- export declare const getBaseRollbackJob: (context: Context) => JobWithoutScript;
4
+ export declare type RollbackJobDefinition = Pick<CatladderJob, "script" | "variables" | "image">;
5
+ export declare const createRollbackJob: (context: Context, jobDefinition: RollbackJobDefinition) => CatladderJob;
@@ -11,25 +11,27 @@ var __assign = this && this.__assign || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  exports.__esModule = true;
14
- exports.getBaseRollbackJob = exports.ROLLBACK_JOB_NAME = void 0;
14
+ exports.createRollbackJob = exports.ROLLBACK_JOB_NAME = void 0;
15
15
  var variables_1 = require("./variables");
16
16
  exports.ROLLBACK_JOB_NAME = "↩️ Rollback ⚠️";
17
- var getBaseRollbackJob = function (context) {
17
+ var createRollbackJob = function (context, jobDefinition) {
18
18
  return {
19
19
  name: exports.ROLLBACK_JOB_NAME,
20
+ image: jobDefinition.image,
20
21
  envMode: "stagePerEnv",
21
22
  needs: [],
22
23
  rules: [{
23
24
  when: "manual",
24
25
  allow_failure: true
25
26
  }],
26
- variables: __assign(__assign(__assign({}, variables_1.DEPLOY_RUNNER_VARIABLES), context.environment.jobOnlyVars.deploy.envVars), {
27
+ variables: __assign(__assign(__assign(__assign({}, variables_1.DEPLOY_RUNNER_VARIABLES), context.environment.jobOnlyVars.deploy.envVars), {
27
28
  GIT_STRATEGY: "none"
28
- }),
29
+ }), jobDefinition.variables),
29
30
  stage: "rollback",
30
31
  environment: __assign(__assign({}, context.environment.gitlabEnvironment), {
31
32
  action: "access"
32
- })
33
+ }),
34
+ script: jobDefinition.script
33
35
  };
34
36
  };
35
- exports.getBaseRollbackJob = getBaseRollbackJob;
37
+ exports.createRollbackJob = createRollbackJob;
@@ -1,4 +1,5 @@
1
1
  import type { Context } from "../../types/context";
2
- import type { JobWithoutScript } from "./types";
2
+ import type { CatladderJob } from "../../types/jobs";
3
3
  export declare const STOP_JOB_NAME = "\uD83D\uDED1 Stop \u26A0\uFE0F";
4
- export declare const getBaseDeploymentStopJob: (context: Context) => JobWithoutScript;
4
+ export declare type StopJobDefinition = Pick<CatladderJob, "script" | "variables" | "image">;
5
+ export declare const createStopJob: (context: Context, jobDefinition: StopJobDefinition) => CatladderJob;
@@ -11,12 +11,13 @@ var __assign = this && this.__assign || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  exports.__esModule = true;
14
- exports.getBaseDeploymentStopJob = exports.STOP_JOB_NAME = void 0;
14
+ exports.createStopJob = exports.STOP_JOB_NAME = void 0;
15
15
  var variables_1 = require("./variables");
16
16
  exports.STOP_JOB_NAME = "🛑 Stop ⚠️";
17
- var getBaseDeploymentStopJob = function (context) {
17
+ var createStopJob = function (context, jobDefinition) {
18
18
  return {
19
19
  name: exports.STOP_JOB_NAME,
20
+ image: jobDefinition.image,
20
21
  envMode: "stagePerEnv",
21
22
  needs: [],
22
23
  rules: [{
@@ -27,13 +28,14 @@ var getBaseDeploymentStopJob = function (context) {
27
28
  when: "manual",
28
29
  allow_failure: true
29
30
  }],
30
- variables: __assign(__assign(__assign({}, variables_1.DEPLOY_RUNNER_VARIABLES), context.environment.jobOnlyVars.deploy.envVars), {
31
+ variables: __assign(__assign(__assign(__assign({}, variables_1.DEPLOY_RUNNER_VARIABLES), context.environment.jobOnlyVars.deploy.envVars), {
31
32
  GIT_STRATEGY: "none"
32
- }),
33
+ }), jobDefinition.variables),
33
34
  stage: "stop",
34
35
  environment: __assign(__assign({}, context.environment.gitlabEnvironment), {
35
36
  action: "stop"
36
- })
37
+ }),
38
+ script: jobDefinition.script
37
39
  };
38
40
  };
39
- exports.getBaseDeploymentStopJob = getBaseDeploymentStopJob;
41
+ exports.createStopJob = createStopJob;
@@ -49,14 +49,14 @@ var _1 = require(".");
49
49
  var docker_1 = require("../../build/docker");
50
50
  var getLabels_1 = require("../../context/getLabels");
51
51
  var runner_1 = require("../../runner");
52
+ var gitlab_1 = require("../../utils/gitlab");
52
53
  var base_1 = require("../base");
54
+ var sbom_1 = require("../sbom");
53
55
  var types_1 = require("../types");
54
- var gcloudServiceAccountLoginCommands_1 = require("./utils/gcloudServiceAccountLoginCommands");
56
+ var createArgsString_1 = require("./utils/createArgsString");
55
57
  var database_1 = require("./utils/database");
56
- var gitlab_1 = require("../../utils/gitlab");
58
+ var gcloudServiceAccountLoginCommands_1 = require("./utils/gcloudServiceAccountLoginCommands");
57
59
  var jobName_1 = require("./utils/jobName");
58
- var createArgsString_1 = require("./utils/createArgsString");
59
- var sbom_1 = require("../sbom");
60
60
  var setExtraVarsScripts = function (deployConfig) {
61
61
  return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
62
62
  };
@@ -70,7 +70,6 @@ var createGoogleCloudRunDeployJobs = function (context) {
70
70
  // should not happen
71
71
  throw new Error("deploy config is wrong");
72
72
  }
73
- var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
74
73
  var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
75
74
  var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
76
75
  var gcloudImageName = "".concat(dockerUrl, "/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG");
@@ -220,26 +219,29 @@ var createGoogleCloudRunDeployJobs = function (context) {
220
219
  name = _b[0];
221
220
  return "gcloud run services delete ".concat(serviceName, "-").concat(name, " ").concat(commonArgsString);
222
221
  })), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false);
223
- return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
224
- artifacts: {
225
- paths: ["____envvars.yaml"]
226
- },
227
- variables: {
228
- CLOUDSDK_CORE_DISABLE_PROMPTS: "1",
229
- ENV_VARS: (0, js_yaml_1.dump)(allEnvVars, {
230
- lineWidth: -1,
231
- quotingType: "'",
232
- forceQuotes: true
233
- })
234
- },
235
- image: (0, runner_1.getRunnerImage)("gcloud"),
236
- script: deployScripts
237
- }), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
238
- image: (0, runner_1.getRunnerImage)("gcloud"),
239
- variables: {
240
- CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
241
- },
242
- script: (0, gitlab_1.allowFailureInScripts)(stopScripts)
243
- })];
222
+ return (0, base_1.createDeployementJobs)(context, {
223
+ deploy: (0, lodash_1.merge)((0, docker_1.getDockerJobBaseProps)(context), {
224
+ artifacts: {
225
+ paths: ["____envvars.yaml"]
226
+ },
227
+ variables: {
228
+ CLOUDSDK_CORE_DISABLE_PROMPTS: "1",
229
+ ENV_VARS: (0, js_yaml_1.dump)(allEnvVars, {
230
+ lineWidth: -1,
231
+ quotingType: "'",
232
+ forceQuotes: true
233
+ })
234
+ },
235
+ image: (0, runner_1.getRunnerImage)("gcloud"),
236
+ script: deployScripts
237
+ }),
238
+ stop: {
239
+ image: (0, runner_1.getRunnerImage)("gcloud"),
240
+ variables: {
241
+ CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
242
+ },
243
+ script: (0, gitlab_1.allowFailureInScripts)(stopScripts)
244
+ }
245
+ });
244
246
  };
245
247
  exports.createGoogleCloudRunDeployJobs = createGoogleCloudRunDeployJobs;
@@ -33,12 +33,11 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
33
33
  };
34
34
  exports.__esModule = true;
35
35
  exports.createCustomDeployJobs = void 0;
36
- var lodash_1 = require("lodash");
37
36
  var yarn_1 = require("../../build/node/yarn");
38
37
  var runner_1 = require("../../runner");
39
38
  var base_1 = require("../base");
40
- var types_1 = require("../types");
41
39
  var sbom_1 = require("../sbom");
40
+ var types_1 = require("../types");
42
41
  var createCustomDeployJobs = function (context) {
43
42
  var _a, _b, _c;
44
43
  var deployConfig = context.componentConfig.deploy;
@@ -49,18 +48,22 @@ var createCustomDeployJobs = function (context) {
49
48
  // should not happen
50
49
  throw new Error("deploy config is not custom");
51
50
  }
52
- var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
53
51
  // FIXME: custom deploy currently assumes yarn-based project
54
52
  var yarnInstall = (0, yarn_1.getYarnInstall)(context, {
55
53
  noCustomPostInstall: true
56
54
  });
57
- return __spreadArray([(0, lodash_1.merge)({}, baseDeploymentJob, {
58
- image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
59
- cache: (_b = deployConfig.jobCache) !== null && _b !== void 0 ? _b : [],
60
- script: __spreadArray(__spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.requiresYarnInstall ? yarnInstall : []), false), __read(deployConfig.script), false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false)
61
- })], __read(deployConfig.stopScript ? [(0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
62
- image: (_c = deployConfig.jobImage) !== null && _c !== void 0 ? _c : (0, runner_1.getRunnerImage)("jobs-default"),
63
- script: __spreadArray(__spreadArray([], __read(deployConfig.stopScript), false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false)
64
- })] : []), false);
55
+ return (0, base_1.createDeployementJobs)(context, {
56
+ deploy: {
57
+ image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
58
+ cache: (_b = deployConfig.jobCache) !== null && _b !== void 0 ? _b : [],
59
+ script: __spreadArray(__spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.requiresYarnInstall ? yarnInstall : []), false), __read(deployConfig.script), false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false),
60
+ variables: {}
61
+ },
62
+ stop: deployConfig.stopScript ? {
63
+ image: (_c = deployConfig.jobImage) !== null && _c !== void 0 ? _c : (0, runner_1.getRunnerImage)("jobs-default"),
64
+ script: __spreadArray(__spreadArray([], __read(deployConfig.stopScript), false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false),
65
+ variables: {}
66
+ } : undefined
67
+ });
65
68
  };
66
69
  exports.createCustomDeployJobs = createCustomDeployJobs;
@@ -1,8 +1,17 @@
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
+ 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
+ };
3
13
  exports.__esModule = true;
4
14
  exports.createDockerTagDeployJobs = void 0;
5
- var lodash_1 = require("lodash");
6
15
  var docker_1 = require("../../build/docker");
7
16
  var base_1 = require("../base");
8
17
  var types_1 = require("../types");
@@ -15,10 +24,11 @@ var createDockerTagDeployJobs = function (context) {
15
24
  // should not happen
16
25
  throw new Error("deploy config is not dockerTag");
17
26
  }
18
- var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
19
27
  var tag = deployConfig.tag;
20
- return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
21
- script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_IMAGE:".concat(tag), "docker push $DOCKER_IMAGE:".concat(tag), "echo \"pushed as $DOCKER_IMAGE:".concat(tag, "\"")]
22
- })];
28
+ return (0, base_1.createDeployementJobs)(context, {
29
+ deploy: __assign(__assign({}, (0, docker_1.getDockerJobBaseProps)(context)), {
30
+ script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_IMAGE:".concat(tag), "docker push $DOCKER_IMAGE:".concat(tag), "echo \"pushed as $DOCKER_IMAGE:".concat(tag, "\"")]
31
+ })
32
+ });
23
33
  };
24
34
  exports.createDockerTagDeployJobs = createDockerTagDeployJobs;
@@ -44,13 +44,12 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
44
44
  exports.__esModule = true;
45
45
  exports.createKubernetesDeployJobs = void 0;
46
46
  var js_yaml_1 = require("js-yaml");
47
- var lodash_1 = require("lodash");
48
- var __1 = require("../..");
49
47
  var runner_1 = require("../../runner");
50
48
  var base_1 = require("../base");
49
+ var sbom_1 = require("../sbom");
51
50
  var types_1 = require("../types");
52
51
  var kubeValues_1 = require("./kubeValues");
53
- var sbom_1 = require("../sbom");
52
+ var getEnvironmentVariables_1 = require("../../context/getEnvironmentVariables");
54
53
  var createKubernetesDeployJobs = function (context) {
55
54
  var _a, _b, _c;
56
55
  var deployConfig = context.componentConfig.deploy;
@@ -79,17 +78,18 @@ var createKubernetesDeployJobs = function (context) {
79
78
  BUILD_ID: (_c = context.commitInfo) === null || _c === void 0 ? void 0 : _c.buildId
80
79
  })
81
80
  };
82
- var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
83
- var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
84
- var baseRollbackJob = (0, base_1.getBaseRollbackJob)(context);
85
81
  var clusterName = "kube-".concat(context.environment.fullName);
86
- var connectContext = ["kubectl config set-cluster \"".concat(clusterName, "\" --server=\"$").concat((0, __1.getSecretVarNameForContext)(context, "KUBE_URL"), "\" --certificate-authority <(echo $").concat((0, __1.getSecretVarNameForContext)(context, "KUBE_CA_PEM"), " | base64 -d) --embed-certs=true"), "kubectl config set-credentials \"".concat(clusterName, "\" --token=\"$").concat((0, __1.getSecretVarNameForContext)(context, "KUBE_TOKEN"), "\""), "kubectl config set-context \"".concat(clusterName, "\" --cluster=\"").concat(clusterName, "\" --user=\"").concat(clusterName, "\" --namespace=\"").concat(context.environment.envVars.KUBE_NAMESPACE, "\""), "kubectl config use-context \"".concat(clusterName, "\"")];
87
- return [(0, lodash_1.merge)({}, baseDeploymentJob, shared, {
88
- script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy"], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false), ["echo deployment successful 😻"], false)
89
- }), (0, lodash_1.merge)({}, baseStopJob, shared, {
90
- script: __spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false)
91
- }), (0, lodash_1.merge)({}, baseRollbackJob, shared, {
92
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesRollback"], false)
93
- })];
82
+ var connectContext = ["kubectl config set-cluster \"".concat(clusterName, "\" --server=\"$").concat((0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "KUBE_URL"), "\" --certificate-authority <(echo $").concat((0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "KUBE_CA_PEM"), " | base64 -d) --embed-certs=true"), "kubectl config set-credentials \"".concat(clusterName, "\" --token=\"$").concat((0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "KUBE_TOKEN"), "\""), "kubectl config set-context \"".concat(clusterName, "\" --cluster=\"").concat(clusterName, "\" --user=\"").concat(clusterName, "\" --namespace=\"").concat(context.environment.envVars.KUBE_NAMESPACE, "\""), "kubectl config use-context \"".concat(clusterName, "\"")];
83
+ return (0, base_1.createDeployementJobs)(context, {
84
+ deploy: __assign(__assign({}, shared), {
85
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy"], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false), ["echo deployment successful 😻"], false)
86
+ }),
87
+ stop: __assign(__assign({}, shared), {
88
+ script: __spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false)
89
+ }),
90
+ rollback: __assign(__assign({}, shared), {
91
+ script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesRollback"], false)
92
+ })
93
+ });
94
94
  };
95
95
  exports.createKubernetesDeployJobs = createKubernetesDeployJobs;
@@ -1,4 +1,4 @@
1
- import type { Context } from "../..";
1
+ import type { Context } from "../../types/context";
2
2
  export declare const createMongodbBaseConfig: (context: Context) => {
3
3
  mongodb: {
4
4
  enabled: boolean;
@@ -13,9 +13,10 @@ var __assign = this && this.__assign || function () {
13
13
  exports.__esModule = true;
14
14
  exports.createMongodbBaseConfig = void 0;
15
15
  var lodash_1 = require("lodash");
16
- var __1 = require("../..");
16
+ var getEnvironmentVariables_1 = require("../../context/getEnvironmentVariables");
17
+ var types_1 = require("../types");
17
18
  var getCredentialString = function (context) {
18
- return "root:$".concat((0, __1.getSecretVarNameForContext)(context, "MONGODB_ROOT_PASSWORD"), "@");
19
+ return "root:$".concat((0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "MONGODB_ROOT_PASSWORD"), "@");
19
20
  };
20
21
  var getMongodbHost = function (context, name) {
21
22
  var namespace = context.environment.envVars.KUBE_NAMESPACE;
@@ -31,7 +32,7 @@ var getMongodbReplicasetHost = function (context, index) {
31
32
  };
32
33
  var createMongodbUrl = function (context, dbName) {
33
34
  var _a, _b;
34
- if (!(0, __1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
35
+ if (!(0, types_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
35
36
  throw new Error("can only createMongodbUrl on supported deploys");
36
37
  }
37
38
  var mongodbConfig = (_a = context.componentConfig.deploy.values) === null || _a === void 0 ? void 0 : _a.mongodb;
@@ -50,7 +51,7 @@ var createMongodbUrl = function (context, dbName) {
50
51
  };
51
52
  var createMongoBackupDefaultConfig = function (context) {
52
53
  var _a;
53
- if (!(0, __1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
54
+ if (!(0, types_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
54
55
  throw new Error("can only create mongodb base config on supported deploys");
55
56
  }
56
57
  var mongodbConfig = (_a = context.componentConfig.deploy.values) === null || _a === void 0 ? void 0 : _a.mongodb;
@@ -79,7 +80,7 @@ var createMongoBackupDefaultConfig = function (context) {
79
80
  };
80
81
  var createMongodbBaseConfig = function (context) {
81
82
  var _a, _b;
82
- if (!(0, __1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
83
+ if (!(0, types_1.isOfDeployType)(context.componentConfig.deploy, "kubernetes")) {
83
84
  throw new Error("can only create mongodb base config on supported deploys");
84
85
  }
85
86
  var mongodbConfig = (_a = context.componentConfig.deploy.values) === null || _a === void 0 ? void 0 : _a.mongodb;
@@ -88,8 +89,8 @@ var createMongodbBaseConfig = function (context) {
88
89
  enabled: true,
89
90
  auth: {
90
91
  enabled: true,
91
- rootPassword: "$" + (0, __1.getSecretVarNameForContext)(context, "MONGODB_ROOT_PASSWORD"),
92
- replicaSetKey: "$" + (0, __1.getSecretVarNameForContext)(context, "MONGODB_REPLICASET_KEY")
92
+ rootPassword: "$" + (0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "MONGODB_ROOT_PASSWORD"),
93
+ replicaSetKey: "$" + (0, getEnvironmentVariables_1.getSecretVarNameForContext)(context, "MONGODB_REPLICASET_KEY")
93
94
  },
94
95
  persistence: {
95
96
  storageClass: "standard-rwo"
@@ -11,7 +11,7 @@ export declare type DeployConfigType = DeployConfig["type"];
11
11
  export declare type DeployConfigGeneric<T extends DeployConfigType> = Extract<DeployConfig, {
12
12
  type: T;
13
13
  }>;
14
- export declare const isOfDeployType: <T extends ("custom" | "dockerTag" | "google-cloudrun" | "kubernetes")[]>(t: DeployConfig | false, ...types: T) => t is Extract<DeployConfigCustom, {
14
+ export declare const isOfDeployType: <T extends ("kubernetes" | "custom" | "dockerTag" | "google-cloudrun")[]>(t: DeployConfig | false, ...types: T) => t is Extract<DeployConfigCustom, {
15
15
  type: T[number];
16
16
  }> | Extract<DeployConfigDockerTag, {
17
17
  type: T[number];
@@ -9,6 +9,7 @@ export declare const makeGitlabJob: (componentName: string, env: string, {
9
9
  name,
10
10
  needs,
11
11
  jobTags,
12
+ script,
12
13
  ...job
13
14
  }: CatladderJob<string>, allJobs: AllCatladderJobs) => [fullName: string, job: GitlabJobDef];
14
15
  export declare const createGitlabJobs: (allJobs: AllCatladderJobs) => Promise<AllGitlabJobs>;
@@ -168,6 +168,7 @@ exports.__esModule = true;
168
168
  exports.createGitlabJobs = exports.makeGitlabJob = void 0;
169
169
  var lodash_1 = require("lodash");
170
170
  var defaults_1 = require("../../defaults");
171
+ var utils_1 = require("../../utils");
171
172
  var removeUndefined = function (obj) {
172
173
  return Object.fromEntries(Object.entries(obj).filter(function (_a) {
173
174
  var _b = __read(_a, 2),
@@ -203,7 +204,8 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
203
204
  name = _a.name,
204
205
  needs = _a.needs,
205
206
  jobTags = _a.jobTags,
206
- job = __rest(_a, ["envMode", "needsStages", "needsOtherComponent", "name", "needs", "jobTags"]);
207
+ script = _a.script,
208
+ job = __rest(_a, ["envMode", "needsStages", "needsOtherComponent", "name", "needs", "jobTags", "script"]);
207
209
  var stage = envMode === "stagePerEnv" ? "".concat(job.stage, " ").concat(env) : job.stage;
208
210
  var needsFromStages = needsStages === null || needsStages === void 0 ? void 0 : needsStages.flatMap(function (n) {
209
211
  var _a, _b, _c, _d;
@@ -237,6 +239,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
237
239
  })).values()), false);
238
240
  var fullJobName = getFullJobName(name, componentName, envMode !== "none" ? env : undefined);
239
241
  var gitlabJob = removeUndefined(__assign(__assign({}, job), {
242
+ script: script === null || script === void 0 ? void 0 : script.filter(utils_1.notNil),
240
243
  tags: jobTags,
241
244
  stage: stage,
242
245
  environment: ((_b = job.environment) === null || _b === void 0 ? void 0 : _b.on_stop) ? __assign(__assign({}, job.environment), {