@catladder/cli 0.0.0-main-8f79dd9f → 0.0.0-main-19c86f2e

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.
@@ -131,29 +131,34 @@ exports.printVariables = void 0;
131
131
  var getProjectConfig_1 = __nccwpck_require__(4146);
132
132
  var utils_1 = __nccwpck_require__(4640);
133
133
  var getAllVariablesToPrint = function (config, choice) { return __awaiter(void 0, void 0, void 0, function () {
134
- var _a, env, currentComponent, variables;
134
+ var _a, env, currentComponent;
135
135
  return __generator(this, function (_b) {
136
136
  switch (_b.label) {
137
137
  case 0: return [4 /*yield*/, (0, utils_1.getCurrentComponentAndEnvFromChoice)(config, choice)];
138
138
  case 1:
139
139
  _a = _b.sent(), env = _a.env, currentComponent = _a.currentComponent;
140
- variables = {};
141
140
  if (!currentComponent) return [3 /*break*/, 3];
141
+ // don't print vars if dotenv is enabled
142
+ if (config.components[currentComponent].dotEnv) {
143
+ return [2 /*return*/, {}];
144
+ }
142
145
  return [4 /*yield*/, (0, getProjectConfig_1.getEnvVarsResolved)(null, env, currentComponent)];
143
- case 2:
144
- variables = _b.sent();
145
- return [3 /*break*/, 5];
146
+ case 2: return [2 /*return*/, _b.sent()];
146
147
  case 3: return [4 /*yield*/, Object.keys(config.components).reduce(function (acc, componentName) { return __awaiter(void 0, void 0, void 0, function () {
147
148
  var subappvars, _a;
148
149
  return __generator(this, function (_b) {
149
150
  switch (_b.label) {
150
- case 0: return [4 /*yield*/, (0, getProjectConfig_1.getEnvVarsResolved)(null, env, componentName)];
151
- case 1:
151
+ case 0:
152
+ if (!config.components[componentName].dotEnv) return [3 /*break*/, 2];
153
+ return [4 /*yield*/, acc];
154
+ case 1: return [2 /*return*/, _b.sent()];
155
+ case 2: return [4 /*yield*/, (0, getProjectConfig_1.getEnvVarsResolved)(null, env, componentName)];
156
+ case 3:
152
157
  subappvars = _b.sent();
153
158
  delete subappvars["_ALL_ENV_VAR_KEYS"];
154
159
  _a = [{}];
155
160
  return [4 /*yield*/, acc];
156
- case 2: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_b.sent())])), subappvars]), Object.fromEntries(Object.entries(subappvars).map(function (_a) {
161
+ case 4: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_b.sent())])), subappvars]), Object.fromEntries(Object.entries(subappvars).map(function (_a) {
157
162
  var key = _a[0], value = _a[1];
158
163
  return [
159
164
  "".concat((0, utils_1.sanitizeEnvVarName)(componentName.toUpperCase()), "_").concat(key),
@@ -162,14 +167,12 @@ var getAllVariablesToPrint = function (config, choice) { return __awaiter(void 0
162
167
  }))])];
163
168
  }
164
169
  });
165
- }); }, {})];
166
- case 4:
167
- // when in a monorep and not in a subapp, merge all env vars.
168
- // this is not 100% correct, but better than not exporting any vars at all
169
- // so we also add prefixed variants
170
- variables = _b.sent();
171
- _b.label = 5;
172
- case 5: return [2 /*return*/, variables];
170
+ }); }, Promise.resolve({}))];
171
+ case 4:
172
+ // when in a monorep and not in a subapp, merge all env vars.
173
+ // this is not 100% correct, but better than not exporting any vars at all
174
+ // so we also add prefixed variants
175
+ return [2 /*return*/, _b.sent()];
173
176
  }
174
177
  });
175
178
  }); };
@@ -458,7 +461,7 @@ var getProjectConfig_1 = __nccwpck_require__(4146);
458
461
  var projects_1 = __nccwpck_require__(1619);
459
462
  var utils_1 = __nccwpck_require__(4640);
460
463
  var writeDTsFiles = function (config, choice) { return __awaiter(void 0, void 0, void 0, function () {
461
- var _a, env, currentComponent, componentsWithEnabledEnvDTsWrite, componentsToActuallyWriteDotEnvNow, gitRoot, _i, componentsToActuallyWriteDotEnvNow_1, componentName, envNames, envDTsContent, componentDir, filePath;
464
+ var _a, env, currentComponent, componentsWithEnabledEnvDTsWrite, componentsToActuallyWriteEnvDts, gitRoot, _i, componentsToActuallyWriteEnvDts_1, componentName, envNames, envDTsContent, componentDir, filePath;
462
465
  return __generator(this, function (_b) {
463
466
  switch (_b.label) {
464
467
  case 0: return [4 /*yield*/, (0, utils_1.getCurrentComponentAndEnvFromChoice)(config, choice)];
@@ -473,7 +476,7 @@ var writeDTsFiles = function (config, choice) { return __awaiter(void 0, void 0,
473
476
  var componentName = _a[0];
474
477
  return componentName;
475
478
  });
476
- componentsToActuallyWriteDotEnvNow = currentComponent
479
+ componentsToActuallyWriteEnvDts = currentComponent
477
480
  ? componentsWithEnabledEnvDTsWrite.includes(currentComponent)
478
481
  ? [currentComponent]
479
482
  : []
@@ -481,11 +484,11 @@ var writeDTsFiles = function (config, choice) { return __awaiter(void 0, void 0,
481
484
  return [4 /*yield*/, (0, projects_1.getGitRoot)()];
482
485
  case 2:
483
486
  gitRoot = _b.sent();
484
- _i = 0, componentsToActuallyWriteDotEnvNow_1 = componentsToActuallyWriteDotEnvNow;
487
+ _i = 0, componentsToActuallyWriteEnvDts_1 = componentsToActuallyWriteEnvDts;
485
488
  _b.label = 3;
486
489
  case 3:
487
- if (!(_i < componentsToActuallyWriteDotEnvNow_1.length)) return [3 /*break*/, 7];
488
- componentName = componentsToActuallyWriteDotEnvNow_1[_i];
490
+ if (!(_i < componentsToActuallyWriteEnvDts_1.length)) return [3 /*break*/, 7];
491
+ componentName = componentsToActuallyWriteEnvDts_1[_i];
489
492
  return [4 /*yield*/, getEnvsForDTs(env, componentName)];
490
493
  case 4:
491
494
  envNames = _b.sent();
@@ -39419,6 +39422,8 @@ var constants_1 = __nccwpck_require__(1542);
39419
39422
  var createBuildJob_1 = __nccwpck_require__(8063);
39420
39423
  var docker_1 = __nccwpck_require__(3219);
39421
39424
  var types_1 = __nccwpck_require__(1197);
39425
+ var sbom_1 = __nccwpck_require__(9927);
39426
+ var sbom_2 = __nccwpck_require__(5928);
39422
39427
  var RUNNER_BUILD_VARIABLES = {
39423
39428
  KUBERNETES_CPU_REQUEST: "0.5",
39424
39429
  KUBERNETES_CPU_LIMIT: "2",
@@ -39444,12 +39449,12 @@ var createCustomBuildJobs = function (context) {
39444
39449
  expire_in: "1 day"
39445
39450
  }
39446
39451
  }) : null;
39447
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39452
+ return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39448
39453
  script: [((_d = buildConfig.docker) === null || _d === void 0 ? void 0 : _d.type) === "nginx" ? "ensureNginxDockerfile" : "" // e.g. custom,
39449
39454
  ].filter(Boolean),
39450
39455
  variables: {},
39451
39456
  needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
39452
- })] : []), false);
39457
+ })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
39453
39458
  };
39454
39459
  exports.createCustomBuildJobs = createCustomBuildJobs;
39455
39460
 
@@ -39900,6 +39905,8 @@ var cache_1 = __nccwpck_require__(4303);
39900
39905
  var constants_2 = __nccwpck_require__(9284);
39901
39906
  var yarn_1 = __nccwpck_require__(464);
39902
39907
  var runner_1 = __nccwpck_require__(5071);
39908
+ var sbom_1 = __nccwpck_require__(9927);
39909
+ var sbom_2 = __nccwpck_require__(5928);
39903
39910
  var createNodeBuildJobs = function (context) {
39904
39911
  var _a, _b, _c, _d, _e, _f, _g;
39905
39912
  var buildConfig = context.componentConfig.build;
@@ -39921,7 +39928,7 @@ var createNodeBuildJobs = function (context) {
39921
39928
  },
39922
39929
  jobTags: buildConfig.jobTags
39923
39930
  }) : null;
39924
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39931
+ return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39925
39932
  script: [buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"],
39926
39933
  cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
39927
39934
  variables: {
@@ -39932,7 +39939,7 @@ var createNodeBuildJobs = function (context) {
39932
39939
  })) === null || _g === void 0 ? void 0 : _g.join("\n")
39933
39940
  },
39934
39941
  needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
39935
- })] : []), false);
39942
+ })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
39936
39943
  };
39937
39944
  exports.createNodeBuildJobs = createNodeBuildJobs;
39938
39945
 
@@ -40414,10 +40421,21 @@ var __read = this && this.__read || function (o, n) {
40414
40421
  }
40415
40422
  return ar;
40416
40423
  };
40424
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
40425
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40426
+ if (ar || !(i in from)) {
40427
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40428
+ ar[i] = from[i];
40429
+ }
40430
+ }
40431
+ return to.concat(ar || Array.prototype.slice.call(from));
40432
+ };
40417
40433
  exports.__esModule = true;
40418
40434
  exports.createRailsBuildJobs = void 0;
40419
40435
  var types_1 = __nccwpck_require__(1197);
40420
40436
  var docker_1 = __nccwpck_require__(3219);
40437
+ var sbom_1 = __nccwpck_require__(5928);
40438
+ var sbom_2 = __nccwpck_require__(9927);
40421
40439
  var createRailsBuildJobs = function (context) {
40422
40440
  var _a, _b, _c;
40423
40441
  var buildConfig = context.componentConfig.build;
@@ -40432,13 +40450,13 @@ var createRailsBuildJobs = function (context) {
40432
40450
  v = _b[1];
40433
40451
  return "--env '".concat(k).concat(v ? "=".concat(v) : "", "'");
40434
40452
  }).join(" ");
40435
- return [(0, docker_1.createDockerBuildJobBase)(context, {
40453
+ return __spreadArray([(0, docker_1.createDockerBuildJobBase)(context, {
40436
40454
  variables: __assign(__assign({}, context.environment.jobOnlyVars.build.envVars), context.componentConfig.build.extraVars),
40437
40455
  // custom script
40438
40456
  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",
40439
40457
  // replace private git ssh gem sources with https to make bundler with credentials via env var work
40440
40458
  "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 : "")]
40441
- })];
40459
+ })], __read((0, sbom_1.sbomDeactivated)(context) ? [] : [(0, sbom_2.createSbomBuildJob)(context)]), false);
40442
40460
  };
40443
40461
  exports.createRailsBuildJobs = createRailsBuildJobs;
40444
40462
 
@@ -40593,6 +40611,42 @@ exports.createRailsTestJobs = createRailsTestJobs;
40593
40611
 
40594
40612
  /***/ }),
40595
40613
 
40614
+ /***/ 9927:
40615
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
40616
+
40617
+ "use strict";
40618
+
40619
+
40620
+ exports.__esModule = true;
40621
+ exports.createSbomBuildJob = exports.SBOM_FILE = exports.SBOM_BUILD_JOB_NAME = void 0;
40622
+ var utils_1 = __nccwpck_require__(7461);
40623
+ exports.SBOM_BUILD_JOB_NAME = "🧾 sbom";
40624
+ exports.SBOM_FILE = "__sbom.json";
40625
+ var createSbomBuildJob = function (context) {
40626
+ var _a, _b, _c, _d, _e;
40627
+ var buildConfig = context.componentConfig.build;
40628
+ var defaultImage = "aquasec/trivy:0.38.3";
40629
+ var defaultScript = ["trivy fs --quiet --format cyclonedx --output \"".concat(exports.SBOM_FILE, "\" ").concat(((_a = context.packageManagerInfo) === null || _a === void 0 ? void 0 : _a.componentIsInWorkspace) ? "." : context.componentConfig.dir)];
40630
+ var image = buildConfig.type === "custom" && buildConfig.sbom !== false ? (_c = (_b = buildConfig.sbom) === null || _b === void 0 ? void 0 : _b.jobImage) !== null && _c !== void 0 ? _c : defaultImage : defaultImage;
40631
+ var script = buildConfig.type === "custom" && buildConfig.sbom !== false ? (_e = (0, utils_1.ensureArray)((_d = buildConfig.sbom) === null || _d === void 0 ? void 0 : _d.command)) !== null && _e !== void 0 ? _e : defaultScript : defaultScript;
40632
+ return {
40633
+ name: exports.SBOM_BUILD_JOB_NAME,
40634
+ stage: "build",
40635
+ envMode: "jobPerEnv",
40636
+ variables: {},
40637
+ cache: undefined,
40638
+ image: image,
40639
+ script: script,
40640
+ allow_failure: true,
40641
+ artifacts: {
40642
+ paths: [exports.SBOM_FILE]
40643
+ }
40644
+ };
40645
+ };
40646
+ exports.createSbomBuildJob = createSbomBuildJob;
40647
+
40648
+ /***/ }),
40649
+
40596
40650
  /***/ 1197:
40597
40651
  /***/ ((__unused_webpack_module, exports) => {
40598
40652
 
@@ -40783,7 +40837,7 @@ exports.readConfigSync = readConfigSync;
40783
40837
 
40784
40838
  exports.__esModule = true;
40785
40839
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40786
- exports.PIPELINE_IMAGE_TAG = "main-8f79dd9f" || 0;
40840
+ exports.PIPELINE_IMAGE_TAG = "main-19c86f2e" || 0;
40787
40841
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40788
40842
 
40789
40843
  /***/ }),
@@ -42053,9 +42107,42 @@ var __assign = this && this.__assign || function () {
42053
42107
  };
42054
42108
  return __assign.apply(this, arguments);
42055
42109
  };
42110
+ var __read = this && this.__read || function (o, n) {
42111
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
42112
+ if (!m) return o;
42113
+ var i = m.call(o),
42114
+ r,
42115
+ ar = [],
42116
+ e;
42117
+ try {
42118
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42119
+ } catch (error) {
42120
+ e = {
42121
+ error: error
42122
+ };
42123
+ } finally {
42124
+ try {
42125
+ if (r && !r.done && (m = i["return"])) m.call(i);
42126
+ } finally {
42127
+ if (e) throw e.error;
42128
+ }
42129
+ }
42130
+ return ar;
42131
+ };
42132
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
42133
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
42134
+ if (ar || !(i in from)) {
42135
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42136
+ ar[i] = from[i];
42137
+ }
42138
+ }
42139
+ return to.concat(ar || Array.prototype.slice.call(from));
42140
+ };
42056
42141
  exports.__esModule = true;
42057
42142
  exports.getBaseRollbackJob = exports.getBaseDeploymentStopJob = exports.getBaseDeploymentJob = exports.ROLLBACK_JOB_NAME = exports.STOP_JOB_NAME = exports.DEPLOY_JOB_NAME = void 0;
42058
42143
  var docker_1 = __nccwpck_require__(3219);
42144
+ var sbom_1 = __nccwpck_require__(9927);
42145
+ var sbom_2 = __nccwpck_require__(5928);
42059
42146
  var utils_1 = __nccwpck_require__(2757);
42060
42147
  exports.DEPLOY_JOB_NAME = "🚀 Deploy";
42061
42148
  exports.STOP_JOB_NAME = "🛑 Stop ⚠️";
@@ -42081,13 +42168,16 @@ var getBaseDeploymentJob = function (context) {
42081
42168
  return {
42082
42169
  name: exports.DEPLOY_JOB_NAME,
42083
42170
  envMode: "stagePerEnv",
42084
- needs: context.componentConfig.deploy ? (_c = (_b = context.componentConfig.deploy.waitFor) === null || _b === void 0 ? void 0 : _b.map(function (c) {
42171
+ needs: __spreadArray(__spreadArray([], __read((0, sbom_2.sbomDeactivated)(context) ? [] : [{
42172
+ job: sbom_1.SBOM_BUILD_JOB_NAME,
42173
+ artifacts: true
42174
+ }]), false), __read(context.componentConfig.deploy ? (_c = (_b = context.componentConfig.deploy.waitFor) === null || _b === void 0 ? void 0 : _b.map(function (c) {
42085
42175
  return {
42086
42176
  componentName: c,
42087
42177
  job: exports.DEPLOY_JOB_NAME,
42088
42178
  artifacts: false
42089
42179
  };
42090
- })) !== null && _c !== void 0 ? _c : undefined : undefined,
42180
+ })) !== null && _c !== void 0 ? _c : [] : []), false),
42091
42181
  // we don't want to deploy when there is a broken test
42092
42182
  needsStages: [{
42093
42183
  stage: "build",
@@ -42219,6 +42309,7 @@ var database_1 = __nccwpck_require__(1384);
42219
42309
  var gitlab_1 = __nccwpck_require__(4997);
42220
42310
  var jobName_1 = __nccwpck_require__(7311);
42221
42311
  var createArgsString_1 = __nccwpck_require__(8686);
42312
+ var sbom_1 = __nccwpck_require__(5928);
42222
42313
  var setExtraVarsScripts = function (deployConfig) {
42223
42314
  return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
42224
42315
  };
@@ -42370,18 +42461,18 @@ var createGoogleCloudRunDeployJobs = function (context) {
42370
42461
  "gcloud beta run jobs executions list ".concat(commonArgsString, " --job ").concat(jobName, " --format=\"value(name)\" | xargs -I {} gcloud beta run jobs executions delete {} --quiet ").concat(commonArgsString), "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgsString)];
42371
42462
  });
42372
42463
  };
42373
- var deployScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(setExtraVarsScripts(deployConfig)), false), __read(pushImageToArtifactsRegistry), false), ["echo \"$ENV_VARS\" > ____envvars.yaml"], false), __read(deployConfig.cloudSql ? (0, database_1.getDatabaseCreateScript)(context, deployConfig) // we create the db, so that we can also delete it afterwards
42464
+ var deployScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(setExtraVarsScripts(deployConfig)), false), __read(pushImageToArtifactsRegistry), false), ["echo \"$ENV_VARS\" > ____envvars.yaml"], false), __read(deployConfig.cloudSql ? (0, database_1.getDatabaseCreateScript)(context, deployConfig) // we create the db, so that we can also delete it afterwards
42374
42465
  : []), false), __read(getCreateScheduleScripts()), false), __read(getJobCreateScripts()), false), __read(getJobRunScripts("preDeploy")), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(Object.entries((_b = deployConfig.additionalServices) !== null && _b !== void 0 ? _b : {}).map(function (_a) {
42375
42466
  var _b = __read(_a, 2),
42376
42467
  name = _b[0],
42377
42468
  service = _b[1];
42378
42469
  return getServiceDeployScript(service, "-" + name);
42379
- })), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false);
42380
- var stopScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgsString)] : []), false), __read(Object.entries((_c = deployConfig.additionalServices) !== null && _c !== void 0 ? _c : {}).map(function (_a) {
42470
+ })), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false);
42471
+ var stopScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgsString)] : []), false), __read(Object.entries((_c = deployConfig.additionalServices) !== null && _c !== void 0 ? _c : {}).map(function (_a) {
42381
42472
  var _b = __read(_a, 1),
42382
42473
  name = _b[0];
42383
42474
  return "gcloud run services delete ".concat(serviceName, "-").concat(name, " ").concat(commonArgsString);
42384
- })), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
42475
+ })), 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);
42385
42476
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
42386
42477
  artifacts: {
42387
42478
  paths: ["____envvars.yaml"]
@@ -42761,6 +42852,7 @@ var yarn_1 = __nccwpck_require__(464);
42761
42852
  var runner_1 = __nccwpck_require__(5071);
42762
42853
  var base_1 = __nccwpck_require__(9177);
42763
42854
  var types_1 = __nccwpck_require__(3109);
42855
+ var sbom_1 = __nccwpck_require__(5928);
42764
42856
  var createCustomDeployJobs = function (context) {
42765
42857
  var _a, _b, _c;
42766
42858
  var deployConfig = context.componentConfig.deploy;
@@ -42779,10 +42871,10 @@ var createCustomDeployJobs = function (context) {
42779
42871
  return __spreadArray([(0, lodash_1.merge)({}, baseDeploymentJob, {
42780
42872
  image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
42781
42873
  cache: (_b = deployConfig.jobCache) !== null && _b !== void 0 ? _b : [],
42782
- script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.requiresYarnInstall ? yarnInstall : []), false), __read(deployConfig.script), false)
42874
+ 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)
42783
42875
  })], __read(deployConfig.stopScript ? [(0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
42784
42876
  image: (_c = deployConfig.jobImage) !== null && _c !== void 0 ? _c : (0, runner_1.getRunnerImage)("jobs-default"),
42785
- script: deployConfig.stopScript
42877
+ script: __spreadArray(__spreadArray([], __read(deployConfig.stopScript), false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false)
42786
42878
  })] : []), false);
42787
42879
  };
42788
42880
  exports.createCustomDeployJobs = createCustomDeployJobs;
@@ -43057,6 +43149,7 @@ var runner_1 = __nccwpck_require__(5071);
43057
43149
  var base_1 = __nccwpck_require__(9177);
43058
43150
  var types_1 = __nccwpck_require__(3109);
43059
43151
  var kubeValues_1 = __nccwpck_require__(1061);
43152
+ var sbom_1 = __nccwpck_require__(5928);
43060
43153
  var createKubernetesDeployJobs = function (context) {
43061
43154
  var _a, _b, _c;
43062
43155
  var deployConfig = context.componentConfig.deploy;
@@ -43094,12 +43187,12 @@ var createKubernetesDeployJobs = function (context) {
43094
43187
  var clusterName = "kube-".concat(context.environment.fullName);
43095
43188
  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, "\"")];
43096
43189
  return [(0, lodash_1.merge)({}, baseDeploymentJob, shared, {
43097
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy", "echo deployment successful 😻"], false),
43190
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy"], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false), ["echo deployment successful 😻"], false),
43098
43191
  environment: {
43099
43192
  kubernetes: kubernetesEnvironment
43100
43193
  }
43101
43194
  }), (0, lodash_1.merge)({}, baseStopJob, shared, {
43102
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false),
43195
+ script: __spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false),
43103
43196
  environment: {
43104
43197
  kubernetes: kubernetesEnvironment
43105
43198
  }
@@ -43545,6 +43638,30 @@ exports.processSecretsAsFiles = processSecretsAsFiles;
43545
43638
 
43546
43639
  /***/ }),
43547
43640
 
43641
+ /***/ 5928:
43642
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
43643
+
43644
+ "use strict";
43645
+
43646
+
43647
+ exports.__esModule = true;
43648
+ exports.getDependencyTrackDeleteScript = exports.getDependencyTrackUploadScript = exports.sbomDeactivated = void 0;
43649
+ var sbom_1 = __nccwpck_require__(9927);
43650
+ var sbomDeactivated = function (context) {
43651
+ return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false;
43652
+ };
43653
+ exports.sbomDeactivated = sbomDeactivated;
43654
+ var getDependencyTrackUploadScript = function (context) {
43655
+ return (0, exports.sbomDeactivated)(context) ? [] : ["echo Uploading SBOM to Dependency Track", "/dtrackuploader https://dep.panter.swiss/ \"$DT_KEY_PROD\" upload \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.componentName, "\" \"").concat(context.environment.url, "\" \"").concat(sbom_1.SBOM_FILE, "\" vex.json || true")];
43656
+ };
43657
+ exports.getDependencyTrackUploadScript = getDependencyTrackUploadScript;
43658
+ var getDependencyTrackDeleteScript = function (context) {
43659
+ return (0, exports.sbomDeactivated)(context) ? [] : ["echo Disabling component in Dependency Track", "/dtrackuploader https://dep.panter.swiss/ \"$DT_KEY_PROD\" disable \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.componentName, "\" \"").concat(context.environment.url, "\" || true")];
43660
+ };
43661
+ exports.getDependencyTrackDeleteScript = getDependencyTrackDeleteScript;
43662
+
43663
+ /***/ }),
43664
+
43548
43665
  /***/ 438:
43549
43666
  /***/ ((__unused_webpack_module, exports) => {
43550
43667
 
@@ -44550,7 +44667,6 @@ exports.__esModule = true;
44550
44667
  exports.createJobsForComponent = void 0;
44551
44668
  var lodash_1 = __nccwpck_require__(3255);
44552
44669
  var build_1 = __nccwpck_require__(3760);
44553
- var reporting_1 = __nccwpck_require__(3545);
44554
44670
  var context_1 = __nccwpck_require__(2041);
44555
44671
  var deploy_1 = __nccwpck_require__(223);
44556
44672
  var getCommitInfo_1 = __nccwpck_require__(5923);
@@ -44575,9 +44691,8 @@ var getCustomJobs = function (context) {
44575
44691
  var createRawJobs = function (context) {
44576
44692
  var buildJobs = build_1.BUILD_TYPES[context.componentConfig.build.type].jobs(context);
44577
44693
  var deployJobs = context.componentConfig.deploy !== false ? deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context) : [];
44578
- var reportingJobs = (0, reporting_1.createReportingJobs)(context);
44579
44694
  var customJobs = getCustomJobs(context);
44580
- return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(reportingJobs), false), __read(customJobs), false);
44695
+ return __spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(customJobs), false);
44581
44696
  };
44582
44697
  var createJobsForComponent = function (config, componentName, env, trigger) {
44583
44698
  return __awaiter(void 0, void 0, void 0, function () {
@@ -44834,7 +44949,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
44834
44949
  };
44835
44950
  });
44836
44951
  });
44837
- var cleanedNeeds = __spreadArray(__spreadArray(__spreadArray([], __read(needs !== null && needs !== void 0 ? needs : []), false), __read(needsOtherComponent !== null && needsOtherComponent !== void 0 ? needsOtherComponent : []), false), __read(needsFromStages !== null && needsFromStages !== void 0 ? needsFromStages : []), false);
44952
+ var cleanedNeeds = __spreadArray(__spreadArray(__spreadArray([], __read(needsFromStages !== null && needsFromStages !== void 0 ? needsFromStages : []), false), __read(needs !== null && needs !== void 0 ? needs : []), false), __read(needsOtherComponent !== null && needsOtherComponent !== void 0 ? needsOtherComponent : []), false);
44838
44953
  var gitlabNeeds = cleanedNeeds === null || cleanedNeeds === void 0 ? void 0 : cleanedNeeds.map(function (n) {
44839
44954
  var _a;
44840
44955
  return (0, lodash_1.isObject)(n) ? {
@@ -44844,6 +44959,9 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
44844
44959
  }).sort(function (a, b) {
44845
44960
  return getJobName(a).localeCompare(getJobName(b));
44846
44961
  });
44962
+ var deduplicatedGitlabNeeds = __spreadArray([], __read(new Map(gitlabNeeds.map(function (n) {
44963
+ return [(0, lodash_1.isObject)(n) ? n.job : n, n];
44964
+ })).values()), false);
44847
44965
  var fullJobName = getFullJobName(name, componentName, envMode !== "none" ? env : undefined);
44848
44966
  var gitlabJob = removeUndefined(__assign(__assign({}, job), {
44849
44967
  tags: jobTags,
@@ -44852,7 +44970,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
44852
44970
  on_stop: getFullReferencedJobName(job.environment.on_stop, componentName, env, allJobs)
44853
44971
  }) : job.environment,
44854
44972
  // sort in a predictable manner for snapshot tests
44855
- needs: gitlabNeeds,
44973
+ needs: deduplicatedGitlabNeeds,
44856
44974
  retry: defaults_1.BASE_RETRY,
44857
44975
  interruptible: true
44858
44976
  }));
@@ -45633,61 +45751,6 @@ exports.mergeWithMergingArrays = mergeWithMergingArrays;
45633
45751
 
45634
45752
  /***/ }),
45635
45753
 
45636
- /***/ 3545:
45637
- /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
45638
-
45639
- "use strict";
45640
-
45641
-
45642
- exports.__esModule = true;
45643
- exports.createReportingJobs = void 0;
45644
- var base_1 = __nccwpck_require__(9177);
45645
- var utils_1 = __nccwpck_require__(7461);
45646
- var STAGE = "verify";
45647
- var SBOM_GENERATE_JOB_NAME = "🧾 sbom";
45648
- var SBOM_FILE = "__sbom.json";
45649
- var createSbomGenerateJob = function (context) {
45650
- var _a, _b, _c, _d, _e;
45651
- var buildConfig = context.componentConfig.build;
45652
- var defaultImage = "aquasec/trivy:0.38.3";
45653
- var defaultScript = ["trivy fs --quiet --format cyclonedx --output \"".concat(SBOM_FILE, "\" ").concat(((_a = context.packageManagerInfo) === null || _a === void 0 ? void 0 : _a.componentIsInWorkspace) ? "." : context.componentConfig.dir)];
45654
- var image = buildConfig.type === "custom" && buildConfig.sbom !== false ? (_c = (_b = buildConfig.sbom) === null || _b === void 0 ? void 0 : _b.jobImage) !== null && _c !== void 0 ? _c : defaultImage : defaultImage;
45655
- var script = buildConfig.type === "custom" && buildConfig.sbom !== false ? (_e = (0, utils_1.ensureArray)((_d = buildConfig.sbom) === null || _d === void 0 ? void 0 : _d.command)) !== null && _e !== void 0 ? _e : defaultScript : defaultScript;
45656
- return {
45657
- name: SBOM_GENERATE_JOB_NAME,
45658
- stage: STAGE,
45659
- needs: context.componentConfig.deploy !== false ? [base_1.DEPLOY_JOB_NAME] : [],
45660
- envMode: "jobPerEnv",
45661
- variables: {},
45662
- cache: undefined,
45663
- image: image,
45664
- script: script,
45665
- allow_failure: true,
45666
- artifacts: {
45667
- paths: [SBOM_FILE]
45668
- }
45669
- };
45670
- };
45671
- var createSbomUploadJob = function (context) {
45672
- return {
45673
- name: "🧾 sbom upload",
45674
- stage: STAGE,
45675
- needs: [SBOM_GENERATE_JOB_NAME],
45676
- envMode: "jobPerEnv",
45677
- variables: {},
45678
- cache: undefined,
45679
- image: "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
45680
- script: ["/dtrackuploader https://dep.panter.swiss/ \"$DT_KEY_PROD\" upload \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.componentName, "\" \"").concat(context.environment.shortName, "\" \"").concat(SBOM_FILE, "\" vex.json")],
45681
- allow_failure: true
45682
- };
45683
- };
45684
- var createReportingJobs = function (context) {
45685
- return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false ? [] : [createSbomGenerateJob(context), createSbomUploadJob(context)];
45686
- };
45687
- exports.createReportingJobs = createReportingJobs;
45688
-
45689
- /***/ }),
45690
-
45691
45754
  /***/ 9904:
45692
45755
  /***/ ((module) => {
45693
45756