@payfit/nx-core 4.33.4 → 4.34.0-ephemeral-hello-lambda-ee734ec.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/executors/publisher/executor.js +2 -0
- package/src/executors/publisher/executor.js.map +1 -1
- package/src/executors/publisher/lambda.d.ts +3 -0
- package/src/executors/publisher/lambda.js +41 -0
- package/src/executors/publisher/lambda.js.map +1 -0
- package/src/executors/publisher/schema.d.ts +2 -0
- package/src/executors/publisher/schema.json +9 -0
- package/src/index.js +13 -2
- package/src/index.js.map +1 -1
- package/src/utils/lambda.d.ts +1 -0
- package/src/utils/lambda.js +14 -0
- package/src/utils/lambda.js.map +1 -0
- package/src/utils/oci.d.ts +1 -0
- package/src/utils/oci.js +27 -0
- package/src/utils/oci.js.map +1 -0
- package/src/utils/s3.d.ts +1 -0
- package/src/utils/s3.js +18 -0
- package/src/utils/s3.js.map +1 -0
package/package.json
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const nx_1 = require("../../utils/nx");
|
|
4
4
|
const docker_1 = require("./docker");
|
|
5
5
|
const helm_1 = require("./helm");
|
|
6
|
+
const lambda_1 = require("./lambda");
|
|
6
7
|
const runExecutor = async (options, context) => {
|
|
7
8
|
const projectGraph = (0, nx_1.getProjectFromGraph)(context);
|
|
8
9
|
const projectRoot = projectGraph.data.root;
|
|
@@ -10,6 +11,7 @@ const runExecutor = async (options, context) => {
|
|
|
10
11
|
const version = (0, nx_1.getVersion)(projectDist);
|
|
11
12
|
await (0, docker_1.publishDocker)(options, context, version, projectRoot);
|
|
12
13
|
await (0, helm_1.publishHelm)(options, context, version, projectRoot, projectDist);
|
|
14
|
+
await (0, lambda_1.publishLambda)(options, context, version, projectRoot, projectDist);
|
|
13
15
|
return {
|
|
14
16
|
success: true,
|
|
15
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/executor.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/executor.ts"],"names":[],"mappings":";;AAEA,uCAA+E;AAC/E,qCAAwC;AACxC,iCAAoC;AACpC,qCAAwC;AAGxC,MAAM,WAAW,GAGuB,KAAK,EAC3C,OAAiC,EACjC,OAAwB,EACxB,EAAE;IACF,MAAM,YAAY,GAAG,IAAA,wBAAmB,EAAC,OAAO,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAA;IAC1C,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,IAAA,eAAU,EAAC,WAAW,CAAC,CAAA;IAEvC,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC3D,MAAM,IAAA,kBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IACtE,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IAExE,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
+
import { PublisherExecutorOptions } from './schema';
|
|
3
|
+
export declare function publishLambda(options: PublisherExecutorOptions, context: ExecutorContext, version: string, projectRoot: string, projectDist: string): Promise<void>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.publishLambda = publishLambda;
|
|
4
|
+
const fs = require("node:fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const aws_auth_1 = require("../../utils/aws-auth");
|
|
7
|
+
const github_1 = require("../../utils/github");
|
|
8
|
+
const lambda_1 = require("../../utils/lambda");
|
|
9
|
+
const logger_1 = require("../../utils/logger");
|
|
10
|
+
const oci_1 = require("../../utils/oci");
|
|
11
|
+
const s3_1 = require("../../utils/s3");
|
|
12
|
+
// 1 create an archive file (zip) from the ./dist/hello-lambda
|
|
13
|
+
// 2 push the archive file in a s3 bucket
|
|
14
|
+
// 3 create an OCI artefact
|
|
15
|
+
// 4 push the OCI artefact to ECR
|
|
16
|
+
async function publishLambda(options, context, version, projectRoot, projectDist) {
|
|
17
|
+
const projectLambda = `${projectRoot}/.lambda`;
|
|
18
|
+
const gitBranchName = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
19
|
+
const repoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
20
|
+
const repoName = repoUrl.split('/').pop() ?? 'unknown-repo';
|
|
21
|
+
const zipName = `${context.projectName}-${version}.zip`;
|
|
22
|
+
const zipFileNameS3 = `${options.lambdaBucket}/${repoName}/${zipName}`;
|
|
23
|
+
if (!gitBranchName)
|
|
24
|
+
throw new Error('Unable to get current Git branch');
|
|
25
|
+
if (!fs.existsSync(projectLambda)) {
|
|
26
|
+
logger_1.consola.warn(`.lambda file not found at ${projectLambda}, skipping`);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await (0, aws_auth_1.checkAwsAuth)();
|
|
30
|
+
logger_1.consola.box(`Publishing the lambda artefact ${zipFileNameS3}`);
|
|
31
|
+
logger_1.consola.info(`Zipping ${zipName} from ${projectDist}`);
|
|
32
|
+
await (0, lambda_1.createZip)(projectDist, zipName);
|
|
33
|
+
const zipPath = (0, path_1.join)(projectDist, zipName);
|
|
34
|
+
logger_1.consola.info(`Uploading ${zipPath} to S3 at ${zipFileNameS3}`);
|
|
35
|
+
await (0, s3_1.pushToS3)(zipPath, zipFileNameS3);
|
|
36
|
+
const packageJsonPath = (0, path_1.join)(projectDist, 'package.json');
|
|
37
|
+
logger_1.consola.info(`Pushing empty image to ECR ${process.env.AWS_ECR_REGISTRY}/${options.lambdaRegistry}:${version}`);
|
|
38
|
+
await (0, oci_1.pushEmptyImageToEcr)(options.lambdaRegistry, version, packageJsonPath);
|
|
39
|
+
logger_1.consola.success('Lambda artifact successfully pushed to S3!');
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=lambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/lambda.ts"],"names":[],"mappings":";;AAqBA,sCAwCC;AA7DD,8BAA6B;AAC7B,+BAA2B;AAI3B,mDAAmD;AACnD,+CAG2B;AAC3B,+CAA8C;AAC9C,+CAA4C;AAC5C,yCAAqD;AACrD,uCAAyC;AAGzC,8DAA8D;AAC9D,yCAAyC;AACzC,2BAA2B;AAC3B,iCAAiC;AAE1B,KAAK,UAAU,aAAa,CACjC,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAmB;IAEnB,MAAM,aAAa,GAAG,GAAG,WAAW,UAAU,CAAA;IAC9C,MAAM,aAAa,GAAG,MAAM,IAAA,qCAA4B,GAAE,CAAA;IAE1D,MAAM,OAAO,GAAG,MAAM,IAAA,sCAA6B,GAAE,CAAA;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAA;IAE3D,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,MAAM,CAAA;IACvD,MAAM,aAAa,GAAG,GAAG,OAAO,CAAC,YAAY,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAA;IAEtE,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IAEvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,gBAAO,CAAC,IAAI,CAAC,6BAA6B,aAAa,YAAY,CAAC,CAAA;QACpE,OAAM;IACR,CAAC;IAED,MAAM,IAAA,uBAAY,GAAE,CAAA;IACpB,gBAAO,CAAC,GAAG,CAAC,kCAAkC,aAAa,EAAE,CAAC,CAAA;IAE9D,gBAAO,CAAC,IAAI,CAAC,WAAW,OAAO,SAAS,WAAW,EAAE,CAAC,CAAA;IACtD,MAAM,IAAA,kBAAS,EAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAErC,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC1C,gBAAO,CAAC,IAAI,CAAC,aAAa,OAAO,aAAa,aAAa,EAAE,CAAC,CAAA;IAC9D,MAAM,IAAA,aAAQ,EAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAEtC,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACzD,gBAAO,CAAC,IAAI,CACV,8BAA8B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,EAAE,CAClG,CAAA;IACD,MAAM,IAAA,yBAAmB,EAAC,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,CAAC,CAAA;IAE3E,gBAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -21,6 +21,15 @@
|
|
|
21
21
|
"type": "boolean",
|
|
22
22
|
"description": "Whether to use the public ECR registry",
|
|
23
23
|
"default": false
|
|
24
|
+
},
|
|
25
|
+
"lambdaBucket": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "The S3 bucket for lambda",
|
|
28
|
+
"default": "payfit-shared-lambda-artifacts"
|
|
29
|
+
},
|
|
30
|
+
"lambdaRegistry": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "The OCI registry for lambda"
|
|
24
33
|
}
|
|
25
34
|
},
|
|
26
35
|
"required": []
|
package/src/index.js
CHANGED
|
@@ -15,6 +15,7 @@ async function createNodesInternal(configFilePath, options, context) {
|
|
|
15
15
|
const projectRoot = (0, path_1.dirname)(configFilePath);
|
|
16
16
|
const isDockerProject = (0, fs_1.existsSync)((0, path_1.join)(projectRoot, 'Dockerfile'));
|
|
17
17
|
const isHelmProject = (0, fs_1.existsSync)((0, path_1.join)(projectRoot, '.deploy/Chart.yaml'));
|
|
18
|
+
const isLambdaProject = (0, fs_1.existsSync)((0, path_1.join)(projectRoot, '.lambda'));
|
|
18
19
|
const targets = {};
|
|
19
20
|
const ecrRegistry = isDockerProject
|
|
20
21
|
? projectConfiguration.metadata &&
|
|
@@ -28,8 +29,16 @@ async function createNodesInternal(configFilePath, options, context) {
|
|
|
28
29
|
? projectConfiguration.metadata &&
|
|
29
30
|
projectConfiguration.metadata['isPublicRegistry'] == true
|
|
30
31
|
: false;
|
|
32
|
+
const lambdaRegistry = isLambdaProject
|
|
33
|
+
? projectConfiguration.metadata &&
|
|
34
|
+
projectConfiguration.metadata['lambdaRegistry']
|
|
35
|
+
: undefined;
|
|
36
|
+
const lambdaBucket = isLambdaProject
|
|
37
|
+
? projectConfiguration.metadata &&
|
|
38
|
+
projectConfiguration.metadata['lambdaBucket']
|
|
39
|
+
: undefined;
|
|
31
40
|
let release = null;
|
|
32
|
-
if (isHelmProject || isDockerProject) {
|
|
41
|
+
if (isHelmProject || isDockerProject || isLambdaProject) {
|
|
33
42
|
const publisherConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/publisher/schema.json'));
|
|
34
43
|
targets['nx-release-publish'] = {
|
|
35
44
|
// infer the custom publisher target to handle publishing docker & helm artefacts
|
|
@@ -38,9 +47,11 @@ async function createNodesInternal(configFilePath, options, context) {
|
|
|
38
47
|
ecrRegistry,
|
|
39
48
|
chartRegistry,
|
|
40
49
|
isPublicRegistry,
|
|
50
|
+
lambdaBucket,
|
|
51
|
+
lambdaRegistry,
|
|
41
52
|
},
|
|
42
53
|
metadata: {
|
|
43
|
-
technologies: ['helm', 'docker'],
|
|
54
|
+
technologies: ['helm', 'docker', 'lambda'],
|
|
44
55
|
description: publisherConfig.description,
|
|
45
56
|
},
|
|
46
57
|
};
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/nx-core/src/index.ts"],"names":[],"mappings":";;;AAAA,2BAA+B;AAC/B,+BAAoC;AAEpC,uCAKmB;AAKN,QAAA,aAAa,GAAmC;IAC3D,iBAAiB;IACjB,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACtC,OAAO,MAAM,IAAA,6BAAoB,EAC/B,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC/B,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EACnD,WAAW,EACX,OAAO,EACP,OAAO,CACR,CAAA;IACH,CAAC;CACF,CAAA;AAED,KAAK,UAAU,mBAAmB,CAChC,cAAsB,EACtB,OAAwB,EACxB,OAA6B;IAE7B,MAAM,oBAAoB,GAAG,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,cAAc,CAAC,CAAA;IAE3C,MAAM,eAAe,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;IACnE,MAAM,aAAa,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/nx-core/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createZip: (source: string, zipName: string) => Promise<import("tinyexec").Output>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createZip = void 0;
|
|
4
|
+
const exec_1 = require("./exec");
|
|
5
|
+
const createZip = async (source, zipName) => {
|
|
6
|
+
const cwd = process.cwd();
|
|
7
|
+
process.chdir(source);
|
|
8
|
+
const cmd = `zip -r ${zipName} .`;
|
|
9
|
+
const zip = await (0, exec_1.exec)(cmd, { throwOnError: true });
|
|
10
|
+
process.chdir(cwd);
|
|
11
|
+
return zip;
|
|
12
|
+
};
|
|
13
|
+
exports.createZip = createZip;
|
|
14
|
+
//# sourceMappingURL=lambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/lambda.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAEtB,MAAM,SAAS,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,MAAM,GAAG,GAAG,UAAU,OAAO,IAAI,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,SAAS,aAOrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function pushEmptyImageToEcr(lambdaEcrRepository: string, tag: string, pathToPackageJson: string): Promise<void>;
|
package/src/utils/oci.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pushEmptyImageToEcr = pushEmptyImageToEcr;
|
|
4
|
+
const consola_1 = require("consola");
|
|
5
|
+
const exec_1 = require("./exec");
|
|
6
|
+
async function pushEmptyImageToEcr(lambdaEcrRepository, tag, pathToPackageJson) {
|
|
7
|
+
if (!process.env.AWS_ECR_REGISTRY) {
|
|
8
|
+
throw new Error('AWS_ECR_REGISTRY environment variable is not set');
|
|
9
|
+
}
|
|
10
|
+
if (!lambdaEcrRepository) {
|
|
11
|
+
throw new Error('Lambda ECR repository is not provided');
|
|
12
|
+
}
|
|
13
|
+
if (!tag) {
|
|
14
|
+
throw new Error('Tag is not provided');
|
|
15
|
+
}
|
|
16
|
+
if (!pathToPackageJson) {
|
|
17
|
+
throw new Error('Path to package.json is not provided');
|
|
18
|
+
}
|
|
19
|
+
const uploadToOci = await (0, exec_1.exec)(`oras push ${process.env.AWS_ECR_REGISTRY}/${lambdaEcrRepository}:${tag} --artifact-type application/vnd.payfit.lambda.manifest ${pathToPackageJson}`, {
|
|
20
|
+
throwOnError: true,
|
|
21
|
+
});
|
|
22
|
+
consola_1.consola.log(uploadToOci.stdout);
|
|
23
|
+
if (uploadToOci.exitCode !== 0) {
|
|
24
|
+
throw new Error(`Failed to push empty image to ECR: ${uploadToOci.stderr || 'Unknown error'}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=oci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oci.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/oci.ts"],"names":[],"mappings":";;AAIA,kDA6BC;AAjCD,qCAAiC;AAEjC,iCAA6B;AAEtB,KAAK,UAAU,mBAAmB,CACvC,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,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,WAAI,EAC5B,aAAa,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,mBAAmB,IAAI,GAAG,2DAA2D,iBAAiB,EAAE,EACrJ;QACE,YAAY,EAAE,IAAI;KACnB,CACF,CAAA;IACD,iBAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,sCAAsC,WAAW,CAAC,MAAM,IAAI,eAAe,EAAE,CAC9E,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function pushToS3(source: string, targetS3FileName: string): Promise<void>;
|
package/src/utils/s3.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pushToS3 = pushToS3;
|
|
4
|
+
const aws_auth_1 = require("./aws-auth");
|
|
5
|
+
const exec_1 = require("./exec");
|
|
6
|
+
async function pushToS3(source, targetS3FileName) {
|
|
7
|
+
if (!source || !targetS3FileName) {
|
|
8
|
+
throw new Error('Missing source or target for s3 cp');
|
|
9
|
+
}
|
|
10
|
+
const bucketName = targetS3FileName.split('/')[0];
|
|
11
|
+
const fileName = targetS3FileName.split('/').slice(1).join('/');
|
|
12
|
+
const profile = (0, aws_auth_1.getProfileName)() === 'default' ? '' : `--profile ${(0, aws_auth_1.getProfileName)()}`;
|
|
13
|
+
await (0, exec_1.exec)(`aws s3 cp ${profile} --sse AES256 ${source} s3://${targetS3FileName}`, { throwOnError: true });
|
|
14
|
+
if (targetS3FileName.includes('ephemeral')) {
|
|
15
|
+
await (0, exec_1.exec)(`aws s3api put-object-tagging ${profile} --bucket ${bucketName} --key ${fileName} --tagging '{"TagSet": [{ "Key": "auto-purge", "Value": "true" }]}'`, { throwOnError: true });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=s3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/s3.ts"],"names":[],"mappings":";;AAGA,4BAqBC;AAxBD,yCAA2C;AAC3C,iCAA6B;AAEtB,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,gBAAwB;IACrE,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE/D,MAAM,OAAO,GACX,IAAA,yBAAc,GAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAA,yBAAc,GAAE,EAAE,CAAA;IAEvE,MAAM,IAAA,WAAI,EACR,aAAa,OAAO,iBAAiB,MAAM,SAAS,gBAAgB,EAAE,EACtE,EAAE,YAAY,EAAE,IAAI,EAAE,CACvB,CAAA;IACD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAA,WAAI,EACR,gCAAgC,OAAO,aAAa,UAAU,UAAU,QAAQ,qEAAqE,EACrJ,EAAE,YAAY,EAAE,IAAI,EAAE,CACvB,CAAA;IACH,CAAC;AACH,CAAC"}
|