@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-prettier-cbceeed9
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.
- package/bin/catladder-gitlab-dev.js +3 -0
- package/bin/catladder-gitlab.js +1 -1
- package/dist/build/base/createBuildJob.d.ts +2 -2
- package/dist/build/base/createBuildJob.js +15 -30
- package/dist/build/base/writeBuildInfo.d.ts +2 -0
- package/dist/build/base/{getBuildInfo.js → writeBuildInfo.js} +3 -6
- package/dist/build/custom/buildJob.d.ts +3 -0
- package/dist/build/custom/buildJob.js +83 -0
- package/dist/build/custom/index.d.ts +3 -0
- package/dist/build/custom/index.js +40 -0
- package/dist/build/docker.d.ts +33 -9
- package/dist/build/docker.js +51 -54
- package/dist/build/index.d.ts +6 -5
- package/dist/build/index.js +20 -6
- package/dist/build/node/buildJob.d.ts +2 -2
- package/dist/build/node/buildJob.js +3 -25
- package/dist/build/node/cache.d.ts +2 -2
- package/dist/build/node/cache.js +19 -22
- package/dist/build/node/index.d.ts +1 -1
- package/dist/build/node/index.js +3 -16
- package/dist/build/node/meteor.d.ts +1 -1
- package/dist/build/node/meteor.js +9 -20
- package/dist/build/node/testJob.d.ts +2 -2
- package/dist/build/node/testJob.js +7 -21
- package/dist/build/node/yarn.d.ts +1 -1
- package/dist/build/node/yarn.js +14 -15
- package/dist/build/rails/build.d.ts +3 -0
- package/dist/build/rails/build.js +51 -0
- package/dist/build/rails/index.d.ts +3 -0
- package/dist/build/rails/index.js +41 -0
- package/dist/build/rails/test.d.ts +3 -0
- package/dist/build/rails/test.js +94 -0
- package/dist/build/types.d.ts +84 -9
- package/dist/build/types.js +0 -4
- package/dist/bundles/catladder-gitlab/index.js +32979 -0
- package/dist/catladder-gitlab.js +7 -26
- package/dist/config/{configruedEnvs.test.d.ts → __tests__/configruedEnvs.test.d.ts} +0 -0
- package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +10 -12
- package/dist/config/configruedEnvs.d.ts +1 -1
- package/dist/config/configruedEnvs.js +7 -22
- package/dist/config/index.js +0 -4
- package/dist/config/readConfig.d.ts +1 -1
- package/dist/config/readConfig.js +2 -13
- package/dist/constants.js +1 -1
- package/dist/context/{resolveReferences.test.d.ts → __tests__/resolveReferences.test.d.ts} +0 -0
- package/dist/context/__tests__/resolveReferences.test.js +336 -0
- package/dist/context/getEnvConfig.d.ts +2 -0
- package/dist/context/getEnvConfig.js +18 -0
- package/dist/context/getEnvType.d.ts +4 -0
- package/dist/context/getEnvType.js +13 -0
- package/dist/context/getEnvironment.d.ts +3 -0
- package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +42 -84
- package/dist/context/getEnvironmentContext.d.ts +4 -0
- package/dist/context/getEnvironmentContext.js +33 -0
- package/dist/context/getEnvironmentVariables.d.ts +10 -0
- package/dist/context/getEnvironmentVariables.js +260 -0
- package/dist/context/getLabels.d.ts +8 -0
- package/dist/context/getLabels.js +38 -0
- package/dist/context/index.d.ts +5 -6
- package/dist/context/index.js +158 -208
- package/dist/context/resolveReferences.d.ts +1 -3
- package/dist/context/resolveReferences.js +213 -52
- package/dist/defaults/index.d.ts +1 -1
- package/dist/deploy/base.d.ts +4 -2
- package/dist/deploy/base.js +38 -33
- package/dist/deploy/cloudRun/deployJob.d.ts +3 -0
- package/dist/deploy/cloudRun/deployJob.js +238 -0
- package/dist/deploy/cloudRun/index.d.ts +4 -0
- package/dist/deploy/cloudRun/index.js +112 -0
- package/dist/deploy/cloudRun/utils/createArgsString.d.ts +11 -0
- package/dist/deploy/cloudRun/utils/createArgsString.js +55 -0
- package/dist/deploy/cloudRun/utils/database.d.ts +4 -0
- package/dist/deploy/cloudRun/utils/database.js +64 -0
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +10 -0
- package/dist/deploy/cloudRun/utils/jobName.d.ts +1 -0
- package/dist/deploy/cloudRun/utils/jobName.js +8 -0
- package/dist/deploy/custom/deployJob.d.ts +2 -2
- package/dist/deploy/custom/deployJob.js +10 -16
- package/dist/deploy/custom/index.d.ts +2 -1
- package/dist/deploy/custom/index.js +14 -19
- package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
- package/dist/deploy/dockerTag/deployJob.js +24 -0
- package/dist/deploy/dockerTag/index.d.ts +2 -0
- package/dist/deploy/dockerTag/index.js +17 -0
- package/dist/deploy/index.d.ts +12 -8
- package/dist/deploy/index.js +7 -20
- package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +4 -0
- package/dist/deploy/kubernetes/additionalSecretKeys.js +24 -0
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +13 -0
- package/dist/deploy/kubernetes/cloudSql/index.js +30 -0
- package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
- package/dist/deploy/kubernetes/deployJob.js +17 -91
- package/dist/deploy/kubernetes/index.d.ts +3 -1
- package/dist/deploy/kubernetes/index.js +42 -4
- package/dist/deploy/kubernetes/kubeEnv.d.ts +9 -0
- package/dist/deploy/kubernetes/kubeEnv.js +72 -0
- package/dist/deploy/kubernetes/kubeValues.d.ts +97 -0
- package/dist/deploy/kubernetes/kubeValues.js +124 -0
- package/dist/deploy/kubernetes/mongodb.d.ts +18 -5
- package/dist/deploy/kubernetes/mongodb.js +96 -10
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +25 -21
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +2 -10
- package/dist/deploy/types/base.d.ts +14 -0
- package/dist/deploy/types/base.js +3 -0
- package/dist/deploy/types/custom.d.ts +33 -0
- package/dist/deploy/types/custom.js +3 -0
- package/dist/deploy/types/dockerTag.d.ts +10 -0
- package/dist/deploy/types/dockerTag.js +3 -0
- package/dist/deploy/types/googleCloudRun.d.ts +121 -0
- package/dist/deploy/types/googleCloudRun.js +3 -0
- package/dist/deploy/types/index.d.ts +22 -0
- package/dist/deploy/types/index.js +31 -0
- package/dist/deploy/types/kubernetes.d.ts +276 -0
- package/dist/deploy/types/kubernetes.js +3 -0
- package/dist/deploy/utils.d.ts +2 -2
- package/dist/deploy/utils.js +3 -10
- package/dist/index.js +0 -10
- package/dist/pipeline/commitInfo/getBuildId.d.ts +1 -0
- package/dist/pipeline/commitInfo/getBuildId.js +135 -0
- package/dist/pipeline/commitInfo/getCommitInfo.d.ts +2 -0
- package/dist/pipeline/commitInfo/getCommitInfo.js +140 -0
- package/dist/pipeline/createAllJobs.d.ts +8 -0
- package/dist/{build/tests/storybook.test.js → pipeline/createAllJobs.js} +54 -104
- package/dist/pipeline/createChildPipeline.d.ts +2 -2
- package/dist/pipeline/createChildPipeline.js +40 -121
- package/dist/pipeline/createJobsForComponent.d.ts +3 -0
- package/dist/pipeline/{createJobs.js → createJobsForComponent.js} +33 -192
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +14 -0
- package/dist/pipeline/gitlab/createGitlabJobs.js +260 -0
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.js +1 -5
- package/dist/pipeline/packageManager.d.ts +1 -1
- package/dist/pipeline/packageManager.js +20 -173
- package/dist/pipeline/yarn/yarnUtils.d.ts +4 -0
- package/dist/pipeline/yarn/yarnUtils.js +193 -0
- package/dist/rules/index.d.ts +3 -1
- package/dist/rules/index.js +7 -6
- package/dist/runner/index.d.ts +2 -3
- package/dist/runner/index.js +0 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +19 -25
- package/dist/types/config.js +6 -16
- package/dist/types/context.d.ts +16 -3
- package/dist/types/environmentContext.d.ts +28 -0
- package/dist/types/environmentContext.js +3 -0
- package/dist/types/gitlab-types.d.ts +39 -7
- package/dist/types/index.js +0 -6
- package/dist/types/jobs.d.ts +25 -17
- package/dist/types/jobs.js +1 -1
- package/dist/types/pipeline.d.ts +1 -1
- package/dist/types/utils.d.ts +1 -0
- package/dist/types/utils.js +3 -0
- package/dist/utils/gitlab.d.ts +5 -0
- package/dist/utils/gitlab.js +48 -0
- package/dist/utils/index.js +5 -15
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +1560 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +1560 -0
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +1560 -0
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +3092 -0
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +3103 -0
- package/examples/__snapshots__/custom-build-job.ts.snap +1162 -0
- package/examples/__snapshots__/custom-envs.ts.snap +261 -0
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +2280 -0
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +4077 -0
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1911 -0
- package/examples/__snapshots__/wait-for-other-deploy.ts.snap +1626 -0
- package/examples/__utils__/helpers.ts +14 -0
- package/examples/cloud-run-memory-limit.ts +28 -0
- package/examples/cloud-run-no-cpu-throttling.ts +33 -0
- package/examples/cloud-run-non-public.ts +27 -0
- package/examples/cloud-run-with-sql-reuse-db.ts +54 -0
- package/examples/cloud-run-with-sql.ts +61 -0
- package/examples/custom-build-job.ts +28 -0
- package/examples/custom-envs.ts +31 -0
- package/examples/kubernetes-application-customization.ts +57 -0
- package/examples/kubernetes-with-jobs.ts +68 -0
- package/examples/rails-k8s-with-worker.ts +95 -0
- package/examples/wait-for-other-deploy.ts +36 -0
- package/package.json +16 -13
- package/scripts/bundle +2 -0
- package/src/build/base/createBuildJob.ts +12 -5
- package/src/build/base/{getBuildInfo.ts → writeBuildInfo.ts} +2 -2
- package/src/build/custom/buildJob.ts +64 -0
- package/src/build/custom/index.ts +7 -0
- package/src/build/docker.ts +58 -33
- package/src/build/index.ts +24 -5
- package/src/build/node/buildJob.ts +2 -2
- package/src/build/node/cache.ts +19 -8
- package/src/build/node/index.ts +1 -1
- package/src/build/node/meteor.ts +8 -2
- package/src/build/node/testJob.ts +4 -2
- package/src/build/node/yarn.ts +21 -10
- package/src/build/rails/build.ts +38 -0
- package/src/build/rails/index.ts +8 -0
- package/src/build/rails/test.ts +86 -0
- package/src/build/types.ts +97 -2
- package/src/catladder-gitlab.ts +4 -2
- package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
- package/src/config/configruedEnvs.ts +2 -7
- package/src/config/readConfig.ts +1 -1
- package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +23 -38
- package/src/context/getEnvConfig.ts +21 -0
- package/src/context/getEnvType.ts +17 -0
- package/src/context/getEnvironment.ts +40 -0
- package/src/context/getEnvironmentContext.ts +57 -0
- package/src/context/getEnvironmentVariables.ts +155 -0
- package/src/context/getLabels.ts +20 -0
- package/src/context/index.ts +28 -193
- package/src/context/resolveReferences.ts +35 -31
- package/src/defaults/index.ts +1 -1
- package/src/deploy/base.ts +43 -19
- package/src/deploy/cloudRun/deployJob.ts +276 -0
- package/src/deploy/cloudRun/index.ts +95 -0
- package/src/deploy/cloudRun/utils/createArgsString.ts +26 -0
- package/src/deploy/cloudRun/utils/database.ts +55 -0
- package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +14 -0
- package/src/deploy/cloudRun/utils/jobName.ts +2 -0
- package/src/deploy/custom/deployJob.ts +13 -3
- package/src/deploy/custom/index.ts +9 -1
- package/src/deploy/dockerTag/deployJob.ts +31 -0
- package/src/deploy/dockerTag/index.ts +9 -0
- package/src/deploy/index.ts +26 -17
- package/src/deploy/kubernetes/additionalSecretKeys.ts +23 -0
- package/src/deploy/kubernetes/cloudSql/index.ts +28 -0
- package/src/deploy/kubernetes/deployJob.ts +21 -78
- package/src/deploy/kubernetes/index.ts +42 -1
- package/src/deploy/kubernetes/kubeEnv.ts +48 -0
- package/src/deploy/kubernetes/kubeValues.ts +96 -0
- package/src/deploy/kubernetes/mongodb.ts +104 -7
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +1 -1
- package/src/deploy/types/base.ts +17 -0
- package/src/deploy/types/custom.ts +36 -0
- package/src/deploy/types/dockerTag.ts +12 -0
- package/src/deploy/types/googleCloudRun.ts +179 -0
- package/src/deploy/types/index.ts +28 -0
- package/src/deploy/types/kubernetes.ts +301 -0
- package/src/deploy/utils.ts +6 -2
- package/src/pipeline/commitInfo/getBuildId.ts +6 -0
- package/src/pipeline/commitInfo/getCommitInfo.ts +12 -0
- package/src/pipeline/createAllJobs.ts +38 -0
- package/src/pipeline/createChildPipeline.ts +9 -20
- package/src/pipeline/createJobsForComponent.ts +64 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +149 -0
- package/src/pipeline/index.ts +1 -1
- package/src/pipeline/packageManager.ts +4 -38
- package/src/pipeline/yarn/yarnUtils.ts +37 -0
- package/src/rules/index.ts +9 -6
- package/src/runner/index.ts +2 -1
- package/src/types/config.ts +26 -13
- package/src/types/context.ts +23 -2
- package/src/types/environmentContext.ts +33 -0
- package/src/types/gitlab-types.ts +36 -6
- package/src/types/jobs.ts +30 -6
- package/src/types/pipeline.ts +1 -1
- package/src/types/utils.ts +7 -0
- package/src/utils/gitlab.ts +23 -0
- package/tsconfig.json +3 -1
- package/dist/build/base/getBuildInfo.d.ts +0 -2
- package/dist/build/tests/storybook.test.d.ts +0 -1
- package/dist/context/resolveReferences.test.js +0 -141
- package/dist/deploy/kubernetes/cloudsql.d.ts +0 -6
- package/dist/deploy/kubernetes/cloudsql.js +0 -16
- package/dist/deploy/types.d.ts +0 -196
- package/dist/deploy/types.js +0 -16
- package/dist/pipeline/createChildPipeline.test.d.ts +0 -1
- package/dist/pipeline/createJobs.d.ts +0 -3
- package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
- package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
- package/src/build/tests/storybook.test.ts +0 -54
- package/src/deploy/kubernetes/cloudsql.ts +0 -12
- package/src/deploy/types.ts +0 -189
- package/src/pipeline/createChildPipeline.test.ts +0 -49
- package/src/pipeline/createJobs.ts +0 -195
- package/src/pipeline/gitlab/makeGitlabJob.ts +0 -16
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __assign = this && this.__assign || function () {
|
|
4
|
+
__assign = Object.assign || function (t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __read = this && this.__read || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o),
|
|
17
|
+
r,
|
|
18
|
+
ar = [],
|
|
19
|
+
e;
|
|
20
|
+
try {
|
|
21
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
e = {
|
|
24
|
+
error: error
|
|
25
|
+
};
|
|
26
|
+
} finally {
|
|
27
|
+
try {
|
|
28
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
29
|
+
} finally {
|
|
30
|
+
if (e) throw e.error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
36
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
37
|
+
if (ar || !(i in from)) {
|
|
38
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
39
|
+
ar[i] = from[i];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
43
|
+
};
|
|
44
|
+
exports.__esModule = true;
|
|
45
|
+
exports.createGoogleCloudRunDeployJobs = void 0;
|
|
46
|
+
var js_yaml_1 = require("js-yaml");
|
|
47
|
+
var lodash_1 = require("lodash");
|
|
48
|
+
var _1 = require(".");
|
|
49
|
+
var docker_1 = require("../../build/docker");
|
|
50
|
+
var getLabels_1 = require("../../context/getLabels");
|
|
51
|
+
var runner_1 = require("../../runner");
|
|
52
|
+
var base_1 = require("../base");
|
|
53
|
+
var types_1 = require("../types");
|
|
54
|
+
var gcloudServiceAccountLoginCommands_1 = require("./utils/gcloudServiceAccountLoginCommands");
|
|
55
|
+
var database_1 = require("./utils/database");
|
|
56
|
+
var gitlab_1 = require("../../utils/gitlab");
|
|
57
|
+
var jobName_1 = require("./utils/jobName");
|
|
58
|
+
var createArgsString_1 = require("./utils/createArgsString");
|
|
59
|
+
var setExtraVarsScripts = function (deployConfig) {
|
|
60
|
+
return ["export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe ".concat(deployConfig.projectId, " --format=\"value(projectNumber)\")"), "echo \"GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER\""];
|
|
61
|
+
};
|
|
62
|
+
var createGoogleCloudRunDeployJobs = function (context) {
|
|
63
|
+
var _a, _b, _c;
|
|
64
|
+
var deployConfig = context.componentConfig.deploy;
|
|
65
|
+
if (deployConfig === false) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
if (!(0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) {
|
|
69
|
+
// should not happen
|
|
70
|
+
throw new Error("deploy config is wrong");
|
|
71
|
+
}
|
|
72
|
+
var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
|
|
73
|
+
var fullAppName = "".concat(context.fullConfig.customerName, "-").concat(context.fullConfig.appName);
|
|
74
|
+
var dockerUrl = "".concat(deployConfig.region, "-docker.pkg.dev/").concat(deployConfig.projectId, "/catladder-deploy/").concat(fullAppName);
|
|
75
|
+
var gcloudImageName = "".concat(dockerUrl, "/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG");
|
|
76
|
+
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)];
|
|
77
|
+
var allEnvVars = (0, lodash_1.omit)(context.environment.envVars, _1.GCLOUD_DEPLOY_CREDENTIALS_KEY);
|
|
78
|
+
var labelsString = Object.entries((0, getLabels_1.getLabels)(context)).map(function (_a) {
|
|
79
|
+
var _b = __read(_a, 2),
|
|
80
|
+
key = _b[0],
|
|
81
|
+
value = _b[1];
|
|
82
|
+
return "".concat(key, "=").concat(value);
|
|
83
|
+
}).join(",");
|
|
84
|
+
var commonArgs = {
|
|
85
|
+
project: deployConfig.projectId,
|
|
86
|
+
region: deployConfig.region
|
|
87
|
+
};
|
|
88
|
+
var commonDeployArgs = __assign(__assign({
|
|
89
|
+
image: gcloudImageName
|
|
90
|
+
}, commonArgs), {
|
|
91
|
+
"set-cloudsql-instances": deployConfig.cloudSql ? deployConfig.cloudSql.instanceConnectionName : undefined,
|
|
92
|
+
labels: labelsString
|
|
93
|
+
});
|
|
94
|
+
var serviceName = context.environment.fullName.toLowerCase();
|
|
95
|
+
var getFullJobName = function (name) {
|
|
96
|
+
return (0, jobName_1.getCloudRunJobName)(context.environment.fullName, name);
|
|
97
|
+
};
|
|
98
|
+
var jobsWithNames = Object.entries((_a = deployConfig.jobs) !== null && _a !== void 0 ? _a : {})
|
|
99
|
+
// filter out disabled jobs
|
|
100
|
+
.filter(function (entry) {
|
|
101
|
+
return Boolean(entry[1]);
|
|
102
|
+
}).map(function (_a) {
|
|
103
|
+
var _b = __read(_a, 2),
|
|
104
|
+
name = _b[0],
|
|
105
|
+
job = _b[1];
|
|
106
|
+
return {
|
|
107
|
+
jobName: getFullJobName(name),
|
|
108
|
+
job: job
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
var jobsWithSchedule = jobsWithNames.filter(function (entry) {
|
|
112
|
+
return entry.job.when === "schedule";
|
|
113
|
+
}).map(function (_a) {
|
|
114
|
+
var job = _a.job,
|
|
115
|
+
jobName = _a.jobName;
|
|
116
|
+
return {
|
|
117
|
+
job: job,
|
|
118
|
+
jobName: jobName,
|
|
119
|
+
schedulerName: jobName + "-scheduler"
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
var getServiceDeployScript = function (service, nameSuffix) {
|
|
123
|
+
var _a, _b, _c, _d;
|
|
124
|
+
var customConfig = service !== true ? service : undefined;
|
|
125
|
+
var command = service !== true ? (_a = service === null || service === void 0 ? void 0 : service.command) !== null && _a !== void 0 ? _a : context.componentConfig.build.startCommand : undefined;
|
|
126
|
+
var argsString = (0, createArgsString_1.createArgsString)(__assign(__assign({
|
|
127
|
+
// command as empty string resets it to default (uses the image's entrypoint)
|
|
128
|
+
command: command ? '"' + command.split(" ").join(",") + '"' : '""'
|
|
129
|
+
}, commonDeployArgs), {
|
|
130
|
+
"env-vars-file": "____envvars.yaml",
|
|
131
|
+
"min-instances": (_b = customConfig === null || customConfig === void 0 ? void 0 : customConfig.minInstances) !== null && _b !== void 0 ? _b : 0,
|
|
132
|
+
"max-instances": (_c = customConfig === null || customConfig === void 0 ? void 0 : customConfig.maxInstances) !== null && _c !== void 0 ? _c : 100,
|
|
133
|
+
"cpu-throttling": (customConfig === null || customConfig === void 0 ? void 0 : customConfig.noCpuThrottling) !== true,
|
|
134
|
+
memory: customConfig === null || customConfig === void 0 ? void 0 : customConfig.memory,
|
|
135
|
+
"allow-unauthenticated": (_d = customConfig === null || customConfig === void 0 ? void 0 : customConfig.allowUnauthenticated) !== null && _d !== void 0 ? _d : true
|
|
136
|
+
}));
|
|
137
|
+
return "gcloud run deploy ".concat(serviceName).concat(nameSuffix !== null && nameSuffix !== void 0 ? nameSuffix : "", " ").concat(argsString);
|
|
138
|
+
};
|
|
139
|
+
var getJobCreateScriptsForJob = function (jobName, job) {
|
|
140
|
+
// due to some oversight from google, jobs create does not accept `--env-vars-file` 🤦
|
|
141
|
+
// lucky, update on the other hand accepts it... so let's just imediatly update it
|
|
142
|
+
// also we cannot upsert a job, so we have to create it and catch the error and then update
|
|
143
|
+
var commonDeployArgsString = (0, createArgsString_1.createArgsString)(__assign(__assign({
|
|
144
|
+
command: '"' + job.command.split(" ").join(",") + '"'
|
|
145
|
+
}, commonDeployArgs), {
|
|
146
|
+
memory: job.memory || "512Mi"
|
|
147
|
+
}));
|
|
148
|
+
var argsString = "".concat(jobName, " ").concat(commonDeployArgsString);
|
|
149
|
+
return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud beta run jobs create ".concat(argsString)])), false), ["gcloud beta run jobs update ".concat(argsString, " --env-vars-file=____envvars.yaml")], false);
|
|
150
|
+
};
|
|
151
|
+
var commonArgsString = (0, createArgsString_1.createArgsString)(commonArgs);
|
|
152
|
+
var getJobCreateScripts = function () {
|
|
153
|
+
return jobsWithNames.map(function (_a) {
|
|
154
|
+
var job = _a.job,
|
|
155
|
+
jobName = _a.jobName;
|
|
156
|
+
return getJobCreateScriptsForJob(jobName, job);
|
|
157
|
+
}).flat();
|
|
158
|
+
};
|
|
159
|
+
var getJobRunScriptForJob = function (jobName) {
|
|
160
|
+
return "gcloud beta run jobs execute ".concat(jobName, " ").concat(commonArgsString);
|
|
161
|
+
};
|
|
162
|
+
var getJobRunScripts = function (when) {
|
|
163
|
+
return jobsWithNames.filter(function (_a) {
|
|
164
|
+
var job = _a.job;
|
|
165
|
+
return job.when === when;
|
|
166
|
+
}).map(function (_a) {
|
|
167
|
+
var jobName = _a.jobName;
|
|
168
|
+
return getJobRunScriptForJob(jobName);
|
|
169
|
+
});
|
|
170
|
+
};
|
|
171
|
+
var getCreateScheduleScripts = function () {
|
|
172
|
+
return jobsWithSchedule.map(function (_a) {
|
|
173
|
+
var job = _a.job,
|
|
174
|
+
jobName = _a.jobName,
|
|
175
|
+
schedulerName = _a.schedulerName;
|
|
176
|
+
var argsString = (0, createArgsString_1.createArgsString)({
|
|
177
|
+
project: deployConfig.projectId,
|
|
178
|
+
location: deployConfig.region,
|
|
179
|
+
schedule: "\"".concat(job.schedule, "\""),
|
|
180
|
+
uri: "\"https://".concat(deployConfig.region, "-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/").concat(deployConfig.projectId, "/jobs/").concat(jobName, ":run\""),
|
|
181
|
+
"http-method": "POST",
|
|
182
|
+
"oauth-service-account-email": "$GCLOUD_PROJECT_NUMBER-compute@developer.gserviceaccount.com"
|
|
183
|
+
});
|
|
184
|
+
var commonArgs = "http ".concat(schedulerName, " ").concat(argsString);
|
|
185
|
+
return __spreadArray(__spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs create ".concat(commonArgs)])), false), ["gcloud scheduler jobs update ".concat(commonArgs)], false);
|
|
186
|
+
}).flat();
|
|
187
|
+
};
|
|
188
|
+
var getDeleteSchedulesScripts = function () {
|
|
189
|
+
var argsString = (0, createArgsString_1.createArgsString)({
|
|
190
|
+
project: deployConfig.projectId,
|
|
191
|
+
location: deployConfig.region
|
|
192
|
+
});
|
|
193
|
+
return jobsWithSchedule.map(function (_a) {
|
|
194
|
+
var schedulerName = _a.schedulerName;
|
|
195
|
+
return __spreadArray([], __read((0, gitlab_1.allowFailureInScripts)(["gcloud scheduler jobs delete ".concat(schedulerName, " ").concat(argsString)])), false);
|
|
196
|
+
}).flat();
|
|
197
|
+
};
|
|
198
|
+
var getDeleteJobsScripts = function () {
|
|
199
|
+
return jobsWithNames.map(function (_a) {
|
|
200
|
+
var jobName = _a.jobName;
|
|
201
|
+
return "gcloud beta run jobs delete ".concat(jobName, " ").concat(commonArgsString);
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
var deployScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(setExtraVarsScripts(deployConfig)), false), __read(pushImageToArtifactsRegistry), false), ["echo \"$ENV_VARS\" > ____envvars.yaml"], false), __read(deployConfig.cloudSql ? (0, database_1.getDatabaseCreateScript)(context, deployConfig) // we create the db, so that we can also delete it afterwards
|
|
205
|
+
: []), false), __read(getCreateScheduleScripts()), false), __read(getJobCreateScripts()), false), __read(getJobRunScripts("preDeploy")), false), __read(deployConfig.service !== false ? [getServiceDeployScript(deployConfig.service)] : []), false), __read(Object.entries((_b = deployConfig.additionalServices) !== null && _b !== void 0 ? _b : {}).map(function (_a) {
|
|
206
|
+
var _b = __read(_a, 2),
|
|
207
|
+
name = _b[0],
|
|
208
|
+
service = _b[1];
|
|
209
|
+
return getServiceDeployScript(service, "-" + name);
|
|
210
|
+
})), false), __read(getJobRunScripts("postDeploy")), false), ["docker image rm ".concat(gcloudImageName)], false);
|
|
211
|
+
var stopScripts = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read((0, gcloudServiceAccountLoginCommands_1.gcloudServiceAccountLoginCommands)(context)), false), __read(deployConfig.service !== false ? ["gcloud run services delete ".concat(serviceName, " ").concat(commonArgsString)] : []), false), __read(Object.entries((_c = deployConfig.additionalServices) !== null && _c !== void 0 ? _c : {}).map(function (_a) {
|
|
212
|
+
var _b = __read(_a, 1),
|
|
213
|
+
name = _b[0];
|
|
214
|
+
return "gcloud run services delete ".concat(serviceName, "-").concat(name, " ").concat(commonArgsString);
|
|
215
|
+
})), false), __read(getDeleteSchedulesScripts()), false), __read(getDeleteJobsScripts()), false), __read(deployConfig.cloudSql && deployConfig.cloudSql.deleteDatabaseOnStop ? (0, database_1.getDatabaseDeleteScript)(context, deployConfig) : []), false);
|
|
216
|
+
return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
|
|
217
|
+
artifacts: {
|
|
218
|
+
paths: ["____envvars.yaml"]
|
|
219
|
+
},
|
|
220
|
+
variables: {
|
|
221
|
+
CLOUDSDK_CORE_DISABLE_PROMPTS: "1",
|
|
222
|
+
ENV_VARS: (0, js_yaml_1.dump)(allEnvVars, {
|
|
223
|
+
lineWidth: -1,
|
|
224
|
+
quotingType: "'",
|
|
225
|
+
forceQuotes: true
|
|
226
|
+
})
|
|
227
|
+
},
|
|
228
|
+
image: (0, runner_1.getRunnerImage)("gcloud"),
|
|
229
|
+
script: deployScripts
|
|
230
|
+
}), (0, lodash_1.merge)({}, (0, base_1.getBaseDeploymentStopJob)(context), {
|
|
231
|
+
image: (0, runner_1.getRunnerImage)("gcloud"),
|
|
232
|
+
variables: {
|
|
233
|
+
CLOUDSDK_CORE_DISABLE_PROMPTS: "1"
|
|
234
|
+
},
|
|
235
|
+
script: stopScripts
|
|
236
|
+
})];
|
|
237
|
+
};
|
|
238
|
+
exports.createGoogleCloudRunDeployJobs = createGoogleCloudRunDeployJobs;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DeployTypeDefinition } from "..";
|
|
2
|
+
export declare const GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
|
|
3
|
+
export declare const GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
|
|
4
|
+
export declare const GCLOUD_RUN_DEPLOY_TYPE: DeployTypeDefinition<"google-cloudrun">;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __assign = this && this.__assign || function () {
|
|
4
|
+
__assign = Object.assign || function (t) {
|
|
5
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
6
|
+
s = arguments[i];
|
|
7
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __read = this && this.__read || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o),
|
|
17
|
+
r,
|
|
18
|
+
ar = [],
|
|
19
|
+
e;
|
|
20
|
+
try {
|
|
21
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
e = {
|
|
24
|
+
error: error
|
|
25
|
+
};
|
|
26
|
+
} finally {
|
|
27
|
+
try {
|
|
28
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
29
|
+
} finally {
|
|
30
|
+
if (e) throw e.error;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
36
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
37
|
+
if (ar || !(i in from)) {
|
|
38
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
39
|
+
ar[i] = from[i];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
43
|
+
};
|
|
44
|
+
exports.__esModule = true;
|
|
45
|
+
exports.GCLOUD_RUN_DEPLOY_TYPE = exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = void 0;
|
|
46
|
+
var context_1 = require("../../context");
|
|
47
|
+
var gitlab_1 = require("../../utils/gitlab");
|
|
48
|
+
var deployJob_1 = require("./deployJob");
|
|
49
|
+
var jobName_1 = require("./utils/jobName");
|
|
50
|
+
exports.GCLOUD_DEPLOY_CREDENTIALS_KEY = "GCLOUD_DEPLOY_credentialsKey";
|
|
51
|
+
exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX = "GCLOUD_RUN_canonicalHostSuffix";
|
|
52
|
+
var getCloudSqlVariables = function (_a) {
|
|
53
|
+
var _b, _c, _d, _e;
|
|
54
|
+
var deployConfigRaw = _a.deployConfigRaw,
|
|
55
|
+
environmentSlugPrefix = _a.environmentSlugPrefix,
|
|
56
|
+
env = _a.env,
|
|
57
|
+
componentName = _a.componentName,
|
|
58
|
+
fullConfig = _a.fullConfig;
|
|
59
|
+
if (deployConfigRaw && deployConfigRaw.cloudSql) {
|
|
60
|
+
var DB_NAME = [(_b = deployConfigRaw.cloudSql.dbNamePrefix) !== null && _b !== void 0 ? _b : "".concat(fullConfig.customerName, "-").concat(fullConfig.appName), environmentSlugPrefix, (_c = deployConfigRaw.cloudSql.dbBaseName) !== null && _c !== void 0 ? _c : componentName].filter(Boolean).join("-");
|
|
61
|
+
var additionalQueryParamsString = Object.entries((_d = deployConfigRaw.cloudSql.dbAdditionalQueryParams) !== null && _d !== void 0 ? _d : {}).map(function (_a) {
|
|
62
|
+
var _b = __read(_a, 2),
|
|
63
|
+
key = _b[0],
|
|
64
|
+
value = _b[1];
|
|
65
|
+
return "&".concat(key, "=").concat(value);
|
|
66
|
+
}).join("");
|
|
67
|
+
return {
|
|
68
|
+
CLOUD_SQL_INSTANCE_CONNECTION_NAME: deployConfigRaw.cloudSql.instanceConnectionName,
|
|
69
|
+
DB_NAME: DB_NAME,
|
|
70
|
+
DB_USER: (_e = deployConfigRaw.cloudSql.dbUser) !== null && _e !== void 0 ? _e : "postgres",
|
|
71
|
+
DB_PASSWORD: "$" + (0, context_1.getSecretVarName)(env, componentName, "DB_PASSWORD"),
|
|
72
|
+
DATABASE_URL: "postgresql://$DB_USER:$DB_PASSWORD@localhost/$DB_NAME?host=/cloudsql/$CLOUD_SQL_INSTANCE_CONNECTION_NAME".concat(additionalQueryParamsString),
|
|
73
|
+
DATABASE_JDBC_URL: "jdbc:postgresql:///$DB_NAME?cloudSqlInstance=$CLOUD_SQL_INSTANCE_CONNECTION_NAME&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=$DB_USER&password=$DB_PASSWORD".concat(additionalQueryParamsString)
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return {};
|
|
77
|
+
};
|
|
78
|
+
exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
79
|
+
jobs: deployJob_1.createGoogleCloudRunDeployJobs,
|
|
80
|
+
defaults: function (_a) {
|
|
81
|
+
var deployConfigRaw = _a.deployConfigRaw,
|
|
82
|
+
envType = _a.envType;
|
|
83
|
+
if (deployConfigRaw && deployConfigRaw.cloudSql) {
|
|
84
|
+
return {
|
|
85
|
+
cloudSql: {
|
|
86
|
+
deleteDatabaseOnStop: envType === "review"
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return {};
|
|
91
|
+
},
|
|
92
|
+
additionalSecretKeys: function (ctx) {
|
|
93
|
+
return __spreadArray([exports.GCLOUD_DEPLOY_CREDENTIALS_KEY], __read(ctx.deployConfigRaw && ctx.deployConfigRaw.cloudSql ? ["DB_PASSWORD"] : []), false);
|
|
94
|
+
},
|
|
95
|
+
getAdditionalEnvVars: function (ctx) {
|
|
96
|
+
var _a;
|
|
97
|
+
var fullName = ctx.fullName,
|
|
98
|
+
env = ctx.env,
|
|
99
|
+
componentName = ctx.componentName,
|
|
100
|
+
deployConfigRaw = ctx.deployConfigRaw;
|
|
101
|
+
var HOST_CANONICAL = fullName.toLowerCase() + "-" + ((_a = process.env[(0, context_1.getSecretVarName)(env, componentName, exports.GCLOUD_RUN_CANONICAL_HOST_SUFFIX)]) !== null && _a !== void 0 ? _a : "unknown-host.example.com");
|
|
102
|
+
var jobTriggers = deployConfigRaw && deployConfigRaw.jobs ? Object.fromEntries(Object.entries(deployConfigRaw.jobs).map(function (_a) {
|
|
103
|
+
var _b = __read(_a, 2),
|
|
104
|
+
name = _b[0],
|
|
105
|
+
job = _b[1];
|
|
106
|
+
return ["CLOUD_RUN_JOB_TRIGGER_URL_" + (0, gitlab_1.sanitizeForBashVariable)(name), "https://".concat(deployConfigRaw.region, "-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/").concat(deployConfigRaw.projectId, "/jobs/").concat((0, jobName_1.getCloudRunJobName)(fullName, name), ":run")];
|
|
107
|
+
})) : {};
|
|
108
|
+
return __assign(__assign({
|
|
109
|
+
HOST_CANONICAL: HOST_CANONICAL
|
|
110
|
+
}, getCloudSqlVariables(ctx)), jobTriggers);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* creates arguments string:
|
|
3
|
+
*
|
|
4
|
+
* --key=value
|
|
5
|
+
*
|
|
6
|
+
* - undefined or null values will get removed completly
|
|
7
|
+
* - true will just be "--key"
|
|
8
|
+
* @param args args record
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare const createArgsString: (args: Record<string, string | number | true | false | undefined>) => string;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
try {
|
|
11
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
e = {
|
|
14
|
+
error: error
|
|
15
|
+
};
|
|
16
|
+
} finally {
|
|
17
|
+
try {
|
|
18
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
19
|
+
} finally {
|
|
20
|
+
if (e) throw e.error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
exports.__esModule = true;
|
|
26
|
+
exports.createArgsString = void 0;
|
|
27
|
+
var lodash_1 = require("lodash");
|
|
28
|
+
/**
|
|
29
|
+
* creates arguments string:
|
|
30
|
+
*
|
|
31
|
+
* --key=value
|
|
32
|
+
*
|
|
33
|
+
* - undefined or null values will get removed completly
|
|
34
|
+
* - true will just be "--key"
|
|
35
|
+
* @param args args record
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
var createArgsString = function (args) {
|
|
39
|
+
return Object.entries(args).filter(function (_a) {
|
|
40
|
+
var _b = __read(_a, 2),
|
|
41
|
+
value = _b[1];
|
|
42
|
+
return !(0, lodash_1.isNil)(value);
|
|
43
|
+
}).map(function (_a) {
|
|
44
|
+
var _b = __read(_a, 2),
|
|
45
|
+
key = _b[0],
|
|
46
|
+
value = _b[1];
|
|
47
|
+
if (value === true) {
|
|
48
|
+
return "--".concat(key);
|
|
49
|
+
} else if (value === false) {
|
|
50
|
+
return "--no-".concat(key);
|
|
51
|
+
}
|
|
52
|
+
return "--".concat(key, "=").concat(value);
|
|
53
|
+
}).join(" ");
|
|
54
|
+
};
|
|
55
|
+
exports.createArgsString = createArgsString;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Context } from "../../../types";
|
|
2
|
+
import type { DeployConfigCloudRun } from "../../types";
|
|
3
|
+
export declare const getDatabaseDeleteScript: (context: Context, deployConfig: DeployConfigCloudRun) => string[];
|
|
4
|
+
export declare const getDatabaseCreateScript: (context: Context, deployConfig: DeployConfigCloudRun) => string[];
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __read = this && this.__read || function (o, n) {
|
|
4
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
|
+
if (!m) return o;
|
|
6
|
+
var i = m.call(o),
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
10
|
+
try {
|
|
11
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
12
|
+
} catch (error) {
|
|
13
|
+
e = {
|
|
14
|
+
error: error
|
|
15
|
+
};
|
|
16
|
+
} finally {
|
|
17
|
+
try {
|
|
18
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
19
|
+
} finally {
|
|
20
|
+
if (e) throw e.error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
exports.__esModule = true;
|
|
26
|
+
exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
27
|
+
var gitlab_1 = require("../../../utils/gitlab");
|
|
28
|
+
var getDatabaseDeleteScript = function (context, deployConfig) {
|
|
29
|
+
var _a;
|
|
30
|
+
if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
|
|
31
|
+
throw new Error("not possible");
|
|
32
|
+
}
|
|
33
|
+
var DB_NAME = ((_a = context.environment.envVars) !== null && _a !== void 0 ? _a : {}).DB_NAME;
|
|
34
|
+
if (!DB_NAME) {
|
|
35
|
+
throw new Error("error: env vars did not specify DB_NAME");
|
|
36
|
+
}
|
|
37
|
+
var _b = __read(deployConfig.cloudSql.instanceConnectionName.split(":"), 3),
|
|
38
|
+
projectId = _b[0],
|
|
39
|
+
region = _b[1],
|
|
40
|
+
instanceId = _b[2];
|
|
41
|
+
// unfortunatly the database cannot be deleted right after the service has stopped, as it might still have connections
|
|
42
|
+
// we have to repeate this process
|
|
43
|
+
return ["echo \"deleting database ".concat(DB_NAME, "...\""), "echo \"\uD83D\uDC46 this can take multiple attemps (3-5min), because google cloud run may still have a connection to the database after the cloud run service is shut down\"", (0, gitlab_1.repeatOnFailure)("gcloud sql databases delete ".concat(DB_NAME, " --instance=").concat(instanceId, " --project ").concat(projectId), {
|
|
44
|
+
pauseInSeconds: 10
|
|
45
|
+
})];
|
|
46
|
+
};
|
|
47
|
+
exports.getDatabaseDeleteScript = getDatabaseDeleteScript;
|
|
48
|
+
var getDatabaseCreateScript = function (context, deployConfig) {
|
|
49
|
+
var _a;
|
|
50
|
+
if (!deployConfig.cloudSql) {
|
|
51
|
+
throw new Error("not possible");
|
|
52
|
+
}
|
|
53
|
+
var DB_NAME = ((_a = context.environment.envVars) !== null && _a !== void 0 ? _a : {}).DB_NAME;
|
|
54
|
+
if (!DB_NAME) {
|
|
55
|
+
throw new Error("error: env vars did not specify DB_NAME");
|
|
56
|
+
}
|
|
57
|
+
var _b = __read(deployConfig.cloudSql.instanceConnectionName.split(":"), 3),
|
|
58
|
+
projectId = _b[0],
|
|
59
|
+
region = _b[1],
|
|
60
|
+
instanceId = _b[2];
|
|
61
|
+
// may fail if it already exists
|
|
62
|
+
return (0, gitlab_1.allowFailureInScripts)(["echo \"ensuring Database...\"", "gcloud sql databases create ".concat(DB_NAME, " --instance=").concat(instanceId, " --project ").concat(projectId)]);
|
|
63
|
+
};
|
|
64
|
+
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.gcloudServiceAccountLoginCommands = void 0;
|
|
5
|
+
var __1 = require("..");
|
|
6
|
+
var context_1 = require("../../../context");
|
|
7
|
+
var gcloudServiceAccountLoginCommands = function (context) {
|
|
8
|
+
return ["echo $".concat((0, context_1.getSecretVarNameForContext)(context, __1.GCLOUD_DEPLOY_CREDENTIALS_KEY), " > ./____keyfile.json\n "), "gcloud auth activate-service-account --key-file=\"./____keyfile.json\""];
|
|
9
|
+
};
|
|
10
|
+
exports.gcloudServiceAccountLoginCommands = gcloudServiceAccountLoginCommands;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getCloudRunJobName: (fullAppName: string, jobName: string) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getCloudRunJobName = void 0;
|
|
5
|
+
var getCloudRunJobName = function (fullAppName, jobName) {
|
|
6
|
+
return fullAppName.toLowerCase() + "-" + jobName.toLowerCase();
|
|
7
|
+
};
|
|
8
|
+
exports.getCloudRunJobName = getCloudRunJobName;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Context } from "../../types/context";
|
|
2
|
-
import { CatladderJob } from "../../types/jobs";
|
|
1
|
+
import type { Context } from "../../types/context";
|
|
2
|
+
import type { CatladderJob } from "../../types/jobs";
|
|
3
3
|
export declare const createCustomDeployJobs: (context: Context) => CatladderJob[];
|
|
@@ -4,10 +4,9 @@ var __read = this && this.__read || function (o, n) {
|
|
|
4
4
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
5
5
|
if (!m) return o;
|
|
6
6
|
var i = m.call(o),
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
r,
|
|
8
|
+
ar = [],
|
|
9
|
+
e;
|
|
11
10
|
try {
|
|
12
11
|
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
13
12
|
} catch (error) {
|
|
@@ -21,10 +20,8 @@ var __read = this && this.__read || function (o, n) {
|
|
|
21
20
|
if (e) throw e.error;
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
|
-
|
|
25
23
|
return ar;
|
|
26
24
|
};
|
|
27
|
-
|
|
28
25
|
var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
29
26
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
30
27
|
if (ar || !(i in from)) {
|
|
@@ -34,32 +31,29 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
|
34
31
|
}
|
|
35
32
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
36
33
|
};
|
|
37
|
-
|
|
38
34
|
exports.__esModule = true;
|
|
39
35
|
exports.createCustomDeployJobs = void 0;
|
|
40
|
-
|
|
41
36
|
var lodash_1 = require("lodash");
|
|
42
|
-
|
|
37
|
+
var yarn_1 = require("../../build/node/yarn");
|
|
38
|
+
var runner_1 = require("../../runner");
|
|
43
39
|
var base_1 = require("../base");
|
|
44
|
-
|
|
45
40
|
var types_1 = require("../types");
|
|
46
|
-
|
|
47
41
|
var createCustomDeployJobs = function (context) {
|
|
42
|
+
var _a, _b;
|
|
48
43
|
var deployConfig = context.componentConfig.deploy;
|
|
49
|
-
|
|
50
44
|
if (deployConfig === false) {
|
|
51
45
|
return [];
|
|
52
46
|
}
|
|
53
|
-
|
|
54
47
|
if (!(0, types_1.isOfDeployType)(deployConfig, "custom")) {
|
|
55
48
|
// should not happen
|
|
56
49
|
throw new Error("deploy config is not custom");
|
|
57
50
|
}
|
|
58
|
-
|
|
59
51
|
var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
|
|
52
|
+
var yarnInstall = (0, yarn_1.getYarnInstall)(context);
|
|
60
53
|
return [(0, lodash_1.merge)({}, baseDeploymentJob, {
|
|
61
|
-
|
|
54
|
+
image: (_a = deployConfig.jobImage) !== null && _a !== void 0 ? _a : (0, runner_1.getRunnerImage)("jobs-default"),
|
|
55
|
+
cache: (_b = deployConfig.jobCache) !== null && _b !== void 0 ? _b : [],
|
|
56
|
+
script: __spreadArray(__spreadArray(["cd ".concat(context.componentConfig.dir)], __read(deployConfig.requiresYarnInstall ? yarnInstall : []), false), __read(deployConfig.script), false)
|
|
62
57
|
})];
|
|
63
58
|
};
|
|
64
|
-
|
|
65
59
|
exports.createCustomDeployJobs = createCustomDeployJobs;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { DeployTypeDefinition } from "..";
|
|
2
|
+
export declare const CUSTOM_DEPLOY_TYPE: DeployTypeDefinition<"custom">;
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
|
|
4
|
-
if (k2 === undefined) k2 = k;
|
|
5
|
-
Object.defineProperty(o, k2, {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function () {
|
|
8
|
-
return m[k];
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
} : function (o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
o[k2] = m[k];
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
var __exportStar = this && this.__exportStar || function (m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
3
|
exports.__esModule = true;
|
|
21
|
-
|
|
22
|
-
|
|
4
|
+
exports.CUSTOM_DEPLOY_TYPE = void 0;
|
|
5
|
+
var deployJob_1 = require("./deployJob");
|
|
6
|
+
exports.CUSTOM_DEPLOY_TYPE = {
|
|
7
|
+
jobs: deployJob_1.createCustomDeployJobs,
|
|
8
|
+
defaults: function () {
|
|
9
|
+
return {};
|
|
10
|
+
},
|
|
11
|
+
additionalSecretKeys: function () {
|
|
12
|
+
return [];
|
|
13
|
+
},
|
|
14
|
+
getAdditionalEnvVars: function () {
|
|
15
|
+
return {};
|
|
16
|
+
}
|
|
17
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.createDockerTagDeployJobs = void 0;
|
|
5
|
+
var lodash_1 = require("lodash");
|
|
6
|
+
var docker_1 = require("../../build/docker");
|
|
7
|
+
var base_1 = require("../base");
|
|
8
|
+
var types_1 = require("../types");
|
|
9
|
+
var createDockerTagDeployJobs = function (context) {
|
|
10
|
+
var deployConfig = context.componentConfig.deploy;
|
|
11
|
+
if (deployConfig === false) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
if (!(0, types_1.isOfDeployType)(deployConfig, "dockerTag")) {
|
|
15
|
+
// should not happen
|
|
16
|
+
throw new Error("deploy config is not dockerTag");
|
|
17
|
+
}
|
|
18
|
+
var baseDeploymentJob = (0, base_1.getBaseDeploymentJob)(context);
|
|
19
|
+
var tag = deployConfig.tag;
|
|
20
|
+
return [(0, lodash_1.merge)({}, baseDeploymentJob, (0, docker_1.getDockerJobBaseProps)(context), {
|
|
21
|
+
script: [docker_1.gitlabDockerLogin, "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG", "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_IMAGE:".concat(tag), "docker push $DOCKER_IMAGE:".concat(tag), "echo \"pushed as $DOCKER_IMAGE:".concat(tag, "\"")]
|
|
22
|
+
})];
|
|
23
|
+
};
|
|
24
|
+
exports.createDockerTagDeployJobs = createDockerTagDeployJobs;
|