@catladder/cli 0.0.0-main-8f79dd9f → 0.0.0-main-48ef3537

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.
@@ -39419,6 +39419,8 @@ var constants_1 = __nccwpck_require__(1542);
39419
39419
  var createBuildJob_1 = __nccwpck_require__(8063);
39420
39420
  var docker_1 = __nccwpck_require__(3219);
39421
39421
  var types_1 = __nccwpck_require__(1197);
39422
+ var sbom_1 = __nccwpck_require__(9927);
39423
+ var sbom_2 = __nccwpck_require__(5928);
39422
39424
  var RUNNER_BUILD_VARIABLES = {
39423
39425
  KUBERNETES_CPU_REQUEST: "0.5",
39424
39426
  KUBERNETES_CPU_LIMIT: "2",
@@ -39444,12 +39446,12 @@ var createCustomBuildJobs = function (context) {
39444
39446
  expire_in: "1 day"
39445
39447
  }
39446
39448
  }) : null;
39447
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39449
+ return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39448
39450
  script: [((_d = buildConfig.docker) === null || _d === void 0 ? void 0 : _d.type) === "nginx" ? "ensureNginxDockerfile" : "" // e.g. custom,
39449
39451
  ].filter(Boolean),
39450
39452
  variables: {},
39451
39453
  needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
39452
- })] : []), false);
39454
+ })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
39453
39455
  };
39454
39456
  exports.createCustomBuildJobs = createCustomBuildJobs;
39455
39457
 
@@ -39900,6 +39902,8 @@ var cache_1 = __nccwpck_require__(4303);
39900
39902
  var constants_2 = __nccwpck_require__(9284);
39901
39903
  var yarn_1 = __nccwpck_require__(464);
39902
39904
  var runner_1 = __nccwpck_require__(5071);
39905
+ var sbom_1 = __nccwpck_require__(9927);
39906
+ var sbom_2 = __nccwpck_require__(5928);
39903
39907
  var createNodeBuildJobs = function (context) {
39904
39908
  var _a, _b, _c, _d, _e, _f, _g;
39905
39909
  var buildConfig = context.componentConfig.build;
@@ -39921,7 +39925,7 @@ var createNodeBuildJobs = function (context) {
39921
39925
  },
39922
39926
  jobTags: buildConfig.jobTags
39923
39927
  }) : null;
39924
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39928
+ return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
39925
39929
  script: [buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"],
39926
39930
  cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
39927
39931
  variables: {
@@ -39932,7 +39936,7 @@ var createNodeBuildJobs = function (context) {
39932
39936
  })) === null || _g === void 0 ? void 0 : _g.join("\n")
39933
39937
  },
39934
39938
  needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
39935
- })] : []), false);
39939
+ })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
39936
39940
  };
39937
39941
  exports.createNodeBuildJobs = createNodeBuildJobs;
39938
39942
 
@@ -40414,10 +40418,21 @@ var __read = this && this.__read || function (o, n) {
40414
40418
  }
40415
40419
  return ar;
40416
40420
  };
40421
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
40422
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40423
+ if (ar || !(i in from)) {
40424
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40425
+ ar[i] = from[i];
40426
+ }
40427
+ }
40428
+ return to.concat(ar || Array.prototype.slice.call(from));
40429
+ };
40417
40430
  exports.__esModule = true;
40418
40431
  exports.createRailsBuildJobs = void 0;
40419
40432
  var types_1 = __nccwpck_require__(1197);
40420
40433
  var docker_1 = __nccwpck_require__(3219);
40434
+ var sbom_1 = __nccwpck_require__(5928);
40435
+ var sbom_2 = __nccwpck_require__(9927);
40421
40436
  var createRailsBuildJobs = function (context) {
40422
40437
  var _a, _b, _c;
40423
40438
  var buildConfig = context.componentConfig.build;
@@ -40432,13 +40447,13 @@ var createRailsBuildJobs = function (context) {
40432
40447
  v = _b[1];
40433
40448
  return "--env '".concat(k).concat(v ? "=".concat(v) : "", "'");
40434
40449
  }).join(" ");
40435
- return [(0, docker_1.createDockerBuildJobBase)(context, {
40450
+ return __spreadArray([(0, docker_1.createDockerBuildJobBase)(context, {
40436
40451
  variables: __assign(__assign({}, context.environment.jobOnlyVars.build.envVars), context.componentConfig.build.extraVars),
40437
40452
  // custom script
40438
40453
  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
40454
  // replace private git ssh gem sources with https to make bundler with credentials via env var work
40440
40455
  "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
- })];
40456
+ })], __read((0, sbom_1.sbomDeactivated)(context) ? [] : [(0, sbom_2.createSbomBuildJob)(context)]), false);
40442
40457
  };
40443
40458
  exports.createRailsBuildJobs = createRailsBuildJobs;
40444
40459
 
@@ -40593,6 +40608,42 @@ exports.createRailsTestJobs = createRailsTestJobs;
40593
40608
 
40594
40609
  /***/ }),
40595
40610
 
40611
+ /***/ 9927:
40612
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
40613
+
40614
+ "use strict";
40615
+
40616
+
40617
+ exports.__esModule = true;
40618
+ exports.createSbomBuildJob = exports.SBOM_FILE = exports.SBOM_BUILD_JOB_NAME = void 0;
40619
+ var utils_1 = __nccwpck_require__(7461);
40620
+ exports.SBOM_BUILD_JOB_NAME = "🧾 sbom";
40621
+ exports.SBOM_FILE = "__sbom.json";
40622
+ var createSbomBuildJob = function (context) {
40623
+ var _a, _b, _c, _d, _e;
40624
+ var buildConfig = context.componentConfig.build;
40625
+ var defaultImage = "aquasec/trivy:0.38.3";
40626
+ 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)];
40627
+ 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;
40628
+ 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;
40629
+ return {
40630
+ name: exports.SBOM_BUILD_JOB_NAME,
40631
+ stage: "build",
40632
+ envMode: "jobPerEnv",
40633
+ variables: {},
40634
+ cache: undefined,
40635
+ image: image,
40636
+ script: script,
40637
+ allow_failure: true,
40638
+ artifacts: {
40639
+ paths: [exports.SBOM_FILE]
40640
+ }
40641
+ };
40642
+ };
40643
+ exports.createSbomBuildJob = createSbomBuildJob;
40644
+
40645
+ /***/ }),
40646
+
40596
40647
  /***/ 1197:
40597
40648
  /***/ ((__unused_webpack_module, exports) => {
40598
40649
 
@@ -40783,7 +40834,7 @@ exports.readConfigSync = readConfigSync;
40783
40834
 
40784
40835
  exports.__esModule = true;
40785
40836
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40786
- exports.PIPELINE_IMAGE_TAG = "main-8f79dd9f" || 0;
40837
+ exports.PIPELINE_IMAGE_TAG = "main-48ef3537" || 0;
40787
40838
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40788
40839
 
40789
40840
  /***/ }),
@@ -42053,9 +42104,42 @@ var __assign = this && this.__assign || function () {
42053
42104
  };
42054
42105
  return __assign.apply(this, arguments);
42055
42106
  };
42107
+ var __read = this && this.__read || function (o, n) {
42108
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
42109
+ if (!m) return o;
42110
+ var i = m.call(o),
42111
+ r,
42112
+ ar = [],
42113
+ e;
42114
+ try {
42115
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42116
+ } catch (error) {
42117
+ e = {
42118
+ error: error
42119
+ };
42120
+ } finally {
42121
+ try {
42122
+ if (r && !r.done && (m = i["return"])) m.call(i);
42123
+ } finally {
42124
+ if (e) throw e.error;
42125
+ }
42126
+ }
42127
+ return ar;
42128
+ };
42129
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
42130
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
42131
+ if (ar || !(i in from)) {
42132
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42133
+ ar[i] = from[i];
42134
+ }
42135
+ }
42136
+ return to.concat(ar || Array.prototype.slice.call(from));
42137
+ };
42056
42138
  exports.__esModule = true;
42057
42139
  exports.getBaseRollbackJob = exports.getBaseDeploymentStopJob = exports.getBaseDeploymentJob = exports.ROLLBACK_JOB_NAME = exports.STOP_JOB_NAME = exports.DEPLOY_JOB_NAME = void 0;
42058
42140
  var docker_1 = __nccwpck_require__(3219);
42141
+ var sbom_1 = __nccwpck_require__(9927);
42142
+ var sbom_2 = __nccwpck_require__(5928);
42059
42143
  var utils_1 = __nccwpck_require__(2757);
42060
42144
  exports.DEPLOY_JOB_NAME = "🚀 Deploy";
42061
42145
  exports.STOP_JOB_NAME = "🛑 Stop ⚠️";
@@ -42081,13 +42165,16 @@ var getBaseDeploymentJob = function (context) {
42081
42165
  return {
42082
42166
  name: exports.DEPLOY_JOB_NAME,
42083
42167
  envMode: "stagePerEnv",
42084
- needs: context.componentConfig.deploy ? (_c = (_b = context.componentConfig.deploy.waitFor) === null || _b === void 0 ? void 0 : _b.map(function (c) {
42168
+ needs: __spreadArray(__spreadArray([], __read((0, sbom_2.sbomDeactivated)(context) ? [] : [{
42169
+ job: sbom_1.SBOM_BUILD_JOB_NAME,
42170
+ artifacts: true
42171
+ }]), false), __read(context.componentConfig.deploy ? (_c = (_b = context.componentConfig.deploy.waitFor) === null || _b === void 0 ? void 0 : _b.map(function (c) {
42085
42172
  return {
42086
42173
  componentName: c,
42087
42174
  job: exports.DEPLOY_JOB_NAME,
42088
42175
  artifacts: false
42089
42176
  };
42090
- })) !== null && _c !== void 0 ? _c : undefined : undefined,
42177
+ })) !== null && _c !== void 0 ? _c : [] : []), false),
42091
42178
  // we don't want to deploy when there is a broken test
42092
42179
  needsStages: [{
42093
42180
  stage: "build",
@@ -42219,6 +42306,7 @@ var database_1 = __nccwpck_require__(1384);
42219
42306
  var gitlab_1 = __nccwpck_require__(4997);
42220
42307
  var jobName_1 = __nccwpck_require__(7311);
42221
42308
  var createArgsString_1 = __nccwpck_require__(8686);
42309
+ var sbom_1 = __nccwpck_require__(5928);
42222
42310
  var setExtraVarsScripts = function (deployConfig) {
42223
42311
  return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
42224
42312
  };
@@ -42370,18 +42458,18 @@ var createGoogleCloudRunDeployJobs = function (context) {
42370
42458
  "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
42459
  });
42372
42460
  };
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
42461
+ 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
42462
  : []), 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
42463
  var _b = __read(_a, 2),
42376
42464
  name = _b[0],
42377
42465
  service = _b[1];
42378
42466
  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) {
42467
+ })), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false);
42468
+ 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
42469
  var _b = __read(_a, 1),
42382
42470
  name = _b[0];
42383
42471
  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);
42472
+ })), 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
42473
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
42386
42474
  artifacts: {
42387
42475
  paths: ["____envvars.yaml"]
@@ -42761,6 +42849,7 @@ var yarn_1 = __nccwpck_require__(464);
42761
42849
  var runner_1 = __nccwpck_require__(5071);
42762
42850
  var base_1 = __nccwpck_require__(9177);
42763
42851
  var types_1 = __nccwpck_require__(3109);
42852
+ var sbom_1 = __nccwpck_require__(5928);
42764
42853
  var createCustomDeployJobs = function (context) {
42765
42854
  var _a, _b, _c;
42766
42855
  var deployConfig = context.componentConfig.deploy;
@@ -42779,10 +42868,10 @@ var createCustomDeployJobs = function (context) {
42779
42868
  return __spreadArray([(0, lodash_1.merge)({}, baseDeploymentJob, {
42780
42869
  image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
42781
42870
  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)
42871
+ 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
42872
  })], __read(deployConfig.stopScript ? [(0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
42784
42873
  image: (_c = deployConfig.jobImage) !== null && _c !== void 0 ? _c : (0, runner_1.getRunnerImage)("jobs-default"),
42785
- script: deployConfig.stopScript
42874
+ script: __spreadArray(__spreadArray([], __read(deployConfig.stopScript), false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false)
42786
42875
  })] : []), false);
42787
42876
  };
42788
42877
  exports.createCustomDeployJobs = createCustomDeployJobs;
@@ -43057,6 +43146,7 @@ var runner_1 = __nccwpck_require__(5071);
43057
43146
  var base_1 = __nccwpck_require__(9177);
43058
43147
  var types_1 = __nccwpck_require__(3109);
43059
43148
  var kubeValues_1 = __nccwpck_require__(1061);
43149
+ var sbom_1 = __nccwpck_require__(5928);
43060
43150
  var createKubernetesDeployJobs = function (context) {
43061
43151
  var _a, _b, _c;
43062
43152
  var deployConfig = context.componentConfig.deploy;
@@ -43094,12 +43184,12 @@ var createKubernetesDeployJobs = function (context) {
43094
43184
  var clusterName = "kube-".concat(context.environment.fullName);
43095
43185
  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
43186
  return [(0, lodash_1.merge)({}, baseDeploymentJob, shared, {
43097
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy", "echo deployment successful 😻"], false),
43187
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy"], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false), ["echo deployment successful 😻"], false),
43098
43188
  environment: {
43099
43189
  kubernetes: kubernetesEnvironment
43100
43190
  }
43101
43191
  }), (0, lodash_1.merge)({}, baseStopJob, shared, {
43102
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false),
43192
+ script: __spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false),
43103
43193
  environment: {
43104
43194
  kubernetes: kubernetesEnvironment
43105
43195
  }
@@ -43545,6 +43635,30 @@ exports.processSecretsAsFiles = processSecretsAsFiles;
43545
43635
 
43546
43636
  /***/ }),
43547
43637
 
43638
+ /***/ 5928:
43639
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
43640
+
43641
+ "use strict";
43642
+
43643
+
43644
+ exports.__esModule = true;
43645
+ exports.getDependencyTrackDeleteScript = exports.getDependencyTrackUploadScript = exports.sbomDeactivated = void 0;
43646
+ var sbom_1 = __nccwpck_require__(9927);
43647
+ var sbomDeactivated = function (context) {
43648
+ return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false;
43649
+ };
43650
+ exports.sbomDeactivated = sbomDeactivated;
43651
+ var getDependencyTrackUploadScript = function (context) {
43652
+ 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")];
43653
+ };
43654
+ exports.getDependencyTrackUploadScript = getDependencyTrackUploadScript;
43655
+ var getDependencyTrackDeleteScript = function (context) {
43656
+ 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")];
43657
+ };
43658
+ exports.getDependencyTrackDeleteScript = getDependencyTrackDeleteScript;
43659
+
43660
+ /***/ }),
43661
+
43548
43662
  /***/ 438:
43549
43663
  /***/ ((__unused_webpack_module, exports) => {
43550
43664
 
@@ -44550,7 +44664,6 @@ exports.__esModule = true;
44550
44664
  exports.createJobsForComponent = void 0;
44551
44665
  var lodash_1 = __nccwpck_require__(3255);
44552
44666
  var build_1 = __nccwpck_require__(3760);
44553
- var reporting_1 = __nccwpck_require__(3545);
44554
44667
  var context_1 = __nccwpck_require__(2041);
44555
44668
  var deploy_1 = __nccwpck_require__(223);
44556
44669
  var getCommitInfo_1 = __nccwpck_require__(5923);
@@ -44575,9 +44688,8 @@ var getCustomJobs = function (context) {
44575
44688
  var createRawJobs = function (context) {
44576
44689
  var buildJobs = build_1.BUILD_TYPES[context.componentConfig.build.type].jobs(context);
44577
44690
  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
44691
  var customJobs = getCustomJobs(context);
44580
- return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(reportingJobs), false), __read(customJobs), false);
44692
+ return __spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(customJobs), false);
44581
44693
  };
44582
44694
  var createJobsForComponent = function (config, componentName, env, trigger) {
44583
44695
  return __awaiter(void 0, void 0, void 0, function () {
@@ -44834,7 +44946,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
44834
44946
  };
44835
44947
  });
44836
44948
  });
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);
44949
+ 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
44950
  var gitlabNeeds = cleanedNeeds === null || cleanedNeeds === void 0 ? void 0 : cleanedNeeds.map(function (n) {
44839
44951
  var _a;
44840
44952
  return (0, lodash_1.isObject)(n) ? {
@@ -44844,6 +44956,9 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
44844
44956
  }).sort(function (a, b) {
44845
44957
  return getJobName(a).localeCompare(getJobName(b));
44846
44958
  });
44959
+ var deduplicatedGitlabNeeds = __spreadArray([], __read(new Map(gitlabNeeds.map(function (n) {
44960
+ return [(0, lodash_1.isObject)(n) ? n.job : n, n];
44961
+ })).values()), false);
44847
44962
  var fullJobName = getFullJobName(name, componentName, envMode !== "none" ? env : undefined);
44848
44963
  var gitlabJob = removeUndefined(__assign(__assign({}, job), {
44849
44964
  tags: jobTags,
@@ -44852,7 +44967,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
44852
44967
  on_stop: getFullReferencedJobName(job.environment.on_stop, componentName, env, allJobs)
44853
44968
  }) : job.environment,
44854
44969
  // sort in a predictable manner for snapshot tests
44855
- needs: gitlabNeeds,
44970
+ needs: deduplicatedGitlabNeeds,
44856
44971
  retry: defaults_1.BASE_RETRY,
44857
44972
  interruptible: true
44858
44973
  }));
@@ -45633,61 +45748,6 @@ exports.mergeWithMergingArrays = mergeWithMergingArrays;
45633
45748
 
45634
45749
  /***/ }),
45635
45750
 
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
45751
  /***/ 9904:
45692
45752
  /***/ ((module) => {
45693
45753
 
@@ -350487,6 +350487,8 @@ var constants_1 = __nccwpck_require__(11542);
350487
350487
  var createBuildJob_1 = __nccwpck_require__(58063);
350488
350488
  var docker_1 = __nccwpck_require__(33219);
350489
350489
  var types_1 = __nccwpck_require__(71197);
350490
+ var sbom_1 = __nccwpck_require__(9927);
350491
+ var sbom_2 = __nccwpck_require__(65928);
350490
350492
  var RUNNER_BUILD_VARIABLES = {
350491
350493
  KUBERNETES_CPU_REQUEST: "0.5",
350492
350494
  KUBERNETES_CPU_LIMIT: "2",
@@ -350512,12 +350514,12 @@ var createCustomBuildJobs = function (context) {
350512
350514
  expire_in: "1 day"
350513
350515
  }
350514
350516
  }) : null;
350515
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
350517
+ return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
350516
350518
  script: [((_d = buildConfig.docker) === null || _d === void 0 ? void 0 : _d.type) === "nginx" ? "ensureNginxDockerfile" : "" // e.g. custom,
350517
350519
  ].filter(Boolean),
350518
350520
  variables: {},
350519
350521
  needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
350520
- })] : []), false);
350522
+ })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
350521
350523
  };
350522
350524
  exports.createCustomBuildJobs = createCustomBuildJobs;
350523
350525
 
@@ -350968,6 +350970,8 @@ var cache_1 = __nccwpck_require__(54303);
350968
350970
  var constants_2 = __nccwpck_require__(69284);
350969
350971
  var yarn_1 = __nccwpck_require__(10464);
350970
350972
  var runner_1 = __nccwpck_require__(55071);
350973
+ var sbom_1 = __nccwpck_require__(9927);
350974
+ var sbom_2 = __nccwpck_require__(65928);
350971
350975
  var createNodeBuildJobs = function (context) {
350972
350976
  var _a, _b, _c, _d, _e, _f, _g;
350973
350977
  var buildConfig = context.componentConfig.build;
@@ -350989,7 +350993,7 @@ var createNodeBuildJobs = function (context) {
350989
350993
  },
350990
350994
  jobTags: buildConfig.jobTags
350991
350995
  }) : null;
350992
- return __spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
350996
+ return __spreadArray(__spreadArray(__spreadArray([], __read(appBuildJob ? [appBuildJob] : []), false), __read((0, docker_1.requiresDockerBuild)(context) ? [(0, docker_1.createDockerBuildJobDefault)(context, {
350993
350997
  script: [buildConfig.type === "node-static" || buildConfig.type === "storybook" ? "ensureNginxDockerfile" : "ensureNodeDockerfile"],
350994
350998
  cache: __spreadArray([], __read((0, cache_1.getYarnCache)(context, "pull")), false),
350995
350999
  variables: {
@@ -351000,7 +351004,7 @@ var createNodeBuildJobs = function (context) {
351000
351004
  })) === null || _g === void 0 ? void 0 : _g.join("\n")
351001
351005
  },
351002
351006
  needs: appBuildJob ? [constants_1.APP_BUILD_JOB_NAME] : []
351003
- })] : []), false);
351007
+ })] : []), false), __read((0, sbom_2.sbomDeactivated)(context) ? [] : [(0, sbom_1.createSbomBuildJob)(context)]), false);
351004
351008
  };
351005
351009
  exports.createNodeBuildJobs = createNodeBuildJobs;
351006
351010
 
@@ -351482,10 +351486,21 @@ var __read = this && this.__read || function (o, n) {
351482
351486
  }
351483
351487
  return ar;
351484
351488
  };
351489
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
351490
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
351491
+ if (ar || !(i in from)) {
351492
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
351493
+ ar[i] = from[i];
351494
+ }
351495
+ }
351496
+ return to.concat(ar || Array.prototype.slice.call(from));
351497
+ };
351485
351498
  exports.__esModule = true;
351486
351499
  exports.createRailsBuildJobs = void 0;
351487
351500
  var types_1 = __nccwpck_require__(71197);
351488
351501
  var docker_1 = __nccwpck_require__(33219);
351502
+ var sbom_1 = __nccwpck_require__(65928);
351503
+ var sbom_2 = __nccwpck_require__(9927);
351489
351504
  var createRailsBuildJobs = function (context) {
351490
351505
  var _a, _b, _c;
351491
351506
  var buildConfig = context.componentConfig.build;
@@ -351500,13 +351515,13 @@ var createRailsBuildJobs = function (context) {
351500
351515
  v = _b[1];
351501
351516
  return "--env '".concat(k).concat(v ? "=".concat(v) : "", "'");
351502
351517
  }).join(" ");
351503
- return [(0, docker_1.createDockerBuildJobBase)(context, {
351518
+ return __spreadArray([(0, docker_1.createDockerBuildJobBase)(context, {
351504
351519
  variables: __assign(__assign({}, context.environment.jobOnlyVars.build.envVars), context.componentConfig.build.extraVars),
351505
351520
  // custom script
351506
351521
  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",
351507
351522
  // replace private git ssh gem sources with https to make bundler with credentials via env var work
351508
351523
  "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 : "")]
351509
- })];
351524
+ })], __read((0, sbom_1.sbomDeactivated)(context) ? [] : [(0, sbom_2.createSbomBuildJob)(context)]), false);
351510
351525
  };
351511
351526
  exports.createRailsBuildJobs = createRailsBuildJobs;
351512
351527
 
@@ -351661,6 +351676,42 @@ exports.createRailsTestJobs = createRailsTestJobs;
351661
351676
 
351662
351677
  /***/ }),
351663
351678
 
351679
+ /***/ 9927:
351680
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
351681
+
351682
+ "use strict";
351683
+
351684
+
351685
+ exports.__esModule = true;
351686
+ exports.createSbomBuildJob = exports.SBOM_FILE = exports.SBOM_BUILD_JOB_NAME = void 0;
351687
+ var utils_1 = __nccwpck_require__(37461);
351688
+ exports.SBOM_BUILD_JOB_NAME = "🧾 sbom";
351689
+ exports.SBOM_FILE = "__sbom.json";
351690
+ var createSbomBuildJob = function (context) {
351691
+ var _a, _b, _c, _d, _e;
351692
+ var buildConfig = context.componentConfig.build;
351693
+ var defaultImage = "aquasec/trivy:0.38.3";
351694
+ 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)];
351695
+ 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;
351696
+ 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;
351697
+ return {
351698
+ name: exports.SBOM_BUILD_JOB_NAME,
351699
+ stage: "build",
351700
+ envMode: "jobPerEnv",
351701
+ variables: {},
351702
+ cache: undefined,
351703
+ image: image,
351704
+ script: script,
351705
+ allow_failure: true,
351706
+ artifacts: {
351707
+ paths: [exports.SBOM_FILE]
351708
+ }
351709
+ };
351710
+ };
351711
+ exports.createSbomBuildJob = createSbomBuildJob;
351712
+
351713
+ /***/ }),
351714
+
351664
351715
  /***/ 71197:
351665
351716
  /***/ ((__unused_webpack_module, exports) => {
351666
351717
 
@@ -351851,7 +351902,7 @@ exports.readConfigSync = readConfigSync;
351851
351902
 
351852
351903
  exports.__esModule = true;
351853
351904
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
351854
- exports.PIPELINE_IMAGE_TAG = "main-8f79dd9f" || 0;
351905
+ exports.PIPELINE_IMAGE_TAG = "main-48ef3537" || 0;
351855
351906
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
351856
351907
 
351857
351908
  /***/ }),
@@ -353121,9 +353172,42 @@ var __assign = this && this.__assign || function () {
353121
353172
  };
353122
353173
  return __assign.apply(this, arguments);
353123
353174
  };
353175
+ var __read = this && this.__read || function (o, n) {
353176
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
353177
+ if (!m) return o;
353178
+ var i = m.call(o),
353179
+ r,
353180
+ ar = [],
353181
+ e;
353182
+ try {
353183
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
353184
+ } catch (error) {
353185
+ e = {
353186
+ error: error
353187
+ };
353188
+ } finally {
353189
+ try {
353190
+ if (r && !r.done && (m = i["return"])) m.call(i);
353191
+ } finally {
353192
+ if (e) throw e.error;
353193
+ }
353194
+ }
353195
+ return ar;
353196
+ };
353197
+ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
353198
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
353199
+ if (ar || !(i in from)) {
353200
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
353201
+ ar[i] = from[i];
353202
+ }
353203
+ }
353204
+ return to.concat(ar || Array.prototype.slice.call(from));
353205
+ };
353124
353206
  exports.__esModule = true;
353125
353207
  exports.getBaseRollbackJob = exports.getBaseDeploymentStopJob = exports.getBaseDeploymentJob = exports.ROLLBACK_JOB_NAME = exports.STOP_JOB_NAME = exports.DEPLOY_JOB_NAME = void 0;
353126
353208
  var docker_1 = __nccwpck_require__(33219);
353209
+ var sbom_1 = __nccwpck_require__(9927);
353210
+ var sbom_2 = __nccwpck_require__(65928);
353127
353211
  var utils_1 = __nccwpck_require__(92757);
353128
353212
  exports.DEPLOY_JOB_NAME = "🚀 Deploy";
353129
353213
  exports.STOP_JOB_NAME = "🛑 Stop ⚠️";
@@ -353149,13 +353233,16 @@ var getBaseDeploymentJob = function (context) {
353149
353233
  return {
353150
353234
  name: exports.DEPLOY_JOB_NAME,
353151
353235
  envMode: "stagePerEnv",
353152
- needs: context.componentConfig.deploy ? (_c = (_b = context.componentConfig.deploy.waitFor) === null || _b === void 0 ? void 0 : _b.map(function (c) {
353236
+ needs: __spreadArray(__spreadArray([], __read((0, sbom_2.sbomDeactivated)(context) ? [] : [{
353237
+ job: sbom_1.SBOM_BUILD_JOB_NAME,
353238
+ artifacts: true
353239
+ }]), false), __read(context.componentConfig.deploy ? (_c = (_b = context.componentConfig.deploy.waitFor) === null || _b === void 0 ? void 0 : _b.map(function (c) {
353153
353240
  return {
353154
353241
  componentName: c,
353155
353242
  job: exports.DEPLOY_JOB_NAME,
353156
353243
  artifacts: false
353157
353244
  };
353158
- })) !== null && _c !== void 0 ? _c : undefined : undefined,
353245
+ })) !== null && _c !== void 0 ? _c : [] : []), false),
353159
353246
  // we don't want to deploy when there is a broken test
353160
353247
  needsStages: [{
353161
353248
  stage: "build",
@@ -353287,6 +353374,7 @@ var database_1 = __nccwpck_require__(41384);
353287
353374
  var gitlab_1 = __nccwpck_require__(84997);
353288
353375
  var jobName_1 = __nccwpck_require__(77311);
353289
353376
  var createArgsString_1 = __nccwpck_require__(8686);
353377
+ var sbom_1 = __nccwpck_require__(65928);
353290
353378
  var setExtraVarsScripts = function (deployConfig) {
353291
353379
  return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
353292
353380
  };
@@ -353438,18 +353526,18 @@ var createGoogleCloudRunDeployJobs = function (context) {
353438
353526
  "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)];
353439
353527
  });
353440
353528
  };
353441
- 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
353529
+ 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
353442
353530
  : []), 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) {
353443
353531
  var _b = __read(_a, 2),
353444
353532
  name = _b[0],
353445
353533
  service = _b[1];
353446
353534
  return getServiceDeployScript(service, "-" + name);
353447
- })), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false);
353448
- 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) {
353535
+ })), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false);
353536
+ 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) {
353449
353537
  var _b = __read(_a, 1),
353450
353538
  name = _b[0];
353451
353539
  return "gcloud run services delete ".concat(serviceName, "-").concat(name, " ").concat(commonArgsString);
353452
- })), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
353540
+ })), 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);
353453
353541
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
353454
353542
  artifacts: {
353455
353543
  paths: ["____envvars.yaml"]
@@ -353829,6 +353917,7 @@ var yarn_1 = __nccwpck_require__(10464);
353829
353917
  var runner_1 = __nccwpck_require__(55071);
353830
353918
  var base_1 = __nccwpck_require__(89177);
353831
353919
  var types_1 = __nccwpck_require__(63109);
353920
+ var sbom_1 = __nccwpck_require__(65928);
353832
353921
  var createCustomDeployJobs = function (context) {
353833
353922
  var _a, _b, _c;
353834
353923
  var deployConfig = context.componentConfig.deploy;
@@ -353847,10 +353936,10 @@ var createCustomDeployJobs = function (context) {
353847
353936
  return __spreadArray([(0, lodash_1.merge)({}, baseDeploymentJob, {
353848
353937
  image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
353849
353938
  cache: (_b = deployConfig.jobCache) !== null && _b !== void 0 ? _b : [],
353850
- script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.requiresYarnInstall ? yarnInstall : []), false), __read(deployConfig.script), false)
353939
+ 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)
353851
353940
  })], __read(deployConfig.stopScript ? [(0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
353852
353941
  image: (_c = deployConfig.jobImage) !== null && _c !== void 0 ? _c : (0, runner_1.getRunnerImage)("jobs-default"),
353853
- script: deployConfig.stopScript
353942
+ script: __spreadArray(__spreadArray([], __read(deployConfig.stopScript), false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false)
353854
353943
  })] : []), false);
353855
353944
  };
353856
353945
  exports.createCustomDeployJobs = createCustomDeployJobs;
@@ -354125,6 +354214,7 @@ var runner_1 = __nccwpck_require__(55071);
354125
354214
  var base_1 = __nccwpck_require__(89177);
354126
354215
  var types_1 = __nccwpck_require__(63109);
354127
354216
  var kubeValues_1 = __nccwpck_require__(1061);
354217
+ var sbom_1 = __nccwpck_require__(65928);
354128
354218
  var createKubernetesDeployJobs = function (context) {
354129
354219
  var _a, _b, _c;
354130
354220
  var deployConfig = context.componentConfig.deploy;
@@ -354162,12 +354252,12 @@ var createKubernetesDeployJobs = function (context) {
354162
354252
  var clusterName = "kube-".concat(context.environment.fullName);
354163
354253
  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, "\"")];
354164
354254
  return [(0, lodash_1.merge)({}, baseDeploymentJob, shared, {
354165
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy", "echo deployment successful 😻"], false),
354255
+ script: __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesCreateSecret", "kubernetesDeploy"], false), __read((0, sbom_1.getDependencyTrackUploadScript)(context)), false), ["echo deployment successful 😻"], false),
354166
354256
  environment: {
354167
354257
  kubernetes: kubernetesEnvironment
354168
354258
  }
354169
354259
  }), (0, lodash_1.merge)({}, baseStopJob, shared, {
354170
- script: __spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false),
354260
+ script: __spreadArray(__spreadArray(__spreadArray([], __read(connectContext), false), ["kubernetesDelete"], false), __read((0, sbom_1.getDependencyTrackDeleteScript)(context)), false),
354171
354261
  environment: {
354172
354262
  kubernetes: kubernetesEnvironment
354173
354263
  }
@@ -354613,6 +354703,30 @@ exports.processSecretsAsFiles = processSecretsAsFiles;
354613
354703
 
354614
354704
  /***/ }),
354615
354705
 
354706
+ /***/ 65928:
354707
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
354708
+
354709
+ "use strict";
354710
+
354711
+
354712
+ exports.__esModule = true;
354713
+ exports.getDependencyTrackDeleteScript = exports.getDependencyTrackUploadScript = exports.sbomDeactivated = void 0;
354714
+ var sbom_1 = __nccwpck_require__(9927);
354715
+ var sbomDeactivated = function (context) {
354716
+ return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false;
354717
+ };
354718
+ exports.sbomDeactivated = sbomDeactivated;
354719
+ var getDependencyTrackUploadScript = function (context) {
354720
+ 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")];
354721
+ };
354722
+ exports.getDependencyTrackUploadScript = getDependencyTrackUploadScript;
354723
+ var getDependencyTrackDeleteScript = function (context) {
354724
+ 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")];
354725
+ };
354726
+ exports.getDependencyTrackDeleteScript = getDependencyTrackDeleteScript;
354727
+
354728
+ /***/ }),
354729
+
354616
354730
  /***/ 20438:
354617
354731
  /***/ ((__unused_webpack_module, exports) => {
354618
354732
 
@@ -355618,7 +355732,6 @@ exports.__esModule = true;
355618
355732
  exports.createJobsForComponent = void 0;
355619
355733
  var lodash_1 = __nccwpck_require__(23255);
355620
355734
  var build_1 = __nccwpck_require__(73760);
355621
- var reporting_1 = __nccwpck_require__(43545);
355622
355735
  var context_1 = __nccwpck_require__(22041);
355623
355736
  var deploy_1 = __nccwpck_require__(90223);
355624
355737
  var getCommitInfo_1 = __nccwpck_require__(5923);
@@ -355643,9 +355756,8 @@ var getCustomJobs = function (context) {
355643
355756
  var createRawJobs = function (context) {
355644
355757
  var buildJobs = build_1.BUILD_TYPES[context.componentConfig.build.type].jobs(context);
355645
355758
  var deployJobs = context.componentConfig.deploy !== false ? deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context) : [];
355646
- var reportingJobs = (0, reporting_1.createReportingJobs)(context);
355647
355759
  var customJobs = getCustomJobs(context);
355648
- return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(reportingJobs), false), __read(customJobs), false);
355760
+ return __spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(customJobs), false);
355649
355761
  };
355650
355762
  var createJobsForComponent = function (config, componentName, env, trigger) {
355651
355763
  return __awaiter(void 0, void 0, void 0, function () {
@@ -355902,7 +356014,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
355902
356014
  };
355903
356015
  });
355904
356016
  });
355905
- 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);
356017
+ 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);
355906
356018
  var gitlabNeeds = cleanedNeeds === null || cleanedNeeds === void 0 ? void 0 : cleanedNeeds.map(function (n) {
355907
356019
  var _a;
355908
356020
  return (0, lodash_1.isObject)(n) ? {
@@ -355912,6 +356024,9 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
355912
356024
  }).sort(function (a, b) {
355913
356025
  return getJobName(a).localeCompare(getJobName(b));
355914
356026
  });
356027
+ var deduplicatedGitlabNeeds = __spreadArray([], __read(new Map(gitlabNeeds.map(function (n) {
356028
+ return [(0, lodash_1.isObject)(n) ? n.job : n, n];
356029
+ })).values()), false);
355915
356030
  var fullJobName = getFullJobName(name, componentName, envMode !== "none" ? env : undefined);
355916
356031
  var gitlabJob = removeUndefined(__assign(__assign({}, job), {
355917
356032
  tags: jobTags,
@@ -355920,7 +356035,7 @@ var makeGitlabJob = function (componentName, env, _a, allJobs) {
355920
356035
  on_stop: getFullReferencedJobName(job.environment.on_stop, componentName, env, allJobs)
355921
356036
  }) : job.environment,
355922
356037
  // sort in a predictable manner for snapshot tests
355923
- needs: gitlabNeeds,
356038
+ needs: deduplicatedGitlabNeeds,
355924
356039
  retry: defaults_1.BASE_RETRY,
355925
356040
  interruptible: true
355926
356041
  }));
@@ -356701,61 +356816,6 @@ exports.mergeWithMergingArrays = mergeWithMergingArrays;
356701
356816
 
356702
356817
  /***/ }),
356703
356818
 
356704
- /***/ 43545:
356705
- /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
356706
-
356707
- "use strict";
356708
-
356709
-
356710
- exports.__esModule = true;
356711
- exports.createReportingJobs = void 0;
356712
- var base_1 = __nccwpck_require__(89177);
356713
- var utils_1 = __nccwpck_require__(37461);
356714
- var STAGE = "verify";
356715
- var SBOM_GENERATE_JOB_NAME = "🧾 sbom";
356716
- var SBOM_FILE = "__sbom.json";
356717
- var createSbomGenerateJob = function (context) {
356718
- var _a, _b, _c, _d, _e;
356719
- var buildConfig = context.componentConfig.build;
356720
- var defaultImage = "aquasec/trivy:0.38.3";
356721
- 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)];
356722
- 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;
356723
- 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;
356724
- return {
356725
- name: SBOM_GENERATE_JOB_NAME,
356726
- stage: STAGE,
356727
- needs: context.componentConfig.deploy !== false ? [base_1.DEPLOY_JOB_NAME] : [],
356728
- envMode: "jobPerEnv",
356729
- variables: {},
356730
- cache: undefined,
356731
- image: image,
356732
- script: script,
356733
- allow_failure: true,
356734
- artifacts: {
356735
- paths: [SBOM_FILE]
356736
- }
356737
- };
356738
- };
356739
- var createSbomUploadJob = function (context) {
356740
- return {
356741
- name: "🧾 sbom upload",
356742
- stage: STAGE,
356743
- needs: [SBOM_GENERATE_JOB_NAME],
356744
- envMode: "jobPerEnv",
356745
- variables: {},
356746
- cache: undefined,
356747
- image: "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
356748
- 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")],
356749
- allow_failure: true
356750
- };
356751
- };
356752
- var createReportingJobs = function (context) {
356753
- return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false ? [] : [createSbomGenerateJob(context), createSbomUploadJob(context)];
356754
- };
356755
- exports.createReportingJobs = createReportingJobs;
356756
-
356757
- /***/ }),
356758
-
356759
356819
  /***/ 15058:
356760
356820
  /***/ ((module) => {
356761
356821
 
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "node": ">=12.0.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@catladder/pipeline": "0.0.0-main-8f79dd9f",
27
+ "@catladder/pipeline": "0.0.0-main-48ef3537",
28
28
  "@kubernetes/client-node": "^0.16.2",
29
29
  "@tsconfig/node14": "^1.0.1",
30
30
  "@types/common-tags": "^1.8.0",
@@ -57,6 +57,6 @@
57
57
  "typescript": "^4.5.4",
58
58
  "vorpal": "^1.12.0"
59
59
  },
60
- "version": "0.0.0-main-8f79dd9f",
60
+ "version": "0.0.0-main-48ef3537",
61
61
  "stableVersion": "0.0.0"
62
62
  }