@catladder/cli 0.0.0-main-8aca4de2 → 0.0.0-main-91b2d412

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.
@@ -46,7 +46,7 @@ var cluster_1 = require("../../../../../utils/cluster");
46
46
  var gitlab_1 = require("../../../../../utils/gitlab");
47
47
  var ensureNamespace_1 = __importDefault(require("../utils/ensureNamespace"));
48
48
  var setupKubernetes = function (instance, context) { return __awaiter(void 0, void 0, void 0, function () {
49
- var deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, tokenName, KUBE_CA_PEM, KUBE_TOKEN, vars;
49
+ var deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, secretName, KUBE_CA_PEM, KUBE_TOKEN, vars, missing;
50
50
  return __generator(this, function (_a) {
51
51
  switch (_a.label) {
52
52
  case 0:
@@ -98,13 +98,16 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
98
98
  case 11:
99
99
  // upsert role in the ns
100
100
  _a.sent();
101
- return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get serviceaccount --namespace ".concat(namespace, " ").concat(serviceAccountName, " -o jsonpath='{.secrets[0].name}'")).then(function (c) { return c.stdout.trim(); })];
101
+ secretName = "".concat(serviceAccountName, "-secret");
102
+ // create token for the service account
103
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("\nkubectl apply -f - <<EOF\napiVersion: v1\nkind: Secret\nmetadata:\n name: ".concat(secretName, "\n namespace: ").concat(namespace, "\n annotations:\n kubernetes.io/service-account.name: ").concat(serviceAccountName, "\ntype: kubernetes.io/service-account-token\nEOF\n "))];
102
104
  case 12:
103
- tokenName = _a.sent();
104
- return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(tokenName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['ca\\.crt']}\"")).then(function (c) { return c.stdout.trim(); })];
105
+ // create token for the service account
106
+ _a.sent();
107
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['ca\\.crt']}\"")).then(function (c) { return c.stdout.trim(); })];
105
108
  case 13:
106
109
  KUBE_CA_PEM = _a.sent();
107
- return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(tokenName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['token']}\" | base64 --decode")).then(function (c) { return c.stdout.trim(); })];
110
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['token']}\" | base64 --decode")).then(function (c) { return c.stdout.trim(); })];
108
111
  case 14:
109
112
  KUBE_TOKEN = _a.sent();
110
113
  vars = {
@@ -112,6 +115,14 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
112
115
  KUBE_CA_PEM: KUBE_CA_PEM,
113
116
  KUBE_URL: KUBE_URL
114
117
  };
118
+ missing = Object.entries(vars).filter(function (e) { return !e[1]; });
119
+ if (missing.length > 0) {
120
+ throw new Error("could not setup credentials. Missing vars: " +
121
+ missing.map(function (m) { return m[0]; }).join(", ") +
122
+ ". Check whether your local kubectl is still working for '" +
123
+ fullName +
124
+ "'");
125
+ }
115
126
  instance.log("service accounts created / updated!");
116
127
  instance.log("");
117
128
  instance.log("pusing secrets to gitlab...");
@@ -1 +1 @@
1
- {"version":3,"file":"setupKubernetes.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupKubernetes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAG6B;AAE7B,+DAA6C;AAC7C,wDAAgE;AAChE,sDAAiE;AACjE,6EAAuD;AAEhD,IAAM,eAAe,GAAG,UAC7B,QAAyB,EACzB,OAAgB;;;;;gBAEV,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;gBACpD,IAAI,CAAC,IAAA,yBAAc,EAAC,YAAY,EAAE,YAAY,CAAC,EAAE;oBAC/C,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;iBAC7E;gBAEK,QAAQ,GAAG,IAAA,uCAA4B,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACpE,QAAQ,CAAC,GAAG,CAAC,mBAAY,QAAQ,CAAE,CAAC,CAAC;gBAErC,qBAAM,IAAA,0BAAgB,EAAC,QAAQ,CAAC,EAAA;;gBAAhC,SAAgC,CAAC;gBACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjB,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBACrB,qBAAM,IAAA,4BAAe,EAAC,OAAO,CAAC,EAAA;;gBAA1C,SAAS,GAAG,SAA8B;gBAChD,QAAQ,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,GAAG,qBAAqB,CAAC,CAAC;gBAC/D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjB,mBAAmB;gBAEnB,mFAAmF;gBACnF,gEAAgE;gBAChE,QAAQ,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBACvC,kBAAkB,GAAG,aAAM,OAAO,CAAC,aAAa,YAAS,CAAC;gBAC/C,qBAAM,IAAA,4BAAI,EACzB,kHAAkH,CACnH,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAf,CAAe,CAAC,EAAA;;gBAFxB,QAAQ,GAAG,SAEa;;;;gBAI5B,qBAAM,IAAA,4BAAI,EACR,oDAA6C,SAAS,cAAI,kBAAkB,CAAE,CAC/E,EAAA;;gBAFD,SAEC,CAAC;gBACF,qBAAM,IAAA,4BAAI,EACR,iDAA0C,SAAS,cAAI,kBAAkB,CAAE,CAC5E,EAAA;;gBAFD,SAEC,CAAC;gBACF,qBAAM,IAAA,4BAAI,EACR,0CAAmC,SAAS,cAAI,kBAAkB,CAAE,CACrE,EAAA;;gBAFD,SAEC,CAAC;;;;;oBAKJ,qBAAM,IAAA,4BAAI,EACR,oDAA6C,SAAS,cAAI,kBAAkB,CAAE,CAC/E,EAAA;;gBAFD,SAEC,CAAC;gBAEF,wBAAwB;gBAExB,qBAAM,IAAA,4BAAI,EAAC,wHAIE,SAAS,uBACd,kBAAkB,2jBASlB,kBAAkB,4BACb,SAAS,8DAGZ,kBAAkB,+BACZ,SAAS,+CAGjB,kBAAkB,mDAG3B,CAAC,EAAA;;gBA3BA,wBAAwB;gBAExB,SAyBA,CAAC;gBAGiB,qBAAM,IAAA,4BAAI,EAC1B,iDAA0C,SAAS,cAAI,kBAAkB,sCAAmC,CAC7G,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAf,CAAe,CAAC,EAAA;;gBAFxB,SAAS,GAAG,SAEY;gBAEV,qBAAM,IAAA,4BAAI,EAC5B,6BAAsB,SAAS,0BAAgB,SAAS,4CAAuC,CAChG,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAf,CAAe,CAAC,EAAA;;gBAFxB,WAAW,GAAG,SAEU;gBACX,qBAAM,IAAA,4BAAI,EAC3B,6BAAsB,SAAS,0BAAgB,SAAS,2DAAsD,CAC/G,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAf,CAAe,CAAC,EAAA;;gBAFxB,UAAU,GAAG,SAEW;gBAExB,IAAI,GAAG;oBACX,UAAU,YAAA;oBACV,WAAW,aAAA;oBACX,QAAQ,UAAA;iBACT,CAAC;gBAEF,QAAQ,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBAEpD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjB,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAE5C,qBAAM,IAAA,2BAAkB,EACtB,QAAQ,EACR,IAAI,EACJ,OAAO,CAAC,WAAW,CAAC,SAAS,EAC7B,OAAO,CAAC,aAAa,EACrB,KAAK,CAAC,YAAY;qBACnB,EAAA;;gBAND,SAMC,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;;;KACvB,CAAC;AA3GW,QAAA,eAAe,mBA2G1B"}
1
+ {"version":3,"file":"setupKubernetes.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupKubernetes.ts"],"names":[],"mappings":"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"}
@@ -40211,7 +40211,7 @@ exports.readConfigSync = readConfigSync;
40211
40211
 
40212
40212
  exports.__esModule = true;
40213
40213
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40214
- exports.PIPELINE_IMAGE_TAG = "main-8aca4de2" || 0;
40214
+ exports.PIPELINE_IMAGE_TAG = "main-91b2d412" || 0;
40215
40215
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40216
40216
 
40217
40217
  /***/ }),
@@ -43718,6 +43718,7 @@ exports.__esModule = true;
43718
43718
  exports.createJobsForComponent = void 0;
43719
43719
  var lodash_1 = __nccwpck_require__(3255);
43720
43720
  var build_1 = __nccwpck_require__(3760);
43721
+ var reporting_1 = __nccwpck_require__(3545);
43721
43722
  var context_1 = __nccwpck_require__(2041);
43722
43723
  var deploy_1 = __nccwpck_require__(223);
43723
43724
  var getCommitInfo_1 = __nccwpck_require__(5923);
@@ -43745,8 +43746,9 @@ var createRawJobs = function (context) {
43745
43746
  }
43746
43747
  var buildJobs = build_1.BUILD_TYPES[context.componentConfig.build.type].jobs(context);
43747
43748
  var deployJobs = deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context);
43749
+ var reportingJobs = (0, reporting_1.createReportingJobs)(context);
43748
43750
  var customJobs = getCustomJobs(context);
43749
- return __spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(customJobs), false);
43751
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(reportingJobs), false), __read(customJobs), false);
43750
43752
  };
43751
43753
  var createJobsForComponent = function (config, componentName, env, trigger) {
43752
43754
  return __awaiter(void 0, void 0, void 0, function () {
@@ -44793,6 +44795,61 @@ exports.mergeWithMergingArrays = mergeWithMergingArrays;
44793
44795
 
44794
44796
  /***/ }),
44795
44797
 
44798
+ /***/ 3545:
44799
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
44800
+
44801
+ "use strict";
44802
+
44803
+
44804
+ exports.__esModule = true;
44805
+ exports.createReportingJobs = void 0;
44806
+ var base_1 = __nccwpck_require__(9177);
44807
+ var utils_1 = __nccwpck_require__(7461);
44808
+ var STAGE = "verify";
44809
+ var SBOM_GENERATE_JOB_NAME = "🧾 sbom";
44810
+ var SBOM_FILE = "__sbom.json";
44811
+ var createSbomGenerateJob = function (context) {
44812
+ var _a, _b, _c, _d, _e;
44813
+ var buildConfig = context.componentConfig.build;
44814
+ var defaultImage = "aquasec/trivy:0.38.3";
44815
+ 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)];
44816
+ 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;
44817
+ 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;
44818
+ return {
44819
+ name: SBOM_GENERATE_JOB_NAME,
44820
+ stage: STAGE,
44821
+ needs: context.componentConfig.deploy !== false ? [base_1.DEPLOY_JOB_NAME] : [],
44822
+ envMode: "jobPerEnv",
44823
+ variables: {},
44824
+ cache: undefined,
44825
+ image: image,
44826
+ script: script,
44827
+ allow_failure: true,
44828
+ artifacts: {
44829
+ paths: [SBOM_FILE]
44830
+ }
44831
+ };
44832
+ };
44833
+ var createSbomUploadJob = function (context) {
44834
+ return {
44835
+ name: "🧾 sbom upload",
44836
+ stage: STAGE,
44837
+ needs: [SBOM_GENERATE_JOB_NAME],
44838
+ envMode: "jobPerEnv",
44839
+ variables: {},
44840
+ cache: undefined,
44841
+ image: "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
44842
+ script: ["/dtrackuploader https://dep.panter.dev/ \"$DT_KEY\" upload \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.componentName, "\" \"").concat(context.environment.shortName, "\" \"").concat(SBOM_FILE, "\" vex.json")],
44843
+ allow_failure: true
44844
+ };
44845
+ };
44846
+ var createReportingJobs = function (context) {
44847
+ return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false ? [] : [createSbomGenerateJob(context), createSbomUploadJob(context)];
44848
+ };
44849
+ exports.createReportingJobs = createReportingJobs;
44850
+
44851
+ /***/ }),
44852
+
44796
44853
  /***/ 9904:
44797
44854
  /***/ ((module) => {
44798
44855
 
@@ -4654,7 +4654,7 @@ var cluster_1 = __nccwpck_require__(66894);
4654
4654
  var gitlab_1 = __nccwpck_require__(79818);
4655
4655
  var ensureNamespace_1 = __importDefault(__nccwpck_require__(99489));
4656
4656
  var setupKubernetes = function (instance, context) { return __awaiter(void 0, void 0, void 0, function () {
4657
- var deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, tokenName, KUBE_CA_PEM, KUBE_TOKEN, vars;
4657
+ var deployConfig, fullName, namespace, serviceAccountName, KUBE_URL, e_1, secretName, KUBE_CA_PEM, KUBE_TOKEN, vars, missing;
4658
4658
  return __generator(this, function (_a) {
4659
4659
  switch (_a.label) {
4660
4660
  case 0:
@@ -4706,13 +4706,16 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
4706
4706
  case 11:
4707
4707
  // upsert role in the ns
4708
4708
  _a.sent();
4709
- return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get serviceaccount --namespace ".concat(namespace, " ").concat(serviceAccountName, " -o jsonpath='{.secrets[0].name}'")).then(function (c) { return c.stdout.trim(); })];
4709
+ secretName = "".concat(serviceAccountName, "-secret");
4710
+ // create token for the service account
4711
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("\nkubectl apply -f - <<EOF\napiVersion: v1\nkind: Secret\nmetadata:\n name: ".concat(secretName, "\n namespace: ").concat(namespace, "\n annotations:\n kubernetes.io/service-account.name: ").concat(serviceAccountName, "\ntype: kubernetes.io/service-account-token\nEOF\n "))];
4710
4712
  case 12:
4711
- tokenName = _a.sent();
4712
- return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(tokenName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['ca\\.crt']}\"")).then(function (c) { return c.stdout.trim(); })];
4713
+ // create token for the service account
4714
+ _a.sent();
4715
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['ca\\.crt']}\"")).then(function (c) { return c.stdout.trim(); })];
4713
4716
  case 13:
4714
4717
  KUBE_CA_PEM = _a.sent();
4715
- return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(tokenName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['token']}\" | base64 --decode")).then(function (c) { return c.stdout.trim(); })];
4718
+ return [4 /*yield*/, (0, child_process_promise_1.exec)("kubectl get secret ".concat(secretName, " --namespace ").concat(namespace, " -o jsonpath=\"{['data']['token']}\" | base64 --decode")).then(function (c) { return c.stdout.trim(); })];
4716
4719
  case 14:
4717
4720
  KUBE_TOKEN = _a.sent();
4718
4721
  vars = {
@@ -4720,6 +4723,14 @@ var setupKubernetes = function (instance, context) { return __awaiter(void 0, vo
4720
4723
  KUBE_CA_PEM: KUBE_CA_PEM,
4721
4724
  KUBE_URL: KUBE_URL
4722
4725
  };
4726
+ missing = Object.entries(vars).filter(function (e) { return !e[1]; });
4727
+ if (missing.length > 0) {
4728
+ throw new Error("could not setup credentials. Missing vars: " +
4729
+ missing.map(function (m) { return m[0]; }).join(", ") +
4730
+ ". Check whether your local kubectl is still working for '" +
4731
+ fullName +
4732
+ "'");
4733
+ }
4723
4734
  instance.log("service accounts created / updated!");
4724
4735
  instance.log("");
4725
4736
  instance.log("pusing secrets to gitlab...");
@@ -351503,7 +351514,7 @@ exports.readConfigSync = readConfigSync;
351503
351514
 
351504
351515
  exports.__esModule = true;
351505
351516
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
351506
- exports.PIPELINE_IMAGE_TAG = "main-8aca4de2" || 0;
351517
+ exports.PIPELINE_IMAGE_TAG = "main-91b2d412" || 0;
351507
351518
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
351508
351519
 
351509
351520
  /***/ }),
@@ -355010,6 +355021,7 @@ exports.__esModule = true;
355010
355021
  exports.createJobsForComponent = void 0;
355011
355022
  var lodash_1 = __nccwpck_require__(23255);
355012
355023
  var build_1 = __nccwpck_require__(73760);
355024
+ var reporting_1 = __nccwpck_require__(43545);
355013
355025
  var context_1 = __nccwpck_require__(22041);
355014
355026
  var deploy_1 = __nccwpck_require__(90223);
355015
355027
  var getCommitInfo_1 = __nccwpck_require__(5923);
@@ -355037,8 +355049,9 @@ var createRawJobs = function (context) {
355037
355049
  }
355038
355050
  var buildJobs = build_1.BUILD_TYPES[context.componentConfig.build.type].jobs(context);
355039
355051
  var deployJobs = deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context);
355052
+ var reportingJobs = (0, reporting_1.createReportingJobs)(context);
355040
355053
  var customJobs = getCustomJobs(context);
355041
- return __spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(customJobs), false);
355054
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(buildJobs), false), __read(deployJobs), false), __read(reportingJobs), false), __read(customJobs), false);
355042
355055
  };
355043
355056
  var createJobsForComponent = function (config, componentName, env, trigger) {
355044
355057
  return __awaiter(void 0, void 0, void 0, function () {
@@ -356085,6 +356098,61 @@ exports.mergeWithMergingArrays = mergeWithMergingArrays;
356085
356098
 
356086
356099
  /***/ }),
356087
356100
 
356101
+ /***/ 43545:
356102
+ /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
356103
+
356104
+ "use strict";
356105
+
356106
+
356107
+ exports.__esModule = true;
356108
+ exports.createReportingJobs = void 0;
356109
+ var base_1 = __nccwpck_require__(89177);
356110
+ var utils_1 = __nccwpck_require__(37461);
356111
+ var STAGE = "verify";
356112
+ var SBOM_GENERATE_JOB_NAME = "🧾 sbom";
356113
+ var SBOM_FILE = "__sbom.json";
356114
+ var createSbomGenerateJob = function (context) {
356115
+ var _a, _b, _c, _d, _e;
356116
+ var buildConfig = context.componentConfig.build;
356117
+ var defaultImage = "aquasec/trivy:0.38.3";
356118
+ 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)];
356119
+ 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;
356120
+ 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;
356121
+ return {
356122
+ name: SBOM_GENERATE_JOB_NAME,
356123
+ stage: STAGE,
356124
+ needs: context.componentConfig.deploy !== false ? [base_1.DEPLOY_JOB_NAME] : [],
356125
+ envMode: "jobPerEnv",
356126
+ variables: {},
356127
+ cache: undefined,
356128
+ image: image,
356129
+ script: script,
356130
+ allow_failure: true,
356131
+ artifacts: {
356132
+ paths: [SBOM_FILE]
356133
+ }
356134
+ };
356135
+ };
356136
+ var createSbomUploadJob = function (context) {
356137
+ return {
356138
+ name: "🧾 sbom upload",
356139
+ stage: STAGE,
356140
+ needs: [SBOM_GENERATE_JOB_NAME],
356141
+ envMode: "jobPerEnv",
356142
+ variables: {},
356143
+ cache: undefined,
356144
+ image: "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
356145
+ script: ["/dtrackuploader https://dep.panter.dev/ \"$DT_KEY\" upload \"".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName, "/").concat(context.componentName, "\" \"").concat(context.environment.shortName, "\" \"").concat(SBOM_FILE, "\" vex.json")],
356146
+ allow_failure: true
356147
+ };
356148
+ };
356149
+ var createReportingJobs = function (context) {
356150
+ return context.componentConfig.build.type === "custom" && context.componentConfig.build.sbom === false ? [] : [createSbomGenerateJob(context), createSbomUploadJob(context)];
356151
+ };
356152
+ exports.createReportingJobs = createReportingJobs;
356153
+
356154
+ /***/ }),
356155
+
356088
356156
  /***/ 15058:
356089
356157
  /***/ ((module) => {
356090
356158