@catladder/cli 0.0.0-main-7c0e2c74 → 0.0.0-main-4a226a37

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"}
@@ -38903,6 +38903,7 @@ var createCustomBuildJobs = function (context) {
38903
38903
  var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
38904
38904
  image: buildConfig.jobImage,
38905
38905
  variables: __assign({}, RUNNER_BUILD_VARIABLES),
38906
+ services: buildConfig.jobServices,
38906
38907
  script: __spreadArray([], __read((_a = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _a !== void 0 ? _a : []), false),
38907
38908
  artifacts: {
38908
38909
  paths: __spreadArray([(0, path_1.join)(context.componentConfig.dir, "__build_info.json"), (0, path_1.join)(context.componentConfig.dir, "dist")], __read((_c = (_b = buildConfig.artifactsPaths) === null || _b === void 0 ? void 0 : _b.map(function (path) {
@@ -40066,7 +40067,7 @@ exports.readConfigSync = readConfigSync;
40066
40067
 
40067
40068
  exports.__esModule = true;
40068
40069
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
40069
- exports.PIPELINE_IMAGE_TAG = "main-7c0e2c74" || 0;
40070
+ exports.PIPELINE_IMAGE_TAG = "main-4a226a37" || 0;
40070
40071
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
40071
40072
 
40072
40073
  /***/ }),
@@ -41541,6 +41542,10 @@ var database_1 = __nccwpck_require__(1384);
41541
41542
 
41542
41543
  var gitlab_1 = __nccwpck_require__(4997);
41543
41544
 
41545
+ var setExtraVarsScripts = function (deployConfig) {
41546
+ return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
41547
+ };
41548
+
41544
41549
  var createGoogleCloudRunDeployJobs = function (context) {
41545
41550
  var _a;
41546
41551
 
@@ -41559,9 +41564,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
41559
41564
  var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
41560
41565
  var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
41561
41566
  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
-
41567
+ 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
41568
  var allEnvVars = (0, lodash_1.omit)(context.environment.envVars, _1.GCLOUD_DEPLOY_CREDENTIALS_KEY);
41566
41569
  var labelsString = Object.entries((0, getLabels_1.getLabels)(context)).map(function (_a) {
41567
41570
  var _b = __read(_a, 2),
@@ -41575,6 +41578,35 @@ var createGoogleCloudRunDeployJobs = function (context) {
41575
41578
  var commonDeployArgs = "--image ".concat(gcloudImageName, " ").concat(commonArgs, " ").concat(cloudRunArgs, " --labels ").concat(labelsString);
41576
41579
  var serviceName = context.environment.fullName.toLowerCase();
41577
41580
 
41581
+ var getFullJobName = function (name) {
41582
+ return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
41583
+ };
41584
+
41585
+ var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {}) // filter out disabled jobs
41586
+ .filter(function (entry) {
41587
+ return Boolean(entry[1]);
41588
+ }).map(function (_a) {
41589
+ var _b = __read(_a, 2),
41590
+ name = _b[0],
41591
+ job = _b[1];
41592
+
41593
+ return {
41594
+ jobName: getFullJobName(name),
41595
+ job: job
41596
+ };
41597
+ });
41598
+ var jobsWithSchedule = jobsWithNames.filter(function (entry) {
41599
+ return entry.job.when === "schedule";
41600
+ }).map(function (_a) {
41601
+ var job = _a.job,
41602
+ jobName = _a.jobName;
41603
+ return {
41604
+ job: job,
41605
+ jobName: jobName,
41606
+ schedulerName: jobName + "-scheduler"
41607
+ };
41608
+ });
41609
+
41578
41610
  var getServiceDeployScript = function (service) {
41579
41611
  var _a;
41580
41612
 
@@ -41583,7 +41615,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
41583
41615
  return "gcloud run deploy ".concat(serviceName, " ").concat(commandArg, " ").concat(commonDeployArgs, " --env-vars-file=____envvars.yaml --allow-unauthenticated");
41584
41616
  };
41585
41617
 
41586
- var getJobCreateScripts = function (jobName, job) {
41618
+ var getJobCreateScriptsForJob = function (jobName, job) {
41587
41619
  // due to some oversight from google, jobs create does not accept `--env-vars-file` 🤦
41588
41620
  // lucky, update on the other hand accepts it... so let's just imediatly update it
41589
41621
  // also we cannot upsert a job, so we have to create it and catch the error and then update
@@ -41591,62 +41623,57 @@ var createGoogleCloudRunDeployJobs = function (context) {
41591
41623
  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
41624
  };
41593
41625
 
41594
- var getJobRunScript = function (jobName) {
41595
- return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
41626
+ var getJobCreateScripts = function () {
41627
+ return jobsWithNames.map(function (_a) {
41628
+ var job = _a.job,
41629
+ jobName = _a.jobName;
41630
+ return getJobCreateScriptsForJob(jobName, job);
41631
+ }).flat();
41596
41632
  };
41597
41633
 
41598
- var getFullJobName = function (name) {
41599
- return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
41634
+ var getJobRunScriptForJob = function (jobName) {
41635
+ return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
41600
41636
  };
41601
41637
 
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];
41638
+ var getJobRunScripts = function (when) {
41639
+ return jobsWithNames.filter(function (_a) {
41640
+ var job = _a.job;
41641
+ return job.when === when;
41642
+ }).map(function (_a) {
41643
+ var jobName = _a.jobName;
41644
+ return getJobRunScriptForJob(jobName);
41645
+ });
41646
+ };
41628
41647
 
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];
41648
+ var getCreateScheduleScripts = function () {
41649
+ return jobsWithSchedule.map(function (_a) {
41650
+ var job = _a.job,
41651
+ jobName = _a.jobName,
41652
+ schedulerName = _a.schedulerName;
41653
+ 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");
41654
+ return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs create ".concat(commonArgs)])), false), ["gcloud scheduler jobs update ".concat(commonArgs)], false);
41655
+ }).flat();
41656
+ };
41633
41657
 
41634
- return job.when === "postDeploy";
41635
- }).map(function (_a) {
41636
- var _b = __read(_a, 1),
41637
- name = _b[0];
41658
+ var getDeleteSchedulesScripts = function () {
41659
+ return jobsWithSchedule.map(function (_a) {
41660
+ var schedulerName = _a.schedulerName;
41661
+ return __spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs delete ".concat(schedulerName, " --project=").concat(deployConfig.projectId, " --location ").concat(deployConfig.region)])), false);
41662
+ }).flat();
41663
+ };
41638
41664
 
41639
- return getJobRunScript(name);
41640
- })), false), ["docker image rm ".concat(gcloudImageName)], false);
41665
+ var getDeleteJobsScripts = function () {
41666
+ return jobsWithNames.map(function (_a) {
41667
+ var jobName = _a.jobName;
41668
+ return "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgs);
41669
+ });
41670
+ };
41641
41671
 
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];
41672
+ 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
41673
+ : []), 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
41674
 
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);
41675
+ 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
41676
 
41649
- var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
41650
41677
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
41651
41678
  artifacts: {
41652
41679
  paths: ["____envvars.yaml"]
@@ -41660,13 +41687,13 @@ var createGoogleCloudRunDeployJobs = function (context) {
41660
41687
  })
41661
41688
  },
41662
41689
  image: (0, runner_1.getRunnerImage)("gcloud"),
41663
- script: __spreadArray(__spreadArray([], __read(pushImageToArtifactsRegistry), false), __read(cloudRunDeployScripts), false)
41664
- }), (0, lodash_1.merge)({}, baseStopJob, {
41690
+ script: deployScripts
41691
+ }), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
41665
41692
  image: (0, runner_1.getRunnerImage)("gcloud"),
41666
41693
  variables: {
41667
41694
  CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
41668
41695
  },
41669
- script: __spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(cloudRunStopScripts), false)
41696
+ script: stopScripts
41670
41697
  })];
41671
41698
  };
41672
41699
 
@@ -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:
@@ -349849,6 +349852,7 @@ var createCustomBuildJobs = function (context) {
349849
349852
  var appBuildJob = buildConfig.buildCommand !== null ? (0, createBuildJob_1.createBuildJob)(context, {
349850
349853
  image: buildConfig.jobImage,
349851
349854
  variables: __assign({}, RUNNER_BUILD_VARIABLES),
349855
+ services: buildConfig.jobServices,
349852
349856
  script: __spreadArray([], __read((_a = (0, utils_1.ensureArray)(buildConfig.buildCommand)) !== null && _a !== void 0 ? _a : []), false),
349853
349857
  artifacts: {
349854
349858
  paths: __spreadArray([(0, path_1.join)(context.componentConfig.dir, "__build_info.json"), (0, path_1.join)(context.componentConfig.dir, "dist")], __read((_c = (_b = buildConfig.artifactsPaths) === null || _b === void 0 ? void 0 : _b.map(function (path) {
@@ -351012,7 +351016,7 @@ exports.readConfigSync = readConfigSync;
351012
351016
 
351013
351017
  exports.__esModule = true;
351014
351018
  exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
351015
- exports.PIPELINE_IMAGE_TAG = "main-7c0e2c74" || 0;
351019
+ exports.PIPELINE_IMAGE_TAG = "main-4a226a37" || 0;
351016
351020
  exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || 0;
351017
351021
 
351018
351022
  /***/ }),
@@ -352487,6 +352491,10 @@ var database_1 = __nccwpck_require__(41384);
352487
352491
 
352488
352492
  var gitlab_1 = __nccwpck_require__(84997);
352489
352493
 
352494
+ var setExtraVarsScripts = function (deployConfig) {
352495
+ return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
352496
+ };
352497
+
352490
352498
  var createGoogleCloudRunDeployJobs = function (context) {
352491
352499
  var _a;
352492
352500
 
@@ -352505,9 +352513,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
352505
352513
  var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
352506
352514
  var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
352507
352515
  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
-
352516
+ 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
352517
  var allEnvVars = (0, lodash_1.omit)(context.environment.envVars, _1.GCLOUD_DEPLOY_CREDENTIALS_KEY);
352512
352518
  var labelsString = Object.entries((0, getLabels_1.getLabels)(context)).map(function (_a) {
352513
352519
  var _b = __read(_a, 2),
@@ -352521,6 +352527,35 @@ var createGoogleCloudRunDeployJobs = function (context) {
352521
352527
  var commonDeployArgs = "--image ".concat(gcloudImageName, " ").concat(commonArgs, " ").concat(cloudRunArgs, " --labels ").concat(labelsString);
352522
352528
  var serviceName = context.environment.fullName.toLowerCase();
352523
352529
 
352530
+ var getFullJobName = function (name) {
352531
+ return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
352532
+ };
352533
+
352534
+ var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {}) // filter out disabled jobs
352535
+ .filter(function (entry) {
352536
+ return Boolean(entry[1]);
352537
+ }).map(function (_a) {
352538
+ var _b = __read(_a, 2),
352539
+ name = _b[0],
352540
+ job = _b[1];
352541
+
352542
+ return {
352543
+ jobName: getFullJobName(name),
352544
+ job: job
352545
+ };
352546
+ });
352547
+ var jobsWithSchedule = jobsWithNames.filter(function (entry) {
352548
+ return entry.job.when === "schedule";
352549
+ }).map(function (_a) {
352550
+ var job = _a.job,
352551
+ jobName = _a.jobName;
352552
+ return {
352553
+ job: job,
352554
+ jobName: jobName,
352555
+ schedulerName: jobName + "-scheduler"
352556
+ };
352557
+ });
352558
+
352524
352559
  var getServiceDeployScript = function (service) {
352525
352560
  var _a;
352526
352561
 
@@ -352529,7 +352564,7 @@ var createGoogleCloudRunDeployJobs = function (context) {
352529
352564
  return "gcloud run deploy ".concat(serviceName, " ").concat(commandArg, " ").concat(commonDeployArgs, " --env-vars-file=____envvars.yaml --allow-unauthenticated");
352530
352565
  };
352531
352566
 
352532
- var getJobCreateScripts = function (jobName, job) {
352567
+ var getJobCreateScriptsForJob = function (jobName, job) {
352533
352568
  // due to some oversight from google, jobs create does not accept `--env-vars-file` 🤦
352534
352569
  // lucky, update on the other hand accepts it... so let's just imediatly update it
352535
352570
  // also we cannot upsert a job, so we have to create it and catch the error and then update
@@ -352537,62 +352572,57 @@ var createGoogleCloudRunDeployJobs = function (context) {
352537
352572
  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
352573
  };
352539
352574
 
352540
- var getJobRunScript = function (jobName) {
352541
- return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
352575
+ var getJobCreateScripts = function () {
352576
+ return jobsWithNames.map(function (_a) {
352577
+ var job = _a.job,
352578
+ jobName = _a.jobName;
352579
+ return getJobCreateScriptsForJob(jobName, job);
352580
+ }).flat();
352542
352581
  };
352543
352582
 
352544
- var getFullJobName = function (name) {
352545
- return context.environment.fullName.toLowerCase() + "-" + name.toLowerCase();
352583
+ var getJobRunScriptForJob = function (jobName) {
352584
+ return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgs);
352546
352585
  };
352547
352586
 
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];
352587
+ var getJobRunScripts = function (when) {
352588
+ return jobsWithNames.filter(function (_a) {
352589
+ var job = _a.job;
352590
+ return job.when === when;
352591
+ }).map(function (_a) {
352592
+ var jobName = _a.jobName;
352593
+ return getJobRunScriptForJob(jobName);
352594
+ });
352595
+ };
352574
352596
 
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];
352597
+ var getCreateScheduleScripts = function () {
352598
+ return jobsWithSchedule.map(function (_a) {
352599
+ var job = _a.job,
352600
+ jobName = _a.jobName,
352601
+ schedulerName = _a.schedulerName;
352602
+ 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");
352603
+ return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs create ".concat(commonArgs)])), false), ["gcloud scheduler jobs update ".concat(commonArgs)], false);
352604
+ }).flat();
352605
+ };
352579
352606
 
352580
- return job.when === "postDeploy";
352581
- }).map(function (_a) {
352582
- var _b = __read(_a, 1),
352583
- name = _b[0];
352607
+ var getDeleteSchedulesScripts = function () {
352608
+ return jobsWithSchedule.map(function (_a) {
352609
+ var schedulerName = _a.schedulerName;
352610
+ return __spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs delete ".concat(schedulerName, " --project=").concat(deployConfig.projectId, " --location ").concat(deployConfig.region)])), false);
352611
+ }).flat();
352612
+ };
352584
352613
 
352585
- return getJobRunScript(name);
352586
- })), false), ["docker image rm ".concat(gcloudImageName)], false);
352614
+ var getDeleteJobsScripts = function () {
352615
+ return jobsWithNames.map(function (_a) {
352616
+ var jobName = _a.jobName;
352617
+ return "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgs);
352618
+ });
352619
+ };
352587
352620
 
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];
352621
+ 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
352622
+ : []), 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
352623
 
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);
352624
+ 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
352625
 
352595
- var baseStopJob = (0, base_1.getBaseDeploymentStopJob)(context);
352596
352626
  return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
352597
352627
  artifacts: {
352598
352628
  paths: ["____envvars.yaml"]
@@ -352606,13 +352636,13 @@ var createGoogleCloudRunDeployJobs = function (context) {
352606
352636
  })
352607
352637
  },
352608
352638
  image: (0, runner_1.getRunnerImage)("gcloud"),
352609
- script: __spreadArray(__spreadArray([], __read(pushImageToArtifactsRegistry), false), __read(cloudRunDeployScripts), false)
352610
- }), (0, lodash_1.merge)({}, baseStopJob, {
352639
+ script: deployScripts
352640
+ }), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
352611
352641
  image: (0, runner_1.getRunnerImage)("gcloud"),
352612
352642
  variables: {
352613
352643
  CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
352614
352644
  },
352615
- script: __spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(cloudRunStopScripts), false)
352645
+ script: stopScripts
352616
352646
  })];
352617
352647
  };
352618
352648