@catladder/cli 0.0.0-main-7c0e2c74 → 0.0.0-main-742dfaeb

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.
@@ -66,7 +66,9 @@ var setupCloudRun = function (instance, context) { return __awaiter(void 0, void
66
66
  instance.log("enable required servies...");
67
67
  return [4 /*yield*/, (0, enableServices_1.enableGCloudServices)(__spreadArray([
68
68
  "run.googleapis.com",
69
- "artifactregistry.googleapis.com"
69
+ "artifactregistry.googleapis.com",
70
+ "cloudscheduler.googleapis.com",
71
+ "cloudresourcemanager.googleapis.com"
70
72
  ], (config.cloudSql
71
73
  ? ["sqladmin.googleapis.com", "sql-component.googleapis.com"]
72
74
  : []), true), config)];
@@ -86,7 +88,8 @@ var setupCloudRun = function (instance, context) { return __awaiter(void 0, void
86
88
  roles: __spreadArray([
87
89
  "roles/artifactregistry.repoAdmin",
88
90
  "roles/run.admin",
89
- "roles/iam.serviceAccountUser"
91
+ "roles/iam.serviceAccountUser",
92
+ "roles/cloudscheduler.admin"
90
93
  ], (config.cloudSql ? ["roles/cloudsql.admin"] : []), true)
91
94
  }, pipeline_1.GCLOUD_DEPLOY_CREDENTIALS_KEY)];
92
95
  case 3:
@@ -1 +1 @@
1
- {"version":3,"file":"setupCloudRun.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupCloudRun.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAI6B;AAG7B,6EAAwF;AACxF,kGAAiG;AACjG,uEAA4E;AAC5E,yEAAgG;AAChG,sDAAiE;AAE1D,IAAM,aAAa,GAAG,UAC3B,QAAyB,EACzB,OAAgB;;;;;;gBAEhB,IAAI,CAAC,IAAA,yBAAc,EAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE;oBACtE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACnE;gBAEK,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;gBAE9C,kBAAkB;gBAElB,QAAQ,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,qBAAM,IAAA,qCAAoB;wBAEtB,oBAAoB;wBACpB,iCAAiC;uBAC9B,CAAC,MAAM,CAAC,QAAQ;wBACjB,CAAC,CAAC,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;wBAC7D,CAAC,CAAC,EAAE,CAAC,SAET,MAAM,CACP,EAAA;;gBATD,SASC,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC7C,qBAAM,IAAA,iDAA6B,EAAC,MAAM,CAAC,EAAA;;gBAA3C,SAA2C,CAAC;gBAE5C,QAAQ,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBACjD,qBAAM,IAAA,yDAAuC,EAC3C,QAAQ,EACR,OAAO,EACP;wBACE,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,WAAW,EAAE,yBAAyB;wBACtC,WAAW,EAAE,8CAA8C;wBAC3D,IAAI,EAAE,MAAM;wBACZ,yLAAyL;wBACzL,KAAK;4BACH,kCAAkC;4BAClC,iBAAiB;4BACjB,8BAA8B;2BAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OACrD;qBACF,EACD,wCAA6B,CAC9B,EAAA;;gBAjBD,SAiBC,CAAC;gBAEF,+CAA+C;gBAC/C,qDAAqD;gBACrD,qEAAqE;gBACrE,iEAAiE;gBACjE,QAAQ,CAAC,GAAG,CACV,gEAAgE,CACjE,CAAC;gBACa,qBAAM,IAAA,iDAAuB,EAAC,MAAM,CAAC,EAAA;;gBAA9C,MAAM,GAAG,SAAqC;gBACpD,QAAQ,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;gBAEzC,qBAAM,IAAA,2BAAkB,EACtB,QAAQ;wBAEN,GAAC,2CAAgC,IAAG,MAAM;6BAE5C,OAAO,CAAC,WAAW,CAAC,SAAS,EAC7B,OAAO,CAAC,aAAa,EACrB,KAAK,EAAE,SAAS;oBAChB,KAAK,CAAC,SAAS;qBAChB,EAAA;;gBATD,SASC,CAAC;;;;KACH,CAAC;AAlEW,QAAA,aAAa,iBAkExB"}
1
+ {"version":3,"file":"setupCloudRun.js","sourceRoot":"","sources":["../../../../../../src/apps/cli/commands/project/setup/setupCloudRun.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAI6B;AAG7B,6EAAwF;AACxF,kGAAiG;AACjG,uEAA4E;AAC5E,yEAAgG;AAChG,sDAAiE;AAE1D,IAAM,aAAa,GAAG,UAC3B,QAAyB,EACzB,OAAgB;;;;;;gBAEhB,IAAI,CAAC,IAAA,yBAAc,EAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE;oBACtE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;iBACnE;gBAEK,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;gBAE9C,kBAAkB;gBAElB,QAAQ,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,qBAAM,IAAA,qCAAoB;wBAEtB,oBAAoB;wBACpB,iCAAiC;wBACjC,+BAA+B;wBAC/B,qCAAqC;uBAClC,CAAC,MAAM,CAAC,QAAQ;wBACjB,CAAC,CAAC,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;wBAC7D,CAAC,CAAC,EAAE,CAAC,SAET,MAAM,CACP,EAAA;;gBAXD,SAWC,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC7C,qBAAM,IAAA,iDAA6B,EAAC,MAAM,CAAC,EAAA;;gBAA3C,SAA2C,CAAC;gBAE5C,QAAQ,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBACjD,qBAAM,IAAA,yDAAuC,EAC3C,QAAQ,EACR,OAAO,EACP;wBACE,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,WAAW,EAAE,yBAAyB;wBACtC,WAAW,EAAE,8CAA8C;wBAC3D,IAAI,EAAE,MAAM;wBACZ,yLAAyL;wBACzL,KAAK;4BACH,kCAAkC;4BAClC,iBAAiB;4BACjB,8BAA8B;4BAC9B,4BAA4B;2BACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OACrD;qBACF,EACD,wCAA6B,CAC9B,EAAA;;gBAlBD,SAkBC,CAAC;gBAEF,+CAA+C;gBAC/C,qDAAqD;gBACrD,qEAAqE;gBACrE,iEAAiE;gBACjE,QAAQ,CAAC,GAAG,CACV,gEAAgE,CACjE,CAAC;gBACa,qBAAM,IAAA,iDAAuB,EAAC,MAAM,CAAC,EAAA;;gBAA9C,MAAM,GAAG,SAAqC;gBACpD,QAAQ,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;gBAEzC,qBAAM,IAAA,2BAAkB,EACtB,QAAQ;wBAEN,GAAC,2CAAgC,IAAG,MAAM;6BAE5C,OAAO,CAAC,WAAW,CAAC,SAAS,EAC7B,OAAO,CAAC,aAAa,EACrB,KAAK,EAAE,SAAS;oBAChB,KAAK,CAAC,SAAS;qBAChB,EAAA;;gBATD,SASC,CAAC;;;;KACH,CAAC;AArEW,QAAA,aAAa,iBAqExB"}
@@ -40066,7 +40066,7 @@ exports.readConfigSync = readConfigSync;
40066
40066
 
40067
40067
  exports.__esModule = true;
40068
40068
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40069
- exports.PIPELINE_IMAGE_TAG = "main-7c0e2c74" || 0;
40069
+ exports.PIPELINE_IMAGE_TAG = "main-742dfaeb" || 0;
40070
40070
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40071
40071
 
40072
40072
  /***/ }),
@@ -41541,6 +41541,10 @@ var database_1 = __nccwpck_require__(1384);
41541
41541
 
41542
41542
  var gitlab_1 = __nccwpck_require__(4997);
41543
41543
 
41544
+ var setExtraVarsScripts = function (deployConfig) {
41545
+ return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
41546
+ };
41547
+
41544
41548
  var createGoogleCloudRunDeployJobs = function (context) {
41545
41549
  var _a;
41546
41550
 
@@ -41559,9 +41563,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
41559
41563
  var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
41560
41564
  var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
41561
41565
  var gcloudImageName = "".concat(dockerUrl, "/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG");
41562
-
41563
- var pushImageToArtifactsRegistry = __spreadArray(__spreadArray([docker_1.gitlabDockerLogin], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), ["gcloud auth configure-docker ".concat(deployConfig.region, "-docker.pkg.dev"), "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG ".concat(gcloudImageName), "docker push ".concat(gcloudImageName)], false);
41564
-
41566
+ var pushImageToArtifactsRegistry = [docker_1.gitlabDockerLogin, "gcloud auth configure-docker ".concat(deployConfig.region, "-docker.pkg.dev"), "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG ".concat(gcloudImageName), "docker push ".concat(gcloudImageName)];
41565
41567
  var allEnvVars = (0, lodash_1.omit)(context.environment.envVars, _1.GCLOUD_DEPLOY_CREDENTIALS_KEY);
41566
41568
  var labelsString = Object.entries((0, getLabels_1.getLabels)(context)).map(function (_a) {
41567
41569
  var _b = __read(_a, 2),
@@ -41575,6 +41577,35 @@ var createGoogleCloudRunDeployJobs = function (context) {
41575
41577
  var commonDeployArgs = "--image ".concat(gcloudImageName, " ").concat(commonArgs, " ").concat(cloudRunArgs, " --labels ").concat(labelsString);
41576
41578
  var serviceName = context.environment.fullName.toLowerCase();
41577
41579
 
41580
+ var getFullJobName = function (name) {
41581
+ return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
41582
+ };
41583
+
41584
+ var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {}) // filter out disabled jobs
41585
+ .filter(function (entry) {
41586
+ return Boolean(entry[1]);
41587
+ }).map(function (_a) {
41588
+ var _b = __read(_a, 2),
41589
+ name = _b[0],
41590
+ job = _b[1];
41591
+
41592
+ return {
41593
+ jobName: getFullJobName(name),
41594
+ job: job
41595
+ };
41596
+ });
41597
+ var jobsWithSchedule = jobsWithNames.filter(function (entry) {
41598
+ return entry.job.when === "schedule";
41599
+ }).map(function (_a) {
41600
+ var job = _a.job,
41601
+ jobName = _a.jobName;
41602
+ return {
41603
+ job: job,
41604
+ jobName: jobName,
41605
+ schedulerName: jobName + "-scheduler"
41606
+ };
41607
+ });
41608
+
41578
41609
  var getServiceDeployScript = function (service) {
41579
41610
  var _a;
41580
41611
 
@@ -41583,7 +41614,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
41583
41614
  return "gcloud run deploy ".concat(serviceName, " ").concat(commandArg, " ").concat(commonDeployArgs, " --env-vars-file=____envvars.yaml --allow-unauthenticated");
41584
41615
  };
41585
41616
 
41586
- var getJobCreateScripts = function (jobName, job) {
41617
+ var getJobCreateScriptsForJob = function (jobName, job) {
41587
41618
  // due to some oversight from google, jobs create does not accept `--env-vars-file` 🤦
41588
41619
  // lucky, update on the other hand accepts it... so let's just imediatly update it
41589
41620
  // also we cannot upsert a job, so we have to create it and catch the error and then update
@@ -41591,62 +41622,57 @@ var createGoogleCloudRunDeployJobs = function (context) {
41591
41622
  return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud beta run jobs create ".concat(args)])), false), ["gcloud beta run jobs update ".concat(args, " --env-vars-file=____envvars.yaml")], false);
41592
41623
  };
41593
41624
 
41594
- var getJobRunScript = function (jobName) {
41595
- return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
41625
+ var getJobCreateScripts = function () {
41626
+ return jobsWithNames.map(function (_a) {
41627
+ var job = _a.job,
41628
+ jobName = _a.jobName;
41629
+ return getJobCreateScriptsForJob(jobName, job);
41630
+ }).flat();
41596
41631
  };
41597
41632
 
41598
- var getFullJobName = function (name) {
41599
- return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
41633
+ var getJobRunScriptForJob = function (jobName) {
41634
+ return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
41600
41635
  };
41601
41636
 
41602
- var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {}) // filter out disabled jobs
41603
- .filter(function (entry) {
41604
- return Boolean(entry[1]);
41605
- }).map(function (_a) {
41606
- var _b = __read(_a, 2),
41607
- name = _b[0],
41608
- job = _b[1];
41609
-
41610
- return [getFullJobName(name), job];
41611
- });
41612
-
41613
- var cloudRunDeployScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(["echo \"$ENV_VARS\" > ____envvars.yaml"], __read(deployConfig.cloudSql ? (0, database_1.getDatabaseCreateScript)(context, deployConfig) // we create the db, so that we can also delete it afterwards
41614
- : []), false), __read(jobsWithNames.map(function (_a) {
41615
- var _b = __read(_a, 2),
41616
- name = _b[0],
41617
- job = _b[1];
41618
-
41619
- return getJobCreateScripts(name, job);
41620
- }).flat()), false), __read(jobsWithNames.filter(function (_a) {
41621
- var _b = __read(_a, 2),
41622
- job = _b[1];
41623
-
41624
- return job.when === "preDeploy";
41625
- }).map(function (_a) {
41626
- var _b = __read(_a, 1),
41627
- name = _b[0];
41637
+ var getJobRunScripts = function (when) {
41638
+ return jobsWithNames.filter(function (_a) {
41639
+ var job = _a.job;
41640
+ return job.when === when;
41641
+ }).map(function (_a) {
41642
+ var jobName = _a.jobName;
41643
+ return getJobRunScriptForJob(jobName);
41644
+ });
41645
+ };
41628
41646
 
41629
- return getJobRunScript(name);
41630
- })), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(jobsWithNames.filter(function (_a) {
41631
- var _b = __read(_a, 2),
41632
- job = _b[1];
41647
+ var getCreateScheduleScripts = function () {
41648
+ return jobsWithSchedule.map(function (_a) {
41649
+ var job = _a.job,
41650
+ jobName = _a.jobName,
41651
+ schedulerName = _a.schedulerName;
41652
+ var commonArgs = "http ".concat(schedulerName, " --project=").concat(deployConfig.projectId, " --location ").concat(deployConfig.region, " --schedule=\"").concat(job.schedule, "\" --uri=\"https://").concat(deployConfig.region, "-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/").concat(deployConfig.projectId, "/jobs/").concat(jobName, ":run\" --http-method POST --oauth-service-account-email $GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com");
41653
+ return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs create ".concat(commonArgs)])), false), ["gcloud scheduler jobs update ".concat(commonArgs)], false);
41654
+ }).flat();
41655
+ };
41633
41656
 
41634
- return job.when === "postDeploy";
41635
- }).map(function (_a) {
41636
- var _b = __read(_a, 1),
41637
- name = _b[0];
41657
+ var getDeleteSchedulesScripts = function () {
41658
+ return jobsWithSchedule.map(function (_a) {
41659
+ var schedulerName = _a.schedulerName;
41660
+ return __spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs delete ".concat(schedulerName, " --project=").concat(deployConfig.projectId, " --location ").concat(deployConfig.region)])), false);
41661
+ }).flat();
41662
+ };
41638
41663
 
41639
- return getJobRunScript(name);
41640
- })), false), ["docker image rm ".concat(gcloudImageName)], false);
41664
+ var getDeleteJobsScripts = function () {
41665
+ return jobsWithNames.map(function (_a) {
41666
+ var jobName = _a.jobName;
41667
+ return "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgs);
41668
+ });
41669
+ };
41641
41670
 
41642
- var cloudRunStopScripts = __spreadArray(__spreadArray(__spreadArray([], __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgs)] : []), false), __read(jobsWithNames.map(function (_a) {
41643
- var _b = __read(_a, 1),
41644
- name = _b[0];
41671
+ var deployScripts = __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
41672
+ : []), false), __read(getCreateScheduleScripts()), false), __read(getJobCreateScripts()), false), __read(getJobRunScripts("preDeploy")), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false);
41645
41673
 
41646
- return "gcloud beta run jobs delete ".concat(name, " ").concat(commonArgs);
41647
- })), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
41674
+ var stopScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgs)] : []), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
41648
41675
 
41649
- var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
41650
41676
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
41651
41677
  artifacts: {
41652
41678
  paths: ["____envvars.yaml"]
@@ -41660,13 +41686,13 @@ var createGoogleCloudRunDeployJobs = function (context) {
41660
41686
  })
41661
41687
  },
41662
41688
  image: (0, runner_1.getRunnerImage)("gcloud"),
41663
- script: __spreadArray(__spreadArray([], __read(pushImageToArtifactsRegistry), false), __read(cloudRunDeployScripts), false)
41664
- }), (0, lodash_1.merge)({}, baseStopJob, {
41689
+ script: deployScripts
41690
+ }), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
41665
41691
  image: (0, runner_1.getRunnerImage)("gcloud"),
41666
41692
  variables: {
41667
41693
  CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
41668
41694
  },
41669
- script: __spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(cloudRunStopScripts), false)
41695
+ script: stopScripts
41670
41696
  })];
41671
41697
  };
41672
41698
 
@@ -4250,7 +4250,9 @@ var setupCloudRun = function (instance, context) { return __awaiter(void 0, void
4250
4250
  instance.log("enable required servies...");
4251
4251
  return [4 /*yield*/, (0, enableServices_1.enableGCloudServices)(__spreadArray([
4252
4252
  "run.googleapis.com",
4253
- "artifactregistry.googleapis.com"
4253
+ "artifactregistry.googleapis.com",
4254
+ "cloudscheduler.googleapis.com",
4255
+ "cloudresourcemanager.googleapis.com"
4254
4256
  ], (config.cloudSql
4255
4257
  ? ["sqladmin.googleapis.com", "sql-component.googleapis.com"]
4256
4258
  : []), true), config)];
@@ -4270,7 +4272,8 @@ var setupCloudRun = function (instance, context) { return __awaiter(void 0, void
4270
4272
  roles: __spreadArray([
4271
4273
  "roles/artifactregistry.repoAdmin",
4272
4274
  "roles/run.admin",
4273
- "roles/iam.serviceAccountUser"
4275
+ "roles/iam.serviceAccountUser",
4276
+ "roles/cloudscheduler.admin"
4274
4277
  ], (config.cloudSql ? ["roles/cloudsql.admin"] : []), true)
4275
4278
  }, pipeline_1.GCLOUD_DEPLOY_CREDENTIALS_KEY)];
4276
4279
  case 3:
@@ -351012,7 +351015,7 @@ exports.readConfigSync = readConfigSync;
351012
351015
 
351013
351016
  exports.__esModule = true;
351014
351017
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
351015
- exports.PIPELINE_IMAGE_TAG = "main-7c0e2c74" || 0;
351018
+ exports.PIPELINE_IMAGE_TAG = "main-742dfaeb" || 0;
351016
351019
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
351017
351020
 
351018
351021
  /***/ }),
@@ -352487,6 +352490,10 @@ var database_1 = __nccwpck_require__(41384);
352487
352490
 
352488
352491
  var gitlab_1 = __nccwpck_require__(84997);
352489
352492
 
352493
+ var setExtraVarsScripts = function (deployConfig) {
352494
+ return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
352495
+ };
352496
+
352490
352497
  var createGoogleCloudRunDeployJobs = function (context) {
352491
352498
  var _a;
352492
352499
 
@@ -352505,9 +352512,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
352505
352512
  var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
352506
352513
  var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
352507
352514
  var gcloudImageName = "".concat(dockerUrl, "/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG");
352508
-
352509
- var pushImageToArtifactsRegistry = __spreadArray(__spreadArray([docker_1.gitlabDockerLogin], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), ["gcloud auth configure-docker ".concat(deployConfig.region, "-docker.pkg.dev"), "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG ".concat(gcloudImageName), "docker push ".concat(gcloudImageName)], false);
352510
-
352515
+ var pushImageToArtifactsRegistry = [docker_1.gitlabDockerLogin, "gcloud auth configure-docker ".concat(deployConfig.region, "-docker.pkg.dev"), "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG ".concat(gcloudImageName), "docker push ".concat(gcloudImageName)];
352511
352516
  var allEnvVars = (0, lodash_1.omit)(context.environment.envVars, _1.GCLOUD_DEPLOY_CREDENTIALS_KEY);
352512
352517
  var labelsString = Object.entries((0, getLabels_1.getLabels)(context)).map(function (_a) {
352513
352518
  var _b = __read(_a, 2),
@@ -352521,6 +352526,35 @@ var createGoogleCloudRunDeployJobs = function (context) {
352521
352526
  var commonDeployArgs = "--image ".concat(gcloudImageName, " ").concat(commonArgs, " ").concat(cloudRunArgs, " --labels ").concat(labelsString);
352522
352527
  var serviceName = context.environment.fullName.toLowerCase();
352523
352528
 
352529
+ var getFullJobName = function (name) {
352530
+ return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
352531
+ };
352532
+
352533
+ var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {}) // filter out disabled jobs
352534
+ .filter(function (entry) {
352535
+ return Boolean(entry[1]);
352536
+ }).map(function (_a) {
352537
+ var _b = __read(_a, 2),
352538
+ name = _b[0],
352539
+ job = _b[1];
352540
+
352541
+ return {
352542
+ jobName: getFullJobName(name),
352543
+ job: job
352544
+ };
352545
+ });
352546
+ var jobsWithSchedule = jobsWithNames.filter(function (entry) {
352547
+ return entry.job.when === "schedule";
352548
+ }).map(function (_a) {
352549
+ var job = _a.job,
352550
+ jobName = _a.jobName;
352551
+ return {
352552
+ job: job,
352553
+ jobName: jobName,
352554
+ schedulerName: jobName + "-scheduler"
352555
+ };
352556
+ });
352557
+
352524
352558
  var getServiceDeployScript = function (service) {
352525
352559
  var _a;
352526
352560
 
@@ -352529,7 +352563,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
352529
352563
  return "gcloud run deploy ".concat(serviceName, " ").concat(commandArg, " ").concat(commonDeployArgs, " --env-vars-file=____envvars.yaml --allow-unauthenticated");
352530
352564
  };
352531
352565
 
352532
- var getJobCreateScripts = function (jobName, job) {
352566
+ var getJobCreateScriptsForJob = function (jobName, job) {
352533
352567
  // due to some oversight from google, jobs create does not accept `--env-vars-file` 🤦
352534
352568
  // lucky, update on the other hand accepts it... so let's just imediatly update it
352535
352569
  // also we cannot upsert a job, so we have to create it and catch the error and then update
@@ -352537,62 +352571,57 @@ var createGoogleCloudRunDeployJobs = function (context) {
352537
352571
  return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud beta run jobs create ".concat(args)])), false), ["gcloud beta run jobs update ".concat(args, " --env-vars-file=____envvars.yaml")], false);
352538
352572
  };
352539
352573
 
352540
- var getJobRunScript = function (jobName) {
352541
- return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
352574
+ var getJobCreateScripts = function () {
352575
+ return jobsWithNames.map(function (_a) {
352576
+ var job = _a.job,
352577
+ jobName = _a.jobName;
352578
+ return getJobCreateScriptsForJob(jobName, job);
352579
+ }).flat();
352542
352580
  };
352543
352581
 
352544
- var getFullJobName = function (name) {
352545
- return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
352582
+ var getJobRunScriptForJob = function (jobName) {
352583
+ return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
352546
352584
  };
352547
352585
 
352548
- var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {}) // filter out disabled jobs
352549
- .filter(function (entry) {
352550
- return Boolean(entry[1]);
352551
- }).map(function (_a) {
352552
- var _b = __read(_a, 2),
352553
- name = _b[0],
352554
- job = _b[1];
352555
-
352556
- return [getFullJobName(name), job];
352557
- });
352558
-
352559
- var cloudRunDeployScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(["echo \"$ENV_VARS\" > ____envvars.yaml"], __read(deployConfig.cloudSql ? (0, database_1.getDatabaseCreateScript)(context, deployConfig) // we create the db, so that we can also delete it afterwards
352560
- : []), false), __read(jobsWithNames.map(function (_a) {
352561
- var _b = __read(_a, 2),
352562
- name = _b[0],
352563
- job = _b[1];
352564
-
352565
- return getJobCreateScripts(name, job);
352566
- }).flat()), false), __read(jobsWithNames.filter(function (_a) {
352567
- var _b = __read(_a, 2),
352568
- job = _b[1];
352569
-
352570
- return job.when === "preDeploy";
352571
- }).map(function (_a) {
352572
- var _b = __read(_a, 1),
352573
- name = _b[0];
352586
+ var getJobRunScripts = function (when) {
352587
+ return jobsWithNames.filter(function (_a) {
352588
+ var job = _a.job;
352589
+ return job.when === when;
352590
+ }).map(function (_a) {
352591
+ var jobName = _a.jobName;
352592
+ return getJobRunScriptForJob(jobName);
352593
+ });
352594
+ };
352574
352595
 
352575
- return getJobRunScript(name);
352576
- })), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(jobsWithNames.filter(function (_a) {
352577
- var _b = __read(_a, 2),
352578
- job = _b[1];
352596
+ var getCreateScheduleScripts = function () {
352597
+ return jobsWithSchedule.map(function (_a) {
352598
+ var job = _a.job,
352599
+ jobName = _a.jobName,
352600
+ schedulerName = _a.schedulerName;
352601
+ var commonArgs = "http ".concat(schedulerName, " --project=").concat(deployConfig.projectId, " --location ").concat(deployConfig.region, " --schedule=\"").concat(job.schedule, "\" --uri=\"https://").concat(deployConfig.region, "-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/").concat(deployConfig.projectId, "/jobs/").concat(jobName, ":run\" --http-method POST --oauth-service-account-email $GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com");
352602
+ return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs create ".concat(commonArgs)])), false), ["gcloud scheduler jobs update ".concat(commonArgs)], false);
352603
+ }).flat();
352604
+ };
352579
352605
 
352580
- return job.when === "postDeploy";
352581
- }).map(function (_a) {
352582
- var _b = __read(_a, 1),
352583
- name = _b[0];
352606
+ var getDeleteSchedulesScripts = function () {
352607
+ return jobsWithSchedule.map(function (_a) {
352608
+ var schedulerName = _a.schedulerName;
352609
+ return __spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs delete ".concat(schedulerName, " --project=").concat(deployConfig.projectId, " --location ").concat(deployConfig.region)])), false);
352610
+ }).flat();
352611
+ };
352584
352612
 
352585
- return getJobRunScript(name);
352586
- })), false), ["docker image rm ".concat(gcloudImageName)], false);
352613
+ var getDeleteJobsScripts = function () {
352614
+ return jobsWithNames.map(function (_a) {
352615
+ var jobName = _a.jobName;
352616
+ return "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgs);
352617
+ });
352618
+ };
352587
352619
 
352588
- var cloudRunStopScripts = __spreadArray(__spreadArray(__spreadArray([], __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgs)] : []), false), __read(jobsWithNames.map(function (_a) {
352589
- var _b = __read(_a, 1),
352590
- name = _b[0];
352620
+ var deployScripts = __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
352621
+ : []), false), __read(getCreateScheduleScripts()), false), __read(getJobCreateScripts()), false), __read(getJobRunScripts("preDeploy")), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false);
352591
352622
 
352592
- return "gcloud beta run jobs delete ".concat(name, " ").concat(commonArgs);
352593
- })), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
352623
+ var stopScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgs)] : []), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
352594
352624
 
352595
- var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
352596
352625
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
352597
352626
  artifacts: {
352598
352627
  paths: ["____envvars.yaml"]
@@ -352606,13 +352635,13 @@ var createGoogleCloudRunDeployJobs = function (context) {
352606
352635
  })
352607
352636
  },
352608
352637
  image: (0, runner_1.getRunnerImage)("gcloud"),
352609
- script: __spreadArray(__spreadArray([], __read(pushImageToArtifactsRegistry), false), __read(cloudRunDeployScripts), false)
352610
- }), (0, lodash_1.merge)({}, baseStopJob, {
352638
+ script: deployScripts
352639
+ }), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
352611
352640
  image: (0, runner_1.getRunnerImage)("gcloud"),
352612
352641
  variables: {
352613
352642
  CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
352614
352643
  },
352615
- script: __spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(cloudRunStopScripts), false)
352644
+ script: stopScripts
352616
352645
  })];
352617
352646
  };
352618
352647