@catladder/cli 1.167.0 → 1.168.0

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.
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCreateScheduleScripts = exports.getJobCreateScripts = exports.getJobRunScripts = exports.getDeleteJobsScripts = exports.getDeleteSchedulesScripts = void 0;
4
- const gitlab_1 = require("../../../utils/gitlab");
5
4
  const createArgsString_1 = require("../utils/createArgsString");
6
5
  const jobName_1 = require("../utils/jobName");
7
6
  const common_1 = require("./common");
8
7
  const getLabels_1 = require("../../../context/getLabels");
9
8
  const volumes_1 = require("./volumes");
10
9
  const constants_1 = require("./constants");
10
+ const utils_1 = require("../../../utils");
11
11
  const getJobRunScriptForJob = (context, jobName, wait) => {
12
12
  const commonArgs = (0, common_1.getCommonCloudRunArgs)(context);
13
13
  const commonArgsString = (0, createArgsString_1.createArgsString)(commonArgs);
@@ -49,76 +49,90 @@ const getJobRunScripts = (context, when) => {
49
49
  ["preStop", "postStop"].includes(when)));
50
50
  };
51
51
  exports.getJobRunScripts = getJobRunScripts;
52
- const getJobCreateScripts = (context) => {
53
- const jobsWithNames = getCloudRunJobsWithNames(context);
54
- return jobsWithNames
55
- .map(({ job, jobName }) => getJobCreateScriptsForJob(context, jobName, job))
56
- .flat();
57
- };
58
- exports.getJobCreateScripts = getJobCreateScripts;
59
- const getJobCreateScriptsForJob = (context, jobName, job) => {
60
- const commonDeployArgs = (0, common_1.getCommonDeployArgs)(context);
61
- // due to some oversight from google, jobs create does not yet accept `--add-volume` 🤦
62
- // lucky, update on the other hand accepts it... so let's just imediatly update it
63
- // we cannot upsert a job, so we have to create it and catch the error and then update
64
- const commandArray = Array.isArray(job.command)
65
- ? job.command
66
- : job.command.split(" ");
52
+ const getJobCreateScripts = (context) => getCloudRunJobsWithNames(context).map(({ job: { command, image, cpu, memory = "512Mi", timeout = "10m", parallelism = 1, volumes, }, jobName, }, jobIndex) => {
53
+ const commandArray = Array.isArray(command)
54
+ ? command
55
+ : command.split(" ");
56
+ const { image: commonImage, project, region, ...deployArgs } = (0, common_1.getCommonDeployArgs)(context);
67
57
  const commonDeployArgsString = (0, createArgsString_1.createArgsString)({
68
- command: '"' + commandArray.join(",") + '"',
69
- ...commonDeployArgs,
70
- labels: (0, common_1.makeLabelString)({
71
- ...(0, getLabels_1.getLabels)(context),
72
- "cloud-run-job-name": jobName.toString(),
73
- }),
74
- image: job.image || commonDeployArgs.image,
75
- cpu: job === null || job === void 0 ? void 0 : job.cpu,
76
- memory: job.memory || "512Mi",
77
- "task-timeout": job.timeout || "10m",
78
- parallelism: job.parallelism || 1,
58
+ command: `"${commandArray.join(",")}"`,
59
+ labels: `"${(0, common_1.makeLabelString)((0, getLabels_1.getLabels)(context))},cloud-run-job-name=$current_job_name"`,
60
+ image: `"${image !== null && image !== void 0 ? image : commonImage}"`,
61
+ project,
62
+ region,
63
+ cpu,
64
+ memory,
65
+ parallelism,
66
+ "task-timeout": timeout,
79
67
  "env-vars-file": constants_1.ENV_VARS_FILENAME,
80
68
  "max-retries": 0,
69
+ ...deployArgs,
81
70
  });
82
- const requiresBeta = (job === null || job === void 0 ? void 0 : job.volumes) && Object.keys(job === null || job === void 0 ? void 0 : job.volumes).length > 0;
83
- const argsString = `${jobName} ${commonDeployArgsString}`;
71
+ // due to some oversight from google, jobs create does not yet accept `--add-volume` 🤦
72
+ // lucky, update on the other hand accepts it... so let's just imediatly update it
73
+ // we cannot upsert a job, so we have to create it and catch the error and then update
74
+ const hasVolumes = Object.keys(volumes || {}).length > 0;
75
+ const needsBeta = hasVolumes ? "beta" : undefined;
76
+ const volumeArgs = hasVolumes
77
+ ? (0, createArgsString_1.createArgsString)(...(0, volumes_1.createVolumeConfig)(volumes, "job"))
78
+ : "";
84
79
  return [
85
- ...(0, gitlab_1.allowFailureInScripts)([`${(0, common_1.gcloudRunCmd)()} jobs create ${argsString}`]),
86
- `${(0, common_1.gcloudRunCmd)(requiresBeta ? "beta" : undefined)} jobs update ${argsString} ${(0, createArgsString_1.createArgsString)(...(0, volumes_1.createVolumeConfig)(job === null || job === void 0 ? void 0 : job.volumes, "job"))}`,
87
- ];
88
- };
80
+ jobIndex === 0
81
+ ? `exist_job_names="$(\n ${(0, common_1.gcloudRunCmd)()} jobs list --filter='metadata.name ~ ${context.env}.*${context.name}' --format='value(name)' --limit=999 --project='${project}' --region='${region}'\n)"`
82
+ : null,
83
+ `current_job_name="${jobName}"`,
84
+ 'if grep "$current_job_name" <<<"$exist_job_names" >/dev/null; then',
85
+ ` ${(0, common_1.gcloudRunCmd)(needsBeta)} jobs update "$current_job_name" ${commonDeployArgsString} ${volumeArgs}`,
86
+ "else",
87
+ ` ${(0, common_1.gcloudRunCmd)()} jobs create "$current_job_name" ${commonDeployArgsString}`,
88
+ "fi",
89
+ ]
90
+ .filter(utils_1.notNil)
91
+ .join("\n");
92
+ });
93
+ exports.getJobCreateScripts = getJobCreateScripts;
89
94
  const getCreateScheduleScripts = (context) => {
90
95
  const jobsWithSchedule = getCloudRunJobsWithSchedule(context);
91
- const deployConfig = (0, common_1.getCloudRunDeployConfig)(context);
92
- return jobsWithSchedule
93
- .map(({ job, jobName, schedulerName }) => {
94
- var _a;
96
+ const { region: location, projectId: project } = (0, common_1.getCloudRunDeployConfig)(context);
97
+ const uriBase = `https://${location}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${project}/jobs`;
98
+ const gcloudArgs = {
99
+ project,
100
+ location,
101
+ uri: `"$current_job_uri"`,
102
+ "http-method": "POST",
103
+ "oauth-service-account-email": `"$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com"`,
104
+ };
105
+ return jobsWithSchedule.map(({ job: { maxRetryAttempts, schedule }, jobName, schedulerName }, jobIndex) => {
95
106
  const argsString = (0, createArgsString_1.createArgsString)({
96
- project: deployConfig.projectId,
97
- location: deployConfig.region,
98
- schedule: `"${job.schedule}"`,
99
- "max-retry-attempts": (_a = job.maxRetryAttempts) !== null && _a !== void 0 ? _a : 0,
100
- uri: `"https://${deployConfig.region}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${deployConfig.projectId}/jobs/${jobName}:run"`,
101
- "http-method": "POST",
102
- "oauth-service-account-email": "$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com",
107
+ ...gcloudArgs,
108
+ schedule: `"${schedule}"`,
109
+ "max-retry-attempts": maxRetryAttempts !== null && maxRetryAttempts !== void 0 ? maxRetryAttempts : 0,
103
110
  });
104
- const commonArgs = `http ${schedulerName} ${argsString}`;
105
111
  return [
106
- ...(0, gitlab_1.allowFailureInScripts)([
107
- `${(0, common_1.gcloudSchedulerCmd)()} jobs create ${commonArgs}`,
108
- ]),
109
- `${(0, common_1.gcloudSchedulerCmd)()} jobs update ${commonArgs}`,
110
- ];
111
- })
112
- .flat();
112
+ jobIndex === 0
113
+ ? `exist_scheduler_names="$(\n ${(0, common_1.gcloudSchedulerCmd)()} jobs list --filter='httpTarget.uri ~ ${context.env}.*${context.name}' --format='value(name)' --limit=999 --location='${location}' --project='${project}'\n)"`
114
+ : null,
115
+ `current_job_uri="${uriBase}/${jobName}:run"`,
116
+ `current_scheduler_name="${schedulerName}"`,
117
+ `if grep "$current_scheduler_name" <<<"$exist_scheduler_names" >/dev/null; then`,
118
+ ` ${(0, common_1.gcloudSchedulerCmd)()} jobs update http "$current_scheduler_name" ${argsString}`,
119
+ `else`,
120
+ ` ${(0, common_1.gcloudSchedulerCmd)()} jobs create http "$current_scheduler_name" ${argsString}`,
121
+ `fi`,
122
+ ]
123
+ .filter(utils_1.notNil)
124
+ .join("\n");
125
+ });
113
126
  };
114
127
  exports.getCreateScheduleScripts = getCreateScheduleScripts;
115
128
  const getCloudRunJobsWithSchedule = (context) => {
116
129
  const jobsWithNames = getCloudRunJobsWithNames(context);
117
130
  return jobsWithNames
118
131
  .filter((entry) => entry.job.when === "schedule")
119
- .map(({ job, jobName }) => ({
132
+ .map(({ job, jobName, jobKey }) => ({
120
133
  job,
121
134
  jobName,
135
+ jobKey,
122
136
  schedulerName: jobName.concat("-scheduler"),
123
137
  }));
124
138
  };
@@ -129,9 +143,10 @@ const getCloudRunJobsWithNames = (context) => {
129
143
  const jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {})
130
144
  // filter out disabled jobs
131
145
  .filter((entry) => Boolean(entry[1]))
132
- .map(([name, job]) => ({
133
- jobName: getFullJobName(name),
146
+ .map(([jobKey, job]) => ({
147
+ jobName: getFullJobName(jobKey),
134
148
  job,
149
+ jobKey,
135
150
  }));
136
151
  return jobsWithNames;
137
152
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cloudRunJobs.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/createJobs/cloudRunJobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudRunJobs.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/createJobs/cloudRunJobs.ts"],"names":[],"mappings":"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"}