@catladder/cli 4.6.4 → 4.7.1
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/dist/bundles/catenv/index.js +1 -1
- package/dist/bundles/cli/index.js +1 -1
- package/dist/pipeline/src/constants.js +1 -1
- package/dist/pipeline/src/context/getEnvironmentVariables.js +15 -7
- package/dist/pipeline/src/context/getEnvironmentVariables.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/index.js +14 -2
- package/dist/pipeline/src/deploy/cloudRun/index.js.map +1 -1
- package/dist/pipeline/src/deploy/cloudRun/utils/database.d.ts +6 -5
- package/dist/pipeline/src/deploy/cloudRun/utils/database.js +20 -15
- package/dist/pipeline/src/deploy/cloudRun/utils/database.js.map +1 -1
- package/dist/pipeline/src/deploy/index.d.ts +7 -2
- package/dist/pipeline/src/deploy/index.js.map +1 -1
- package/dist/pipeline/src/index.d.ts +1 -0
- package/dist/pipeline/src/index.js +1 -0
- package/dist/pipeline/src/index.js.map +1 -1
- package/dist/pipeline/src/pipeline/createJobsForComponent.js +3 -2
- package/dist/pipeline/src/pipeline/createJobsForComponent.js.map +1 -1
- package/dist/pipeline/src/types/config.d.ts +8 -0
- package/dist/pipeline/src/types/config.js.map +1 -1
- package/dist/pipeline/src/variables/VariableValueContainingReferences.d.ts +6 -0
- package/dist/pipeline/src/variables/VariableValueContainingReferences.js +8 -0
- package/dist/pipeline/src/variables/VariableValueContainingReferences.js.map +1 -1
- package/dist/pipeline/src/variables/resolveAllReferences.d.ts +1 -2
- package/dist/pipeline/src/variables/resolveAllReferences.js +3 -2
- package/dist/pipeline/src/variables/resolveAllReferences.js.map +1 -1
- package/dist/pipeline/src/variables/resolveAllReferencesOnce.d.ts +1 -4
- package/dist/pipeline/src/variables/resolveAllReferencesOnce.js +2 -2
- package/dist/pipeline/src/variables/resolveAllReferencesOnce.js.map +1 -1
- package/dist/pipeline/src/verify/createVerifyJobs.d.ts +4 -0
- package/dist/pipeline/src/verify/createVerifyJobs.js +60 -0
- package/dist/pipeline/src/verify/createVerifyJobs.js.map +1 -0
- package/dist/pipeline/src/verify/index.d.ts +2 -0
- package/dist/pipeline/src/verify/index.js +26 -0
- package/dist/pipeline/src/verify/index.js.map +1 -0
- package/dist/pipeline/src/verify/types.d.ts +16 -0
- package/dist/pipeline/src/verify/types.js +5 -0
- package/dist/pipeline/src/verify/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DOCKER_REGISTRY = exports.PIPELINE_IMAGE_TAG = void 0;
|
|
7
|
-
exports.PIPELINE_IMAGE_TAG = "v4-
|
|
7
|
+
exports.PIPELINE_IMAGE_TAG = "v4-7-1-890e599f" || "latest";
|
|
8
8
|
exports.DOCKER_REGISTRY = "git.panter.ch:5001/catladder/catladder" || "git.panter.ch:5001/catladder/catladder";
|
|
@@ -65,6 +65,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
65
65
|
};
|
|
66
66
|
} else {
|
|
67
67
|
const additionalEnvVars = deployConfigRaw ? deploy_1.DEPLOY_TYPES[deployConfigRaw.type].getAdditionalEnvVars(environmentContext) : {};
|
|
68
|
+
// deploy types provide HOSTNAME_INTERNAL as a plain string or bash
|
|
69
|
+
// expression (never containing references)
|
|
68
70
|
const HOSTNAME_INTERNAL = (_b = additionalEnvVars.HOSTNAME_INTERNAL) !== null && _b !== void 0 ? _b : "unknown-host.example.com";
|
|
69
71
|
host = (_c = envConfigRaw === null || envConfigRaw === void 0 ? void 0 : envConfigRaw.host) !== null && _c !== void 0 ? _c : HOSTNAME_INTERNAL;
|
|
70
72
|
url = (0, BashExpression_1.joinBashExpressions)(["https://", host]);
|
|
@@ -85,7 +87,17 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
85
87
|
const publicEnvVarsUnresolved = Object.fromEntries(Object.entries(publicEnvVarsRawSanitized).map(([key, value]) => [key, (0, VariableValueContainingReferences_1.createVariableValueContainingReferencesFromString)(value, {
|
|
86
88
|
componentName: ctx.componentName
|
|
87
89
|
})]));
|
|
88
|
-
|
|
90
|
+
// predefined variables may contain references too (e.g. the embedded
|
|
91
|
+
// database connection string references the component's own DB_* vars), so
|
|
92
|
+
// we resolve references over the merged map. This way public var overrides
|
|
93
|
+
// (like DB_PASSWORD: "${otherComponent:DB_PASSWORD}") are picked up by the
|
|
94
|
+
// predefined variables that reference them
|
|
95
|
+
const mergedEnvVars = {
|
|
96
|
+
...predefinedVariables,
|
|
97
|
+
...secretEnvVars,
|
|
98
|
+
...publicEnvVarsUnresolved
|
|
99
|
+
};
|
|
100
|
+
const resolvedEnvVars = ((_h = options.shouldResolveReferences) !== null && _h !== void 0 ? _h : true) ? await (0, resolveAllReferences_1.resolveAllReferences)(mergedEnvVars, async otherComponentName => {
|
|
89
101
|
const {
|
|
90
102
|
envVars: otherEnvVars
|
|
91
103
|
} = await (0, exports.getEnvironmentVariables)({
|
|
@@ -95,12 +107,8 @@ const getEnvironmentVariables = async (ctx, options = {}) => {
|
|
|
95
107
|
shouldResolveReferences: false // we already do this here with replaceAllReferences recursivly until re replaced all
|
|
96
108
|
});
|
|
97
109
|
return otherEnvVars;
|
|
98
|
-
}) :
|
|
99
|
-
const envVars = addIndexVar(
|
|
100
|
-
...predefinedVariables,
|
|
101
|
-
...secretEnvVars,
|
|
102
|
-
...publicEnvVars
|
|
103
|
-
});
|
|
110
|
+
}) : mergedEnvVars;
|
|
111
|
+
const envVars = addIndexVar(resolvedEnvVars);
|
|
104
112
|
return {
|
|
105
113
|
envVars,
|
|
106
114
|
secretEnvVarKeys,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnvironmentVariables.js","sourceRoot":"","sources":["../../../../../pipeline/src/context/getEnvironmentVariables.ts"],"names":[],"mappings":";;;AAAA,sCAAyC;AASzC,2DAA6D;AAC7D,0CAAyD;AAEzD,sGAAmH;AACnH,4EAAyE;AACzE,mEAAgE;AAChE,mEAAgE;AAChE,iEAA8D;AAC9D,6CAIyB;AAQzB,MAAM,0BAA0B,GAAG,CAAC,GAAuB,EAAE,EAAE;IAC7D,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,GAAG;QAClB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG;QAC7B,QAAQ,EAAE,GAAG,CAAC,OAAO;QACrB,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAA,6CAAqB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC,CAAC;AAYK,MAAM,uBAAuB,GAAG,KAAK,EAC1C,GAAkC,EAClC,UAAiD,EAAE,EACpB,EAAE;;IACjC,MAAM,kBAAkB,GAAG,IAAA,6CAAqB,EAAC,GAAG,CAAC,CAAC;IAEtD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,GAC9D,kBAAkB,CAAC;IAErB,MAAM,uBAAuB,GAC3B,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;IAEjD,IAAI,mBAA6D,CAAC;IAClE,IAAI,IAAmC,CAAC;IACxC,IAAI,GAAkC,CAAC;IAEvC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,cAAc,GAAsB,YAAY,CAAC;QACvD,MAAM,IAAI,GACR,cAAc,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAA,cAAc,CAAC,IAAI,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,mBAAmB,GAAG;YACpB,GAAG,uBAAuB;YAC1B,SAAS,EAAE,OAAO;YAClB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAG,eAAe;YACvC,CAAC,CAAC,qBAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACrD,kBAA2B,CAC5B;YACH,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"getEnvironmentVariables.js","sourceRoot":"","sources":["../../../../../pipeline/src/context/getEnvironmentVariables.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,8 @@ const getCloudSqlVariables = ({
|
|
|
34
34
|
};
|
|
35
35
|
return {
|
|
36
36
|
...dbVars,
|
|
37
|
-
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars).concat(additionalQueryParamsString),
|
|
38
|
-
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE)
|
|
37
|
+
DATABASE_URL: (0, database_1.getDatabaseConnectionString)(deployConfigRaw.cloudSql, dbVars, componentName).concat(additionalQueryParamsString),
|
|
38
|
+
DATABASE_JDBC_URL: (0, database_1.getDatabaseJdbcUrl)(dbVars, (_c = deployConfigRaw.cloudSql.dbConnectionStringVariablesMode) !== null && _c !== void 0 ? _c : database_1.DEFAULT_DB_VARIABLES_MODE, componentName)
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
return {};
|
|
@@ -85,5 +85,17 @@ exports.GCLOUD_RUN_DEPLOY_TYPE = {
|
|
|
85
85
|
DEPLOY_CLOUD_RUN_PROJECT_ID: deployConfigRaw ? deployConfigRaw.projectId : undefined,
|
|
86
86
|
DEPLOY_CLOUD_RUN_REGION: deployConfigRaw ? deployConfigRaw.region : undefined
|
|
87
87
|
};
|
|
88
|
+
},
|
|
89
|
+
verifyJobSetupScript: context => {
|
|
90
|
+
var _a;
|
|
91
|
+
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
92
|
+
const service = deployConfig === null || deployConfig === void 0 ? void 0 : deployConfig.service;
|
|
93
|
+
const serviceConfig = typeof service === "object" ? service : undefined;
|
|
94
|
+
if ((serviceConfig === null || serviceConfig === void 0 ? void 0 : serviceConfig.allowUnauthenticated) !== false) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
// the service requires IAM auth: provide application default credentials
|
|
98
|
+
// so the verify command can fetch identity tokens for the deployed service
|
|
99
|
+
return (0, gitlab_1.collapseableSection)("verifygcloudauth", "Setup google application credentials")([`echo "$${exports.GCLOUD_DEPLOY_CREDENTIALS_KEY}" > "$CI_PROJECT_DIR/.gcloud-sa.json"`, `export GOOGLE_APPLICATION_CREDENTIALS="$CI_PROJECT_DIR/.gcloud-sa.json"`]);
|
|
88
100
|
}
|
|
89
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":";;;AACA,8DAGmC;AAEnC,2CAAiD;AAEjD,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../pipeline/src/deploy/cloudRun/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type StringOrBashExpression } from "../../../bash";
|
|
2
2
|
import type { ComponentContext } from "../../../types";
|
|
3
|
+
import type { VariableValue } from "../../../variables/VariableValue";
|
|
3
4
|
import type { DeployConfigCloudRun, DeployConfigCloudRunCloudSql } from "../../types";
|
|
4
5
|
export declare const getDatabaseDeleteScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
|
|
5
6
|
export declare const getDatabaseCreateScript: (context: ComponentContext, deployConfig: DeployConfigCloudRun) => string[];
|
|
@@ -13,13 +14,13 @@ export type DBVariables = {
|
|
|
13
14
|
* controls how variables in the connection string are handled
|
|
14
15
|
*
|
|
15
16
|
* - legacy: variables like $DB_USER will be kept as environment variables to be replaced at runtime (default). It is not using BashExpressions as this was not the case in the past.
|
|
16
|
-
* - embedded: variables will be replaced with
|
|
17
|
+
* - embedded: variables will be replaced with the component's final values in the connection string. This makes the connection string usable from other components (e.g. via ${otherComponent:DATABASE_URL}) and respects overrides of DB_USER, DB_PASSWORD, etc. in vars.public (e.g. DB_PASSWORD: "${otherComponent:DB_PASSWORD}" when reusing another component's database)
|
|
17
18
|
*
|
|
18
19
|
* We will remove the legacy mode in the future, as it is confusing. But its unclear whether its a breaking change in some edge cases
|
|
19
20
|
*/
|
|
20
21
|
export type DBVariablesMode = "legacy" | "embedded";
|
|
21
22
|
export declare const DEFAULT_DB_VARIABLES_MODE: DBVariablesMode;
|
|
22
|
-
export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
23
|
-
export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
24
|
-
export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode) =>
|
|
25
|
-
export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables) =>
|
|
23
|
+
export declare const getDatabaseJdbcUrl: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
24
|
+
export declare const getRailsDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
25
|
+
export declare const getPrismaDatabaseConnectionString: (variables: DBVariables, mode: DBVariablesMode, componentName: string) => VariableValue;
|
|
26
|
+
export declare const getDatabaseConnectionString: (config: DeployConfigCloudRunCloudSql, variables: DBVariables, componentName: string) => VariableValue;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getDatabaseConnectionString = exports.getPrismaDatabaseConnectionString = exports.getRailsDatabaseConnectionString = exports.getDatabaseJdbcUrl = exports.DEFAULT_DB_VARIABLES_MODE = exports.getDatabaseCreateScript = exports.getDatabaseDeleteScript = void 0;
|
|
7
7
|
const bash_1 = require("../../../bash");
|
|
8
8
|
const gitlab_1 = require("../../../utils/gitlab");
|
|
9
|
+
const VariableValueContainingReferences_1 = require("../../../variables/VariableValueContainingReferences");
|
|
9
10
|
const getDatabaseDeleteScript = (context, deployConfig) => {
|
|
10
11
|
if (!deployConfig.cloudSql || !deployConfig.cloudSql.deleteDatabaseOnStop) {
|
|
11
12
|
throw new Error("not possible");
|
|
@@ -36,35 +37,39 @@ const getDatabaseCreateScript = (context, deployConfig) => {
|
|
|
36
37
|
};
|
|
37
38
|
exports.getDatabaseCreateScript = getDatabaseCreateScript;
|
|
38
39
|
exports.DEFAULT_DB_VARIABLES_MODE = "legacy";
|
|
39
|
-
const getVariableOrValue = (key,
|
|
40
|
-
|
|
40
|
+
const getVariableOrValue = (key, mode, componentName) => {
|
|
41
|
+
// in embedded mode we reference the component's own env var, which gets
|
|
42
|
+
// resolved to its final value (including vars.public overrides) after all
|
|
43
|
+
// env vars have been merged
|
|
44
|
+
return mode === "legacy" ? `$${key}` : new VariableValueContainingReferences_1.VariableReference(componentName, key);
|
|
41
45
|
};
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
const joinDbUrlParts = (parts, mode) => mode === "legacy" ? (0, bash_1.joinBashExpressions)(parts) : new VariableValueContainingReferences_1.VariableValueContainingReferences(parts);
|
|
47
|
+
const getDatabaseJdbcUrl = (variables, mode, componentName) => {
|
|
48
|
+
const parts = ["jdbc:postgresql:///", getVariableOrValue("DB_NAME", mode, componentName), "?cloudSqlInstance=", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName), "&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=", getVariableOrValue("DB_USER", mode, componentName), "&password=", getVariableOrValue("DB_PASSWORD", mode, componentName)];
|
|
49
|
+
return joinDbUrlParts(parts, mode);
|
|
45
50
|
};
|
|
46
51
|
exports.getDatabaseJdbcUrl = getDatabaseJdbcUrl;
|
|
47
|
-
const getRailsDatabaseConnectionString = (variables, mode) => {
|
|
48
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
49
|
-
return (
|
|
52
|
+
const getRailsDatabaseConnectionString = (variables, mode, componentName) => {
|
|
53
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@", encodeURIComponent(`/cloudsql/${variables.CLOUD_SQL_INSTANCE_CONNECTION_NAME}`), "/", getVariableOrValue("DB_NAME", mode, componentName), "?"];
|
|
54
|
+
return joinDbUrlParts(parts, mode);
|
|
50
55
|
};
|
|
51
56
|
exports.getRailsDatabaseConnectionString = getRailsDatabaseConnectionString;
|
|
52
|
-
const getPrismaDatabaseConnectionString = (variables, mode) => {
|
|
53
|
-
const parts = ["postgresql://", getVariableOrValue("DB_USER",
|
|
54
|
-
return (
|
|
57
|
+
const getPrismaDatabaseConnectionString = (variables, mode, componentName) => {
|
|
58
|
+
const parts = ["postgresql://", getVariableOrValue("DB_USER", mode, componentName), ":", getVariableOrValue("DB_PASSWORD", mode, componentName), "@localhost/", getVariableOrValue("DB_NAME", mode, componentName), "?host=/cloudsql/", getVariableOrValue("CLOUD_SQL_INSTANCE_CONNECTION_NAME", mode, componentName)];
|
|
59
|
+
return joinDbUrlParts(parts, mode);
|
|
55
60
|
};
|
|
56
61
|
exports.getPrismaDatabaseConnectionString = getPrismaDatabaseConnectionString;
|
|
57
|
-
const getDatabaseConnectionString = (config, variables) => {
|
|
62
|
+
const getDatabaseConnectionString = (config, variables, componentName) => {
|
|
58
63
|
var _a;
|
|
59
64
|
const mode = (_a = config.dbConnectionStringVariablesMode) !== null && _a !== void 0 ? _a : exports.DEFAULT_DB_VARIABLES_MODE;
|
|
60
65
|
switch (config.dbConnectionStringFormat) {
|
|
61
66
|
case "jdbc":
|
|
62
|
-
return (0, exports.getDatabaseJdbcUrl)(variables, mode);
|
|
67
|
+
return (0, exports.getDatabaseJdbcUrl)(variables, mode, componentName);
|
|
63
68
|
case "rails":
|
|
64
|
-
return (0, exports.getRailsDatabaseConnectionString)(variables, mode);
|
|
69
|
+
return (0, exports.getRailsDatabaseConnectionString)(variables, mode, componentName);
|
|
65
70
|
default:
|
|
66
71
|
// prisma
|
|
67
|
-
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode);
|
|
72
|
+
return (0, exports.getPrismaDatabaseConnectionString)(variables, mode, componentName);
|
|
68
73
|
}
|
|
69
74
|
};
|
|
70
75
|
exports.getDatabaseConnectionString = getDatabaseConnectionString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":";;;AAAA,wCAIuB;AAEvB,kDAA+E;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../../pipeline/src/deploy/cloudRun/utils/database.ts"],"names":[],"mappings":";;;AAAA,wCAIuB;AAEvB,kDAA+E;AAE/E,4GAG8D;AAMvD,MAAM,uBAAuB,GAAG,CACrC,OAAyB,EACzB,YAAkC,EACxB,EAAE;IACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,GACnC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,sHAAsH;IACtH,kCAAkC;IAClC,OAAO;QACL,2BAA2B,OAAO,MAAM;QACxC,kKAAkK;QAClK,IAAA,wBAAe,EACb,+BAA+B,OAAO,eAAe,UAAU,cAAc,SAAS,EAAE,EACxF;YACE,cAAc,EAAE,EAAE;SACnB,CACF;KACF,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,uBAAuB,2BA2BlC;AAEK,MAAM,uBAAuB,GAAG,CACrC,OAAyB,EACzB,YAAkC,EACxB,EAAE;IACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,GACnC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,gCAAgC;IAChC,OAAO,IAAA,8BAAqB,EAAC;QAC3B,6BAA6B;QAC7B,+BAA+B,OAAO,eAAe,UAAU,cAAc,SAAS,EAAE;KACzF,CAAC,CAAC;AACL,CAAC,CAAC;AArBW,QAAA,uBAAuB,2BAqBlC;AAmBW,QAAA,yBAAyB,GAAoB,QAAQ,CAAC;AAInE,MAAM,kBAAkB,GAAG,CACzB,GAAsB,EACtB,IAAqB,EACrB,aAAqB,EACV,EAAE;IACb,wEAAwE;IACxE,0EAA0E;IAC1E,4BAA4B;IAC5B,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,IAAI,GAAG,EAAE;QACX,CAAC,CAAC,IAAI,qDAAiB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,KAAkB,EAClB,IAAqB,EACN,EAAE,CACjB,IAAI,KAAK,QAAQ;IACf,CAAC,CAAC,IAAA,0BAAmB,EAAC,KAAiC,CAAC;IACxD,CAAC,CAAC,IAAI,qEAAiC,CAAC,KAAK,CAAC,CAAC;AAE5C,MAAM,kBAAkB,GAAG,CAChC,SAAsB,EACtB,IAAqB,EACrB,aAAqB,EACrB,EAAE;IACF,MAAM,KAAK,GAAG;QACZ,qBAAqB;QACrB,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,oBAAoB;QACpB,kBAAkB,CAChB,oCAAoC,EACpC,IAAI,EACJ,aAAa,CACd;QACD,kEAAkE;QAClE,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,YAAY;QACZ,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC;KACvD,CAAC;IAEF,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;AArBW,QAAA,kBAAkB,sBAqB7B;AAEK,MAAM,gCAAgC,GAAG,CAC9C,SAAsB,EACtB,IAAqB,EACrB,aAAqB,EACrB,EAAE;IACF,MAAM,KAAK,GAAG;QACZ,eAAe;QACf,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,GAAG;QACH,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC;QACtD,GAAG;QACH,kBAAkB,CAChB,aAAa,SAAS,CAAC,kCAAkC,EAAE,CAC5D;QACD,GAAG;QACH,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,GAAG;KACJ,CAAC;IACF,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;AAnBW,QAAA,gCAAgC,oCAmB3C;AAEK,MAAM,iCAAiC,GAAG,CAC/C,SAAsB,EACtB,IAAqB,EACrB,aAAqB,EACrB,EAAE;IACF,MAAM,KAAK,GAAG;QACZ,eAAe;QACf,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,GAAG;QACH,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC;QACtD,aAAa;QACb,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QAClD,kBAAkB;QAClB,kBAAkB,CAChB,oCAAoC,EACpC,IAAI,EACJ,aAAa,CACd;KACF,CAAC;IACF,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC,CAAC;AApBW,QAAA,iCAAiC,qCAoB5C;AAEK,MAAM,2BAA2B,GAAG,CACzC,MAAoC,EACpC,SAAsB,EACtB,aAAqB,EACN,EAAE;;IACjB,MAAM,IAAI,GACR,MAAA,MAAM,CAAC,+BAA+B,mCAAI,iCAAyB,CAAC;IACtE,QAAQ,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxC,KAAK,MAAM;YACT,OAAO,IAAA,0BAAkB,EAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAC5D,KAAK,OAAO;YACV,OAAO,IAAA,wCAAgC,EAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAC1E;YACE,SAAS;YACT,OAAO,IAAA,yCAAiC,EAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,2BAA2B,+BAgBtC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { BuildConfig, SecretEnvVar } from "..";
|
|
2
|
-
import type { BashExpression } from "../bash/BashExpression";
|
|
3
2
|
import type { ComponentContext } from "../types/context";
|
|
4
3
|
import type { EnvironmentContext } from "../types/environmentContext";
|
|
5
4
|
import type { CatladderJob } from "../types/jobs";
|
|
6
5
|
import type { PartialDeep } from "../types/utils";
|
|
6
|
+
import type { VariableValue } from "../variables/VariableValue";
|
|
7
7
|
import type { DeployConfig, DeployConfigGeneric, DeployConfigType } from "./types";
|
|
8
8
|
export * from "./cloudRun";
|
|
9
9
|
export * from "./kubernetes";
|
|
@@ -13,7 +13,12 @@ export type DeployTypeDefinition<D extends DeployConfig> = {
|
|
|
13
13
|
jobs: (context: ComponentContext) => CatladderJob[] | Promise<CatladderJob[]>;
|
|
14
14
|
defaults: (envContext: EnvironmentContext<BuildConfig, D>) => PartialDeep<D>;
|
|
15
15
|
additionalSecretKeys: (envContext: EnvironmentContext<BuildConfig, D>) => SecretEnvVar[];
|
|
16
|
-
getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string,
|
|
16
|
+
getAdditionalEnvVars: (envContext: EnvironmentContext<BuildConfig, D>) => Record<string, VariableValue | undefined | null>;
|
|
17
|
+
/**
|
|
18
|
+
* script lines the deploy type contributes to the start of the verify job,
|
|
19
|
+
* e.g. to authenticate against a non-public service
|
|
20
|
+
*/
|
|
21
|
+
verifyJobSetupScript?: (context: ComponentContext) => string[];
|
|
17
22
|
};
|
|
18
23
|
export type DeployTypes = { [T in DeployConfigType]: DeployTypeDefinition<DeployConfigGeneric<T>> };
|
|
19
24
|
export declare const DEPLOY_TYPES: DeployTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/deploy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,yCAAoD;AACpD,qCAA8C;AAC9C,2CAAqD;AACrD,6CAAsD;AAMtD,6CAA2B;AAC3B,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/deploy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,yCAAoD;AACpD,qCAA8C;AAC9C,2CAAqD;AACrD,6CAAsD;AAMtD,6CAA2B;AAC3B,+CAA6B;AAC7B,0CAAwB;AACxB,0CAAwB;AAqBX,QAAA,YAAY,GAAgB;IACvC,UAAU,EAAE,mCAAsB;IAClC,MAAM,EAAE,2BAAkB;IAC1B,SAAS,EAAE,kCAAsB;IACjC,iBAAiB,EAAE,iCAAsB;CAC1C,CAAC"}
|
|
@@ -30,6 +30,7 @@ __exportStar(require("./config"), exports);
|
|
|
30
30
|
__exportStar(require("./context"), exports);
|
|
31
31
|
__exportStar(require("./build"), exports);
|
|
32
32
|
__exportStar(require("./deploy"), exports);
|
|
33
|
+
__exportStar(require("./verify"), exports);
|
|
33
34
|
__exportStar(require("./utils/writeFiles"), exports);
|
|
34
35
|
__exportStar(require("./utils/measureTime"), exports);
|
|
35
36
|
__exportStar(require("./variables/VariableValue"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,qDAAmC;AACnC,sDAAoC;AACpC,4DAA0C;AAC1C,yCAAuB;AACvB,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../pipeline/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,qDAAmC;AACnC,sDAAoC;AACpC,4DAA0C;AAC1C,yCAAuB;AACvB,2CAAyB"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.createJobsForComponentContext = void 0;
|
|
7
7
|
const build_1 = require("../build");
|
|
8
8
|
const deploy_1 = require("../deploy");
|
|
9
|
+
const createVerifyJobs_1 = require("../verify/createVerifyJobs");
|
|
9
10
|
const injectDefaultVarsInCustomJobs = (context, jobs) => jobs.map(({
|
|
10
11
|
variables,
|
|
11
12
|
...job
|
|
@@ -27,8 +28,8 @@ const getCustomJobs = context => {
|
|
|
27
28
|
return injectDefaultVarsInCustomJobs(context, rawJobs);
|
|
28
29
|
};
|
|
29
30
|
const createJobsForComponentContext = async context => {
|
|
30
|
-
const [buildJobs, deployJobs] = await Promise.all([context.build.type !== "disabled" ? build_1.BUILD_TYPES[context.build.buildType].jobs(context) : [], context.componentConfig.deploy !== false ? deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context) : []]);
|
|
31
|
+
const [buildJobs, deployJobs, verifyJobs] = await Promise.all([context.build.type !== "disabled" ? build_1.BUILD_TYPES[context.build.buildType].jobs(context) : [], context.componentConfig.deploy !== false ? deploy_1.DEPLOY_TYPES[context.componentConfig.deploy.type].jobs(context) : [], (0, createVerifyJobs_1.createVerifyJobs)(context)]);
|
|
31
32
|
const customJobs = getCustomJobs(context);
|
|
32
|
-
return [...buildJobs, ...deployJobs, ...customJobs];
|
|
33
|
+
return [...buildJobs, ...deployJobs, ...verifyJobs, ...customJobs];
|
|
33
34
|
};
|
|
34
35
|
exports.createJobsForComponentContext = createJobsForComponentContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createJobsForComponent.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/createJobsForComponent.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AACvC,sCAAyC;
|
|
1
|
+
{"version":3,"file":"createJobsForComponent.js","sourceRoot":"","sources":["../../../../../pipeline/src/pipeline/createJobsForComponent.ts"],"names":[],"mappings":";;;AAAA,oCAAuC;AACvC,sCAAyC;AAMzC,iEAA8D;AAE9D,MAAM,6BAA6B,GAAG,CACpC,OAAyB,EACzB,IAAoB,EACpB,EAAE,CACF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;;IAAC,OAAA,CAAC;QACnC,SAAS,EAAE;YACT,GAAG,CAAC,MAAA,OAAO,CAAC,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;YACtC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB;QACD,GAAG,GAAG;KACP,CAAC,CAAA;CAAA,CAAC,CAAC;AACN,MAAM,aAAa,GAAG,CAAC,OAAyB,EAAE,EAAE;IAClD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IACnC,OAAO,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC,CAAC;AACK,MAAM,6BAA6B,GAAG,KAAK,EAChD,OAAyB,EACA,EAAE;IAC3B,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;YAC/B,CAAC,CAAC,mBAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CACvC,OAAoC,CACrC;YACH,CAAC,CAAC,EAAE;QACN,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,KAAK;YACtC,CAAC,CAAC,qBAAY,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACjE,CAAC,CAAC,EAAE;QACN,IAAA,mCAAgB,EAAC,OAAO,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AACrE,CAAC,CAAC;AAlBW,QAAA,6BAA6B,iCAkBxC"}
|
|
@@ -7,6 +7,7 @@ import type { PipelineType, WorkspaceBuildConfig } from "..";
|
|
|
7
7
|
import type { AgentConfig } from "./agent";
|
|
8
8
|
import type { Hooks } from "./hooks";
|
|
9
9
|
import type { ReleaseConfig } from "./release";
|
|
10
|
+
import type { VerifyConfig } from "../verify/types";
|
|
10
11
|
export declare const ALL_PIPELINE_TRIGGERS: readonly ["mainBranch", "mr", "taggedRelease"];
|
|
11
12
|
export type PipelineTrigger = (typeof ALL_PIPELINE_TRIGGERS)[number];
|
|
12
13
|
/**
|
|
@@ -71,6 +72,13 @@ export type DefaultEnvConfig = {
|
|
|
71
72
|
* environment variables
|
|
72
73
|
*/
|
|
73
74
|
vars?: EnvVars;
|
|
75
|
+
/**
|
|
76
|
+
* post-deploy verification: runs a job in the `verify` stage after the deploy,
|
|
77
|
+
* e.g. an e2e test suite against the freshly deployed environment.
|
|
78
|
+
*
|
|
79
|
+
* Runs in all deployed envs by default, disable per env with `verify: false`
|
|
80
|
+
*/
|
|
81
|
+
verify?: VerifyConfig | false;
|
|
74
82
|
};
|
|
75
83
|
export type DevLocalEnvConfig = {
|
|
76
84
|
vars?: EnvVars;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../pipeline/src/types/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../pipeline/src/types/config.ts"],"names":[],"mappings":";;;AAYa,QAAA,qBAAqB,GAAG;IACnC,YAAY;IACZ,IAAI;IACJ,eAAe;CACP,CAAC;AAGX;;;GAGG;AACU,QAAA,SAAS,GAAG;IACvB,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,IAAI,CAAC;KACjB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;KACb;CACO,CAAC;AAEX;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAAC,OAAwB,EAAE,EAAE,CAC/D,MAAM,CAAC,OAAO,CAAC,iBAAS,CAAC;KACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,QAAuC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC7D;KACA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAY,CAAC,CAAC;AALnB,QAAA,oBAAoB,wBAKD;AAEnB,QAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAS,CAAC,CAAC;AACtC,QAAA,iBAAiB,GAAG,oBAAyB,CAAC;AAGpD,MAAM,aAAa,GAAG,CAAC,GAAW,EAAkB,EAAE;IAC3D,OAAO,GAAG,IAAI,iBAAS,CAAC;AAC1B,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB"}
|
|
@@ -16,6 +16,12 @@ type MaybeArray<T> = T | T[];
|
|
|
16
16
|
export declare class VariableValueContainingReferences {
|
|
17
17
|
parts: VariableValuePart[];
|
|
18
18
|
constructor(parts: MaybeArray<VariableValuePart | VariableValueContainingReferences>);
|
|
19
|
+
/**
|
|
20
|
+
* concats values to this one and returns a new VariableValueContainingReferences.
|
|
21
|
+
* mirrors String.prototype.concat / BashExpression.concat so a VariableValue
|
|
22
|
+
* can be extended regardless of its concrete type
|
|
23
|
+
*/
|
|
24
|
+
concat(...values: Array<VariableValuePart | VariableValueContainingReferences>): VariableValueContainingReferences;
|
|
19
25
|
toString(options?: EscapeOptions): string;
|
|
20
26
|
}
|
|
21
27
|
export declare const createVariableValueContainingReferencesFromString: (value: string, options: {
|
|
@@ -29,6 +29,14 @@ class VariableValueContainingReferences {
|
|
|
29
29
|
constructor(parts) {
|
|
30
30
|
this.parts = (Array.isArray(parts) ? parts : [parts]).flatMap(part => part instanceof VariableValueContainingReferences ? part.parts : part === "" ? [] : [part]);
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* concats values to this one and returns a new VariableValueContainingReferences.
|
|
34
|
+
* mirrors String.prototype.concat / BashExpression.concat so a VariableValue
|
|
35
|
+
* can be extended regardless of its concrete type
|
|
36
|
+
*/
|
|
37
|
+
concat(...values) {
|
|
38
|
+
return new VariableValueContainingReferences([...this.parts, ...values]);
|
|
39
|
+
}
|
|
32
40
|
toString(options = {
|
|
33
41
|
quotes: false
|
|
34
42
|
}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableValueContainingReferences.js","sourceRoot":"","sources":["../../../../../pipeline/src/variables/VariableValueContainingReferences.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAExD,mDAAwE;AAExE,MAAa,qBAAqB;IAChC,YAAmB,SAA4B;QAA5B,cAAS,GAAT,SAAS,CAAmB;IAAG,CAAC;IAC5C,QAAQ;QACb,OAAO,2BAA2B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChE,CAAC;CACF;AALD,sDAKC;AACD,MAAa,iBAAiB;IAI5B,YAAY,aAAqB,EAAE,YAAoB;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;IAC1D,CAAC;CACF;AAZD,8CAYC;AASD,MAAa,iCAAiC;IAE5C,YACE,KAAwE;QAExE,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACrE,IAAI,YAAY,iCAAiC;YAC/C,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,KAAK,EAAE;gBACX,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAEM,QAAQ,CACb,UAAyB;QACvB,MAAM,EAAE,KAAK;KACd;QAED,OAAO,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAA,yBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,YAAY,+BAAc,EAAE,CAAC;gBAC1C,OAAO,IAAA,iCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"VariableValueContainingReferences.js","sourceRoot":"","sources":["../../../../../pipeline/src/variables/VariableValueContainingReferences.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAExD,mDAAwE;AAExE,MAAa,qBAAqB;IAChC,YAAmB,SAA4B;QAA5B,cAAS,GAAT,SAAS,CAAmB;IAAG,CAAC;IAC5C,QAAQ;QACb,OAAO,2BAA2B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChE,CAAC;CACF;AALD,sDAKC;AACD,MAAa,iBAAiB;IAI5B,YAAY,aAAqB,EAAE,YAAoB;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;IAC1D,CAAC;CACF;AAZD,8CAYC;AASD,MAAa,iCAAiC;IAE5C,YACE,KAAwE;QAExE,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACrE,IAAI,YAAY,iCAAiC;YAC/C,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,KAAK,EAAE;gBACX,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CACX,GAAG,MAAoE;QAEvE,OAAO,IAAI,iCAAiC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,QAAQ,CACb,UAAyB;QACvB,MAAM,EAAE,KAAK;KACd;QAED,OAAO,IAAI,CAAC,KAAK;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAA,yBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,YAAY,+BAAc,EAAE,CAAC;gBAC1C,OAAO,IAAA,iCAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;CACF;AA1CD,8EA0CC;AAED,qDAAqD;AACrD,mEAAmE;AACnE,MAAM,KAAK,GAAG,4BAA4B,CAAC;AACpC,MAAM,iDAAiD,GAAG,CAC/D,KAAa,EACb,OAAkC,EAClC,EAAE;IACF,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,IAAI,KAAU,CAAC;IACf,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;QAE/D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CACR,IAAI,iBAAiB,CACnB,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAC3C,YAAY,CACb,CACF,CAAC;QACF,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,iCAAiC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AArBW,QAAA,iDAAiD,qDAqB5D"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import type { VariableValue } from "./VariableValue";
|
|
2
|
-
|
|
3
|
-
export declare const resolveAllReferences: (values: Record<string, VariableValueContainingReferences>, getEnvVars: (componentName: string) => Promise<Record<string, VariableValue | null | undefined>>) => Promise<Record<string, VariableValueContainingReferences>>;
|
|
2
|
+
export declare const resolveAllReferences: <T extends Record<string, VariableValue>>(values: T, getEnvVars: (componentName: string) => Promise<Record<string, VariableValue | null | undefined>>) => Promise<T>;
|
|
@@ -6,16 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.resolveAllReferences = void 0;
|
|
7
7
|
const VariableValueContainingReferences_1 = require("./VariableValueContainingReferences");
|
|
8
8
|
const resolveAllReferencesOnce_1 = require("./resolveAllReferencesOnce");
|
|
9
|
+
const hasUnresolvedReferences = value => value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences && value.parts.some(part => part instanceof VariableValueContainingReferences_1.VariableReference);
|
|
9
10
|
const resolveAllReferences = async (values, getEnvVars) => {
|
|
10
11
|
// replace until there aren't any references left
|
|
11
12
|
let result = values;
|
|
12
13
|
let i = 0;
|
|
13
|
-
while (Object.values(result).some(
|
|
14
|
+
while (Object.values(result).some(hasUnresolvedReferences)) {
|
|
14
15
|
const replaced = await (0, resolveAllReferencesOnce_1.resolveAllReferencesOnce)(result, getEnvVars);
|
|
15
16
|
result = replaced;
|
|
16
17
|
i++;
|
|
17
18
|
if (i > 1000) {
|
|
18
|
-
const unresolved = Object.entries(result).filter(([key, value]) => value
|
|
19
|
+
const unresolved = Object.entries(result).filter(([key, value]) => hasUnresolvedReferences(value));
|
|
19
20
|
throw new Error("Infinite loop detected in these variables: " + unresolved.map(([key, value]) => `${key} (last reference: ${value.parts.find(part => part instanceof VariableValueContainingReferences_1.VariableReference)})`).join(", "));
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveAllReferences.js","sourceRoot":"","sources":["../../../../../pipeline/src/variables/resolveAllReferences.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"resolveAllReferences.js","sourceRoot":"","sources":["../../../../../pipeline/src/variables/resolveAllReferences.ts"],"names":[],"mappings":";;;AACA,2FAG6C;AAC7C,yEAAkG;AAElG,MAAM,uBAAuB,GAAG,CAAC,KAAuC,EAAE,EAAE,CAC1E,KAAK,YAAY,qEAAiC;IAClD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,qDAAiB,CAAC,CAAC;AAEzD,MAAM,oBAAoB,GAAG,KAAK,EAGvC,MAAS,EACT,UAE8D,EAClD,EAAE;IACd,iDAAiD;IACjD,IAAI,MAAM,GAAG,MAAM,CAAC;IAEpB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,IAAA,mDAAwB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,GAAG,QAAQ,CAAC;QAClB,CAAC,EAAE,CAAC;QACJ,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAChE,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;YAEF,MAAM,IAAI,KAAK,CACb,6CAA6C;gBAC3C,UAAU;qBACP,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,GAAG,GAAG,qBACJ,KACD,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,qDAAiB,CAAC,GAAG,CAC/D;qBACA,IAAI,CAAC,IAAI,CAAC,CAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAtCW,QAAA,oBAAoB,wBAsC/B"}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
1
|
import type { VariableValue } from "./VariableValue";
|
|
2
|
-
|
|
3
|
-
export declare const resolveAllReferencesOnce: (values: Record<string, VariableValueContainingReferences>, getEnvVars: (componentName: string) => Promise<Record<string, VariableValue | undefined | null>>) => Promise<{
|
|
4
|
-
[k: string]: VariableValueContainingReferences;
|
|
5
|
-
}>;
|
|
2
|
+
export declare const resolveAllReferencesOnce: <T extends Record<string, VariableValue>>(values: T, getEnvVars: (componentName: string) => Promise<Record<string, VariableValue | undefined | null>>) => Promise<T>;
|
|
@@ -7,10 +7,10 @@ exports.resolveAllReferencesOnce = void 0;
|
|
|
7
7
|
const VariableValueContainingReferences_1 = require("./VariableValueContainingReferences");
|
|
8
8
|
const resolveReferencesOnce_1 = require("./resolveReferencesOnce");
|
|
9
9
|
const resolveAllReferencesOnce = async (values, getEnvVars) => {
|
|
10
|
-
const allReferences = Object.values(values).flatMap(value => value
|
|
10
|
+
const allReferences = Object.values(values).flatMap(value => value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences ? value.parts.filter(part => part instanceof VariableValueContainingReferences_1.VariableReference) : []);
|
|
11
11
|
const allComponentsUnique = Array.from(new Set(allReferences.map(reference => reference.componentName)));
|
|
12
12
|
const allEnvVarsInComponents = Object.fromEntries(await Promise.all(allComponentsUnique.map(async componentName => [componentName, await getEnvVars(componentName)])));
|
|
13
|
-
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, value
|
|
13
|
+
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, value instanceof VariableValueContainingReferences_1.VariableValueContainingReferences ? (0, resolveReferencesOnce_1.resolveReferencesOnce)(value, ({
|
|
14
14
|
componentName,
|
|
15
15
|
variableName
|
|
16
16
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveAllReferencesOnce.js","sourceRoot":"","sources":["../../../../../pipeline/src/variables/resolveAllReferencesOnce.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"resolveAllReferencesOnce.js","sourceRoot":"","sources":["../../../../../pipeline/src/variables/resolveAllReferencesOnce.ts"],"names":[],"mappings":";;;AACA,2FAG6C;AAC7C,mEAAgE;AAEzD,MAAM,wBAAwB,GAAG,KAAK,EAG3C,MAAS,EACT,UAE8D,EAClD,EAAE;IACd,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5D,KAAK,YAAY,qEAAiC;QAChD,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,qDAAiB,CACpB;QAC3B,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CACpC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CACnE,CAAC;IAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAC/C,MAAM,OAAO,CAAC,GAAG,CACf,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC;QAC/C,aAAa;QACb,MAAM,UAAU,CAAC,aAAa,CAAC;KAChC,CAEA,CACF,CACF,CAAC;IAEF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,GAAG;QACH,KAAK,YAAY,qEAAiC;YAChD,CAAC,CAAC,IAAA,6CAAqB,EAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;gBAC/D,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC,CAAC;YACJ,CAAC,CAAC,KAAK;KACV,CAAC,CACE,CAAC;AACT,CAAC,CAAC;AAzCW,QAAA,wBAAwB,4BAyCnC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createVerifyJobs = exports.VERIFY_JOB_NAME = void 0;
|
|
7
|
+
const createArtifactsConfig_1 = require("../build/base/createArtifactsConfig");
|
|
8
|
+
const createJobCache_1 = require("../build/cache/createJobCache");
|
|
9
|
+
const cache_1 = require("../build/node/cache");
|
|
10
|
+
const constants_1 = require("../build/node/constants");
|
|
11
|
+
const yarn_1 = require("../build/node/yarn");
|
|
12
|
+
const deploy_1 = require("../deploy");
|
|
13
|
+
const deploy_2 = require("../deploy/base/deploy");
|
|
14
|
+
const runner_1 = require("../runner");
|
|
15
|
+
const utils_1 = require("../utils");
|
|
16
|
+
exports.VERIFY_JOB_NAME = "🔍 verify";
|
|
17
|
+
const createVerifyJobs = async context => {
|
|
18
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
19
|
+
const verifyConfig = context.componentConfig.verify;
|
|
20
|
+
if (!verifyConfig) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
24
|
+
if (!deployConfig) {
|
|
25
|
+
// nothing is deployed, so there is nothing to verify
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
const isNodeBuild = context.build.type !== "disabled" && context.build.buildType === "node";
|
|
29
|
+
const [yarnInstall, nodeCache] = isNodeBuild ? await Promise.all([(0, yarn_1.getYarnInstall)(context), (0, cache_1.getNodeCache)(context, "pull")]) : [null, null];
|
|
30
|
+
const setupScript = (_d = (_c = (_b = deploy_1.DEPLOY_TYPES[deployConfig.type]).verifyJobSetupScript) === null || _c === void 0 ? void 0 : _c.call(_b, context)) !== null && _d !== void 0 ? _d : [];
|
|
31
|
+
return [{
|
|
32
|
+
name: exports.VERIFY_JOB_NAME,
|
|
33
|
+
stage: "verify",
|
|
34
|
+
envMode: "stagePerEnv",
|
|
35
|
+
// wait for this component's own deploy
|
|
36
|
+
needsStages: [{
|
|
37
|
+
stage: "deploy",
|
|
38
|
+
artifacts: false
|
|
39
|
+
}],
|
|
40
|
+
// ...and for the deploys of the components listed in waitFor
|
|
41
|
+
needs: ((_e = verifyConfig.waitFor) !== null && _e !== void 0 ? _e : []).map(componentName => ({
|
|
42
|
+
job: deploy_2.DEPLOY_JOB_NAME,
|
|
43
|
+
componentName,
|
|
44
|
+
artifacts: false
|
|
45
|
+
})),
|
|
46
|
+
image: (_f = verifyConfig.jobImage) !== null && _f !== void 0 ? _f : (0, runner_1.getRunnerImage)("jobs-testing-chrome"),
|
|
47
|
+
cache: nodeCache ? (0, createJobCache_1.createJobCacheFromCacheConfigs)(context, nodeCache) : undefined,
|
|
48
|
+
variables: {
|
|
49
|
+
...context.environment.envVars
|
|
50
|
+
},
|
|
51
|
+
runnerVariables: {
|
|
52
|
+
...constants_1.NODE_RUNNER_BUILD_VARIABLES,
|
|
53
|
+
...((_g = verifyConfig.runnerVariables) !== null && _g !== void 0 ? _g : {})
|
|
54
|
+
},
|
|
55
|
+
script: [...setupScript, ...(yarnInstall ? (0, yarn_1.ensureNodeVersion)(context) : []), `cd ${context.build.dir}`, ...(yarnInstall !== null && yarnInstall !== void 0 ? yarnInstall : []), ...(0, utils_1.ensureArray)(verifyConfig.command)],
|
|
56
|
+
allow_failure: verifyConfig.allowFailure,
|
|
57
|
+
...(0, createArtifactsConfig_1.createArtifactsConfig)(context.build.dir, verifyConfig.artifactsReports, verifyConfig.artifacts)
|
|
58
|
+
}];
|
|
59
|
+
};
|
|
60
|
+
exports.createVerifyJobs = createVerifyJobs;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createVerifyJobs.js","sourceRoot":"","sources":["../../../../../pipeline/src/verify/createVerifyJobs.ts"],"names":[],"mappings":";;;AAAA,+EAA4E;AAC5E,kEAA+E;AAC/E,+CAAmD;AACnD,uDAAsE;AACtE,6CAAuE;AACvE,sCAAyC;AACzC,kDAAwD;AACxD,sCAA2C;AAG3C,oCAAuC;AAE1B,QAAA,eAAe,GAAG,WAAW,CAAC;AAEpC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAyB,EACA,EAAE;;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,qDAAqD;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GACf,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC;IAE1E,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,WAAW;QAC1C,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAA,qBAAc,EAAC,OAAO,CAAC;YACvB,IAAA,oBAAY,EAAC,OAAO,EAAE,MAAM,CAAC;SAC9B,CAAC;QACJ,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjB,MAAM,WAAW,GACf,MAAA,MAAA,MAAA,qBAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,oBAAoB,mDAAG,OAAO,CAAC,mCAAI,EAAE,CAAC;IAExE,OAAO;QACL;YACE,IAAI,EAAE,uBAAe;YACrB,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,aAAa;YACtB,uCAAuC;YACvC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACpD,6DAA6D;YAC7D,KAAK,EAAE,CAAC,MAAA,YAAY,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBAC1D,GAAG,EAAE,wBAAe;gBACpB,aAAa;gBACb,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,qBAAqB,CAAC;YACrE,KAAK,EAAE,SAAS;gBACd,CAAC,CAAC,IAAA,+CAA8B,EAAC,OAAO,EAAE,SAAS,CAAC;gBACpD,CAAC,CAAC,SAAS;YACb,SAAS,EAAE;gBACT,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO;aAC/B;YACD,eAAe,EAAE;gBACf,GAAG,uCAA2B;gBAC9B,GAAG,CAAC,MAAA,YAAY,CAAC,eAAe,mCAAI,EAAE,CAAC;aACxC;YACD,MAAM,EAAE;gBACN,GAAG,WAAW;gBACd,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;gBACtB,GAAG,IAAA,mBAAW,EAAC,YAAY,CAAC,OAAO,CAAC;aACrC;YACD,aAAa,EAAE,YAAY,CAAC,YAAY;YACxC,GAAG,IAAA,6CAAqB,EACtB,OAAO,CAAC,KAAK,CAAC,GAAG,EACjB,YAAY,CAAC,gBAAgB,EAC7B,YAAY,CAAC,SAAS,CACvB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAlEW,QAAA,gBAAgB,oBAkE3B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return m[k];
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
} : function (o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
});
|
|
19
|
+
var __exportStar = this && this.__exportStar || function (m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
});
|
|
25
|
+
__exportStar(require("./types"), exports);
|
|
26
|
+
__exportStar(require("./createVerifyJobs"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../pipeline/src/verify/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,qDAAmC"}
|