@payfit/nx-core 4.46.0 → 4.46.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/README.md +7 -3
- package/dist/src/executors/publisher/lambda.js +14 -4
- package/dist/src/executors/publisher/lambda.js.map +1 -1
- package/dist/src/executors/publisher/schema.json +4 -0
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/common/exec.js +1 -0
- package/dist/src/utils/common/exec.js.map +1 -1
- package/dist/src/utils/lambda/aws-lambda.d.ts +2 -1
- package/dist/src/utils/lambda/aws-lambda.js +6 -11
- package/dist/src/utils/lambda/aws-lambda.js.map +1 -1
- package/dist/src/utils/lambda/oci.js +1 -5
- package/dist/src/utils/lambda/oci.js.map +1 -1
- package/dist/src/utils/lambda/publish.d.ts +2 -1
- package/dist/src/utils/lambda/publish.js +3 -2
- package/dist/src/utils/lambda/publish.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -83,8 +83,9 @@ When using Lambda functions, you can configure the following parameters in your
|
|
|
83
83
|
{
|
|
84
84
|
"metadata": {
|
|
85
85
|
"lambdaFunctions": ["your-lambda-registry"],
|
|
86
|
-
"lambdaStacks": ["
|
|
87
|
-
"lambdaBucket": "your-lambda-bucket"
|
|
86
|
+
"lambdaStacks": ["your-lambda-stack"],
|
|
87
|
+
"lambdaBucket": "your-lambda-bucket",
|
|
88
|
+
"lambdaHealthCheckPayload": "your-lambda-payload-json-string-formatted"
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
```
|
|
@@ -94,6 +95,7 @@ These fields are used to:
|
|
|
94
95
|
- `lambdaFunctions`: Lambda functions to deploy
|
|
95
96
|
- `lambdaStacks`: Spacelift stacks deploying lambdas
|
|
96
97
|
- `lambdaBucket`: the S3 bucket where Lambda function zip archives are stored
|
|
98
|
+
- `lambdaHealthCheckPayload`: Payload used for smoke tests invocation
|
|
97
99
|
|
|
98
100
|
If `lambdaBucket` is not specified, the plugin will fall back to the default bucket: `payfit-shared-lambda-artifacts`.
|
|
99
101
|
|
|
@@ -114,7 +116,8 @@ You'll need to add the following metadata to your project's `project.json` file:
|
|
|
114
116
|
"helmChartFolder": "your-helm-folder",
|
|
115
117
|
"lambdaFunctions": ["your-lambda-registry"],
|
|
116
118
|
"lambdaStacks": ["your-lambda-stack"],
|
|
117
|
-
"lambdaBucket": "your-lambda-bucket"
|
|
119
|
+
"lambdaBucket": "your-lambda-bucket",
|
|
120
|
+
"lambdaHealthCheckPayload": "your-lambda-payload-json-string-formatted"
|
|
118
121
|
}
|
|
119
122
|
}
|
|
120
123
|
```
|
|
@@ -128,6 +131,7 @@ These fields are used to:
|
|
|
128
131
|
- `lambdaStacks`: the spacelift stacks containing lambda to deploy
|
|
129
132
|
- `lambdaFunctions`: the lambda functions to deploy
|
|
130
133
|
- `lambdaBucket`: the S3 bucket where Lambda function zip archives are stored (defaults to `payfit-shared-lambda-artifacts`)
|
|
134
|
+
- `lambdaHealthCheckPayload`: Payload used for smoke tests invocation before lambda being released
|
|
131
135
|
|
|
132
136
|
## Automatic Release Target Inference
|
|
133
137
|
|
|
@@ -39,17 +39,27 @@ async function publishLambda(options, context, version, projectRoot, projectDist
|
|
|
39
39
|
if (!gitBranchName)
|
|
40
40
|
throw new Error('Unable to get current Git branch');
|
|
41
41
|
if (!options.lambdaFunctions) {
|
|
42
|
-
logger_1.consola.warn(
|
|
42
|
+
logger_1.consola.warn(`No lambda functions provided in project ${context.projectName} no "lambdaFunctions" parameter in project.json metadata, skipping`);
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
45
|
if (!options.lambdaStacks) {
|
|
46
46
|
logger_1.consola.error('No lambda spacelift stacks provided, add "lambdaStacks" to your project.json metadata');
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
|
-
if (!options.
|
|
50
|
-
logger_1.consola.error('
|
|
49
|
+
if (!options.lambdaHealthCheckPayload) {
|
|
50
|
+
logger_1.consola.error('A healthCheck payload should be defined to run smoke test before releasing the lambda', 'Add "lambdaHealthCheckPayload" to your project.json metadata');
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
+
else {
|
|
54
|
+
const lambdaPayload = options.lambdaHealthCheckPayload;
|
|
55
|
+
try {
|
|
56
|
+
JSON.parse(lambdaPayload);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
logger_1.consola.error(`lambdaHealthCheckPayload should be a JSON string, got ${lambdaPayload}`);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
53
63
|
if (isDryRun) {
|
|
54
64
|
logger_1.consola.box(`Would have published lambda artefact to S3 ${zipFileNameS3} but --dry-run is enabled`);
|
|
55
65
|
return;
|
|
@@ -63,7 +73,7 @@ async function publishLambda(options, context, version, projectRoot, projectDist
|
|
|
63
73
|
await (0, s3_1.pushToS3)(zipPath, zipFileNameS3);
|
|
64
74
|
logger_1.consola.success(`Lambda artefact successfully pushed to S3 at ${zipFileNameS3}`);
|
|
65
75
|
logger_1.consola.box(`Creating new Lambda version and running smoke tests`);
|
|
66
|
-
await (0, publish_1.createLambdaVersion)(options.lambdaStacks, options.lambdaFunctions, version);
|
|
76
|
+
await (0, publish_1.createLambdaVersion)(options.lambdaStacks, options.lambdaFunctions, version, options.lambdaHealthCheckPayload);
|
|
67
77
|
const packageJsonPath = (0, path_1.join)(projectDist, 'package.json');
|
|
68
78
|
for (const registry of options.lambdaFunctions) {
|
|
69
79
|
logger_1.consola.info(`Pushing empty image to ECR ${process.env.AWS_ECR_REGISTRY}/${registry}:${version}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":";;AA+BA,
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,10 @@
|
|
|
52
52
|
"lambdaFunctions": {
|
|
53
53
|
"type": "array",
|
|
54
54
|
"description": "The list of lambda functions inside the workload"
|
|
55
|
+
},
|
|
56
|
+
"lambdaHealthCheckPayload": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"description": "Health check payload for the lambda functions. Must be in JSON string format"
|
|
55
59
|
}
|
|
56
60
|
},
|
|
57
61
|
"required": []
|
package/dist/src/index.js
CHANGED
|
@@ -49,6 +49,10 @@ async function createNodesInternal(configFilePath, options, context) {
|
|
|
49
49
|
? projectConfiguration.metadata &&
|
|
50
50
|
projectConfiguration.metadata['lambdaFunctions']
|
|
51
51
|
: undefined;
|
|
52
|
+
const lambdaHealthCheckPayload = isLambdaProject
|
|
53
|
+
? projectConfiguration.metadata &&
|
|
54
|
+
projectConfiguration.metadata['lambdaHealthCheckPayload']
|
|
55
|
+
: undefined;
|
|
52
56
|
const isRootProject = projectRoot === '.';
|
|
53
57
|
let release = null;
|
|
54
58
|
if (isHelmProject || isDockerProject || isLambdaProject) {
|
|
@@ -66,6 +70,7 @@ async function createNodesInternal(configFilePath, options, context) {
|
|
|
66
70
|
lambdaBucket,
|
|
67
71
|
lambdaStacks,
|
|
68
72
|
lambdaFunctions,
|
|
73
|
+
lambdaHealthCheckPayload,
|
|
69
74
|
},
|
|
70
75
|
metadata: {
|
|
71
76
|
technologies: ['helm', 'docker', 'lambda'],
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA4BA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ function execWrapperFromString(cmd, options = {}) {
|
|
|
24
24
|
// Log the error to have it visible in the console
|
|
25
25
|
// Throw if requested
|
|
26
26
|
if (options?.throwOnError) {
|
|
27
|
+
logger_1.consola.error(`Command '${cmd}' failed with exit code ${output.exitCode}:\n ${output.stderr}`);
|
|
27
28
|
throw new Error(`Command '${cmd}' failed with exit code ${output.exitCode}:\n ${output.stderr}`);
|
|
28
29
|
}
|
|
29
30
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/utils/common/exec.ts"],"names":[],"mappings":";;;AAEA,mDAA6C;AAC7C,uCAA4B;AAE5B,qCAAkC;AAElC,SAAS,wBAAwB,CAAC,MAAgB;IAChD,OAAO,CACL,OAAe,EACf,OAAiB,EAAE,EACnB,UAA4B,EAAE,EAC9B,EAAE;QACF,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC,CAAA;AACH,CAAC;AAED,4DAA4D;AAC5D,SAAS,qBAAqB,CAC5B,GAAW,EACX,UAA4B,EAAE;IAE9B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,WAAW,GAAG,wBAAwB,CAAC,YAAC,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAElD,yCAAyC;IACzC,mDAAmD;IACnD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI;IACjC,kBAAkB;IAClB,MAAM,CAAC,EAAE;QACP,8BAA8B;QAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,kDAAkD;YAClD,qBAAqB;YACrB,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,2BAA2B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CAChF,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gBAAO,CAAC,IAAI,CACV,YAAY,GAAG,2BAA2B,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,CACjF,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IACD,sCAAsC;IACtC,KAAK,CAAC,EAAE;QACN,yCAAyC;QACzC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,gBAAO,CAAC,KAAK,CAAC,YAAY,GAAG,qBAAqB,KAAK,EAAE,CAAC,CAAA;YAC1D,MAAM,KAAK,CAAA;QACb,CAAC;QAED,8DAA8D;QAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CACF,CAAA;IAED,gFAAgF;IAChF,8DAA8D;IAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC5C,MAAM,EACN,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CACrD,CAAA;IAED,OAAO,cAAwB,CAAA;AACjC,CAAC;AAEY,QAAA,IAAI,GAAG,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/utils/common/exec.ts"],"names":[],"mappings":";;;AAEA,mDAA6C;AAC7C,uCAA4B;AAE5B,qCAAkC;AAElC,SAAS,wBAAwB,CAAC,MAAgB;IAChD,OAAO,CACL,OAAe,EACf,OAAiB,EAAE,EACnB,UAA4B,EAAE,EAC9B,EAAE;QACF,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC,CAAA;AACH,CAAC;AAED,4DAA4D;AAC5D,SAAS,qBAAqB,CAC5B,GAAW,EACX,UAA4B,EAAE;IAE9B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,WAAW,GAAG,wBAAwB,CAAC,YAAC,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAElD,yCAAyC;IACzC,mDAAmD;IACnD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI;IACjC,kBAAkB;IAClB,MAAM,CAAC,EAAE;QACP,8BAA8B;QAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,kDAAkD;YAClD,qBAAqB;YACrB,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;gBAC1B,gBAAO,CAAC,KAAK,CACX,YAAY,GAAG,2BAA2B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CAChF,CAAA;gBACD,MAAM,IAAI,KAAK,CACb,YAAY,GAAG,2BAA2B,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE,CAChF,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gBAAO,CAAC,IAAI,CACV,YAAY,GAAG,2BAA2B,MAAM,CAAC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,CACjF,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IACD,sCAAsC;IACtC,KAAK,CAAC,EAAE;QACN,yCAAyC;QACzC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,gBAAO,CAAC,KAAK,CAAC,YAAY,GAAG,qBAAqB,KAAK,EAAE,CAAC,CAAA;YAC1D,MAAM,KAAK,CAAA;QACb,CAAC;QAED,8DAA8D;QAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CACF,CAAA;IAED,gFAAgF;IAChF,8DAA8D;IAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAC5C,MAAM,EACN,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CACrD,CAAA;IAED,OAAO,cAAwB,CAAA;AACjC,CAAC;AAEY,QAAA,IAAI,GAAG,qBAAqB,CAAA"}
|
|
@@ -18,8 +18,9 @@ export declare function getLatestVersion(lambdaARN: string, envVars: Record<stri
|
|
|
18
18
|
*
|
|
19
19
|
* @param stackId - Spacelift stack ID to determine environment
|
|
20
20
|
* @param lambdaFunctions - Array of Lambda function names to test
|
|
21
|
+
* @param lambdaHealthCheckPayload
|
|
21
22
|
*/
|
|
22
|
-
export declare function runSmokeTests(stackId: string, lambdaFunctions: string[]): Promise<void>;
|
|
23
|
+
export declare function runSmokeTests(stackId: string, lambdaFunctions: string[], lambdaHealthCheckPayload: string): Promise<void>;
|
|
23
24
|
/**
|
|
24
25
|
* Creates or updates a Lambda function alias to point to latest version.
|
|
25
26
|
*
|
|
@@ -36,7 +36,7 @@ function retrieveAccoundId(stackId) {
|
|
|
36
36
|
*/
|
|
37
37
|
async function getLatestVersion(lambdaARN, envVars) {
|
|
38
38
|
logger_1.consola.log(`Retrieving latest version for function ${lambdaARN}`);
|
|
39
|
-
const latestVersionResult = await (0, exec_1.exec)(`aws lambda list-versions-by-function --function-name ${lambdaARN} --query 'Versions[?Version!=\`$LATEST\`] | [-1].Version' --output text`, { throwOnError:
|
|
39
|
+
const latestVersionResult = await (0, exec_1.exec)(`aws lambda list-versions-by-function --function-name ${lambdaARN} --query 'Versions[?Version!=\`$LATEST\`] | [-1].Version' --output text`, { throwOnError: true, nodeOptions: { env: envVars } });
|
|
40
40
|
if (latestVersionResult.exitCode !== 0) {
|
|
41
41
|
logger_1.consola.error(`AWS Lambda list-versions-by-function failed: ${latestVersionResult.stderr}`);
|
|
42
42
|
throw new Error(`AWS Lambda list-versions-by-function failed: ${latestVersionResult.stderr}`);
|
|
@@ -49,8 +49,9 @@ async function getLatestVersion(lambdaARN, envVars) {
|
|
|
49
49
|
*
|
|
50
50
|
* @param stackId - Spacelift stack ID to determine environment
|
|
51
51
|
* @param lambdaFunctions - Array of Lambda function names to test
|
|
52
|
+
* @param lambdaHealthCheckPayload
|
|
52
53
|
*/
|
|
53
|
-
async function runSmokeTests(stackId, lambdaFunctions) {
|
|
54
|
+
async function runSmokeTests(stackId, lambdaFunctions, lambdaHealthCheckPayload) {
|
|
54
55
|
const [environment, accountId] = retrieveAccoundId(stackId);
|
|
55
56
|
const credentials = await assumeEnvironmentSpecificRole(environment);
|
|
56
57
|
const envVars = getAssumedRoleEnvVars(credentials);
|
|
@@ -60,9 +61,7 @@ async function runSmokeTests(stackId, lambdaFunctions) {
|
|
|
60
61
|
const lambdaFullARN = `${lambdaARN}:${latestVersion}`;
|
|
61
62
|
try {
|
|
62
63
|
logger_1.consola.log(`Running smoke tests for ${functionName} in env ${environment}`);
|
|
63
|
-
const
|
|
64
|
-
const invokeResult = await (0, exec_1.exec)(`aws lambda invoke --function-name ${lambdaFullARN} --payload ${btoa(emptyPayload)} /tmp/lambda-response.json`, { throwOnError: false, nodeOptions: { env: envVars } });
|
|
65
|
-
logger_1.consola.log('invokeResult :', invokeResult);
|
|
64
|
+
const invokeResult = await (0, exec_1.exec)(`aws lambda invoke --function-name ${lambdaFullARN} --payload ${btoa(lambdaHealthCheckPayload)} /tmp/lambda-response.json`, { throwOnError: true, nodeOptions: { env: envVars } });
|
|
66
65
|
if (JSON.parse(invokeResult.stdout)['FunctionError']) {
|
|
67
66
|
const errorFile = (0, devkit_1.readJsonFile)('/tmp/lambda-response.json');
|
|
68
67
|
const errorMessage = errorFile.errorMessage;
|
|
@@ -99,13 +98,9 @@ async function createOrUpdateLambdaAlias(accountId, lambdaARN, alias, envVars) {
|
|
|
99
98
|
logger_1.consola.log(`${aliasExists ? 'Updating' : 'Creating'} alias ${alias} for function ${lambdaARN} with version ${latestVersion}`);
|
|
100
99
|
logger_1.consola.log(`Executing command aws lambda ${aliasAction} --function-name ${lambdaARN} --name ${alias} --function-version ${latestVersion}`);
|
|
101
100
|
const result = await (0, exec_1.exec)(`aws lambda ${aliasAction} --function-name ${lambdaARN} --name ${alias} --function-version ${latestVersion}`, {
|
|
102
|
-
throwOnError:
|
|
101
|
+
throwOnError: true,
|
|
103
102
|
nodeOptions: { env: envVars },
|
|
104
103
|
});
|
|
105
|
-
if (result.exitCode !== 0) {
|
|
106
|
-
logger_1.consola.error(`Error when ${aliasAction} ${alias} for function ${lambdaARN} with version ${latestVersion}: ${result.stderr}`);
|
|
107
|
-
throw new Error(`AWS Lambda ${aliasAction} failed: ${result.stderr}`);
|
|
108
|
-
}
|
|
109
104
|
const response = JSON.parse(result.stdout);
|
|
110
105
|
if (response.Name !== alias) {
|
|
111
106
|
throw new Error(`Lambda alias ${alias} ${aliasExists ? 'update' : 'creation'} failed for function ${lambdaARN} in ${accountId}. Response name should match alias`);
|
|
@@ -124,7 +119,7 @@ async function assumeEnvironmentSpecificRole(environment) {
|
|
|
124
119
|
const roleArn = `arn:aws:iam::${accountId}:role/${roleName}`;
|
|
125
120
|
logger_1.consola.log(`Assuming role ${roleName} for environment ${environment}`);
|
|
126
121
|
try {
|
|
127
|
-
const result = await (0, exec_1.exec)(`aws sts assume-role --role-arn ${roleArn} --role-session-name nx-core`, { throwOnError:
|
|
122
|
+
const result = await (0, exec_1.exec)(`aws sts assume-role --role-arn ${roleArn} --role-session-name nx-core`, { throwOnError: true });
|
|
128
123
|
if (result.exitCode !== 0) {
|
|
129
124
|
logger_1.consola.error(`AWS STS assume-role failed: ${result.stderr}`);
|
|
130
125
|
throw new Error(`AWS STS assume-role failed: ${result.stderr}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/aws-lambda.ts"],"names":[],"mappings":";;AAqBA,8CAKC;AASD,4CAoBC;
|
|
1
|
+
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../../../src/utils/lambda/aws-lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,8 @@ async function pushImageToEcr(lambdaEcrRepository, tag, pathToPackageJson) {
|
|
|
15
15
|
throw new Error('AWS_ECR_REGISTRY environment variable is not set');
|
|
16
16
|
}
|
|
17
17
|
const uploadToOci = await (0, exec_1.exec)(`oras push ${process.env.AWS_ECR_REGISTRY}/${lambdaEcrRepository}:${tag} --disable-path-validation --artifact-type application/vnd.payfit.lambda.manifest ${pathToPackageJson}`, {
|
|
18
|
-
throwOnError:
|
|
18
|
+
throwOnError: true,
|
|
19
19
|
});
|
|
20
20
|
consola_1.consola.log(uploadToOci.stdout);
|
|
21
|
-
if (uploadToOci.exitCode !== 0) {
|
|
22
|
-
consola_1.consola.error(`Failed to push image to ECR: ${uploadToOci.stderr || 'Unknown error'}`);
|
|
23
|
-
throw new Error(`Failed to push image to ECR: ${uploadToOci.stderr || 'Unknown error'}`);
|
|
24
|
-
}
|
|
25
21
|
}
|
|
26
22
|
//# sourceMappingURL=oci.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../src/utils/lambda/oci.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../src/utils/lambda/oci.ts"],"names":[],"mappings":";;AAWA,wCAeC;AA1BD,qCAAiC;AAEjC,yCAAqC;AAErC;;;;;;GAMG;AACI,KAAK,UAAU,cAAc,CAClC,mBAA2B,EAC3B,GAAW,EACX,iBAAyB;IAEzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,WAAI,EAC5B,aAAa,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,mBAAmB,IAAI,GAAG,qFAAqF,iBAAiB,EAAE,EAC/K;QACE,YAAY,EAAE,IAAI;KACnB,CACF,CAAA;IACD,iBAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC"}
|
|
@@ -9,5 +9,6 @@
|
|
|
9
9
|
* @param stacksName - Array of Spacelift stack IDs
|
|
10
10
|
* @param lambdaFunctions - Array of Lambda function names
|
|
11
11
|
* @param version - Version string for deployment
|
|
12
|
+
* @param lambdaHealthCheckPayload
|
|
12
13
|
*/
|
|
13
|
-
export declare function createLambdaVersion(stacksName: string[], lambdaFunctions: string[], version: string): Promise<void>;
|
|
14
|
+
export declare function createLambdaVersion(stacksName: string[], lambdaFunctions: string[], version: string, lambdaHealthCheckPayload: string): Promise<void>;
|
|
@@ -18,8 +18,9 @@ const spacelift_1 = require("./spacelift");
|
|
|
18
18
|
* @param stacksName - Array of Spacelift stack IDs
|
|
19
19
|
* @param lambdaFunctions - Array of Lambda function names
|
|
20
20
|
* @param version - Version string for deployment
|
|
21
|
+
* @param lambdaHealthCheckPayload
|
|
21
22
|
*/
|
|
22
|
-
async function createLambdaVersion(stacksName, lambdaFunctions, version) {
|
|
23
|
+
async function createLambdaVersion(stacksName, lambdaFunctions, version, lambdaHealthCheckPayload) {
|
|
23
24
|
const graphqlService = new graphql_service_1.GraphQlService();
|
|
24
25
|
const spaceliftService = new spacelift_service_1.SpaceliftService(graphqlService);
|
|
25
26
|
const processEnvironment = async (stackId) => {
|
|
@@ -29,7 +30,7 @@ async function createLambdaVersion(stacksName, lambdaFunctions, version) {
|
|
|
29
30
|
logger_1.consola.log(`Updating Spacelift stack ${stackId} TF_VAR_lambda_version with version ${currentCommitSha}`);
|
|
30
31
|
await (0, spacelift_1.updateSpaceliftEnvironmentVariable)(spaceliftService, stackId, 'TF_VAR_lambda_version', version);
|
|
31
32
|
await (0, spacelift_1.triggerSpaceliftStack)(spaceliftService, stackId);
|
|
32
|
-
await (0, aws_lambda_1.runSmokeTests)(stackId, lambdaFunctions);
|
|
33
|
+
await (0, aws_lambda_1.runSmokeTests)(stackId, lambdaFunctions, lambdaHealthCheckPayload);
|
|
33
34
|
};
|
|
34
35
|
const publishFunction = async (stackId) => {
|
|
35
36
|
await (0, aws_lambda_1.createOrMoveAlias)(stackId, lambdaFunctions, version);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/utils/lambda/publish.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/utils/lambda/publish.ts"],"names":[],"mappings":";;AAuBA,kDAyCC;AAhED,6CAAyD;AACzD,6CAA0C;AAC1C,sEAAiE;AACjE,0EAAqE;AACrE,6CAA+D;AAC/D,2CAGoB;AAEpB;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,mBAAmB,CACvC,UAAoB,EACpB,eAAyB,EACzB,OAAe,EACf,wBAAgC;IAEhC,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAA;IAC3C,MAAM,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,cAAc,CAAC,CAAA;IAC7D,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;QAClE,MAAM,gBAAgB,GAAG,MAAM,IAAA,+BAAsB,GAAE,CAAA;QACvD,gBAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,mCAAmC,gBAAgB,EAAE,CACzF,CAAA;QACD,MAAM,IAAA,8CAAkC,EACtC,gBAAgB,EAChB,OAAO,EACP,mBAAmB,EACnB,gBAAgB,CACjB,CAAA;QACD,gBAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,uCAAuC,gBAAgB,EAAE,CAC7F,CAAA;QACD,MAAM,IAAA,8CAAkC,EACtC,gBAAgB,EAChB,OAAO,EACP,uBAAuB,EACvB,OAAO,CACR,CAAA;QAED,MAAM,IAAA,iCAAqB,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QACtD,MAAM,IAAA,0BAAa,EAAC,OAAO,EAAE,eAAe,EAAE,wBAAwB,CAAC,CAAA;IACzE,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;QAC/D,MAAM,IAAA,8BAAiB,EAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC,CAAA;IACD,sBAAsB;IACtB,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACrD,gBAAO,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAA;IAChE,gBAAO,CAAC,GAAG,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAA;IACxE,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;AACpD,CAAC"}
|