@payfit/nx-core 4.40.1 → 4.41.0-ephemeral-hello-lambda-05ab438.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 +4 -15
- package/src/executors/publisher/docker.js +3 -3
- package/src/executors/publisher/docker.js.map +1 -1
- package/src/executors/publisher/executor.js +7 -4
- package/src/executors/publisher/executor.js.map +1 -1
- package/src/executors/publisher/helm.js +4 -4
- package/src/executors/publisher/helm.js.map +1 -1
- package/src/executors/publisher/lambda.d.ts +3 -0
- package/src/executors/publisher/lambda.js +50 -0
- package/src/executors/publisher/lambda.js.map +1 -0
- package/src/executors/publisher/schema.d.ts +14 -0
- package/src/executors/publisher/schema.json +17 -0
- package/src/executors/release/executor.js +4 -4
- package/src/executors/release/executor.js.map +1 -1
- package/src/executors/release/schema.d.ts +9 -0
- package/src/generators/init/files/.circleci/config.yml.template +12 -4
- package/src/generators/init/init.d.ts +1 -7
- package/src/generators/init/init.js +112 -77
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/init/schema.d.ts +4 -0
- package/src/generators/init/schema.json +6 -0
- package/src/index.js +23 -2
- package/src/index.js.map +1 -1
- package/src/scripts/version-actions.d.ts +20 -2
- package/src/scripts/version-actions.js +44 -3
- package/src/scripts/version-actions.js.map +1 -1
- package/src/scripts/version-actions.mock.d.ts +1 -0
- package/src/scripts/version-actions.mock.js +9 -1
- package/src/scripts/version-actions.mock.js.map +1 -1
- package/src/utils/{aws-auth.d.ts → common/aws-auth.d.ts} +1 -0
- package/src/utils/{aws-auth.js → common/aws-auth.js} +1 -0
- package/src/utils/common/aws-auth.js.map +1 -0
- package/src/utils/common/circleci.js.map +1 -0
- package/src/utils/common/exec.js.map +1 -0
- package/src/utils/common/github.js.map +1 -0
- package/src/utils/common/import-esm.js.map +1 -0
- package/src/utils/common/logger.js.map +1 -0
- package/src/utils/common/nx.d.ts +9 -0
- package/src/utils/common/nx.js +47 -0
- package/src/utils/common/nx.js.map +1 -0
- package/src/utils/common/s3.d.ts +1 -0
- package/src/utils/common/s3.js +18 -0
- package/src/utils/common/s3.js.map +1 -0
- package/src/utils/common/tsh.js.map +1 -0
- package/src/utils/datadog.js +1 -1
- package/src/utils/datadog.js.map +1 -1
- package/src/utils/docker.js +2 -2
- package/src/utils/docker.js.map +1 -1
- package/src/utils/helm.js +3 -3
- package/src/utils/helm.js.map +1 -1
- package/src/utils/helm.mock.js.map +1 -1
- package/src/utils/lambda/aws-lambda.d.ts +4 -0
- package/src/utils/lambda/aws-lambda.js +77 -0
- package/src/utils/lambda/aws-lambda.js.map +1 -0
- package/src/utils/lambda/lambda.d.ts +1 -0
- package/src/utils/lambda/lambda.js +14 -0
- package/src/utils/lambda/lambda.js.map +1 -0
- package/src/utils/lambda/oci.d.ts +1 -0
- package/src/utils/lambda/oci.js +18 -0
- package/src/utils/lambda/oci.js.map +1 -0
- package/src/utils/lambda/publish.d.ts +1 -0
- package/src/utils/lambda/publish.js +26 -0
- package/src/utils/lambda/publish.js.map +1 -0
- package/src/utils/lambda/spacelift.d.ts +3 -0
- package/src/utils/lambda/spacelift.js +54 -0
- package/src/utils/lambda/spacelift.js.map +1 -0
- package/src/utils/aws-auth.js.map +0 -1
- package/src/utils/circleci.js.map +0 -1
- package/src/utils/exec.js.map +0 -1
- package/src/utils/github.js.map +0 -1
- package/src/utils/import-esm.js.map +0 -1
- package/src/utils/logger.js.map +0 -1
- package/src/utils/nx.d.ts +0 -8
- package/src/utils/nx.js +0 -95
- package/src/utils/nx.js.map +0 -1
- package/src/utils/tsh.js.map +0 -1
- /package/src/utils/{circleci.d.ts → common/circleci.d.ts} +0 -0
- /package/src/utils/{circleci.js → common/circleci.js} +0 -0
- /package/src/utils/{exec.d.ts → common/exec.d.ts} +0 -0
- /package/src/utils/{exec.js → common/exec.js} +0 -0
- /package/src/utils/{github.d.ts → common/github.d.ts} +0 -0
- /package/src/utils/{github.js → common/github.js} +0 -0
- /package/src/utils/{import-esm.d.ts → common/import-esm.d.ts} +0 -0
- /package/src/utils/{import-esm.js → common/import-esm.js} +0 -0
- /package/src/utils/{logger.d.ts → common/logger.d.ts} +0 -0
- /package/src/utils/{logger.js → common/logger.js} +0 -0
- /package/src/utils/{tsh.d.ts → common/tsh.d.ts} +0 -0
- /package/src/utils/{tsh.js → common/tsh.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payfit/nx-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.41.0-ephemeral-hello-lambda-05ab438.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"directory": "packages/nx-core"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@
|
|
14
|
+
"@payfit/spacelift": "0.14.0-ephemeral-hello-lambda-05ab438.0",
|
|
15
15
|
"args-tokenizer": "^0.3.0",
|
|
16
16
|
"consola": "^3.4.2",
|
|
17
17
|
"get-port": "^7.1.0",
|
|
@@ -31,11 +31,7 @@
|
|
|
31
31
|
"nx": "^21"
|
|
32
32
|
},
|
|
33
33
|
"exports": {
|
|
34
|
-
".":
|
|
35
|
-
"types": "./src/index.d.ts",
|
|
36
|
-
"require": "./src/index.js",
|
|
37
|
-
"default": "./src/index.js"
|
|
38
|
-
},
|
|
34
|
+
".": "./src/index.js",
|
|
39
35
|
"./versionActions": "./src/scripts/version-actions.js",
|
|
40
36
|
"./package.json": "./package.json"
|
|
41
37
|
},
|
|
@@ -43,12 +39,5 @@
|
|
|
43
39
|
"generators": "./generators.json",
|
|
44
40
|
"publishConfig": {
|
|
45
41
|
"access": "restricted"
|
|
46
|
-
}
|
|
47
|
-
"files": [
|
|
48
|
-
"src",
|
|
49
|
-
"executors.json",
|
|
50
|
-
"generators.json",
|
|
51
|
-
"package.json",
|
|
52
|
-
"!*tsconfig.lib.tsbuildinfo"
|
|
53
|
-
]
|
|
42
|
+
}
|
|
54
43
|
}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.publishDocker = publishDocker;
|
|
4
4
|
const fs = require("node:fs");
|
|
5
|
-
const aws_auth_1 = require("../../utils/aws-auth");
|
|
5
|
+
const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
6
|
+
const github_1 = require("../../utils/common/github");
|
|
7
|
+
const logger_1 = require("../../utils/common/logger");
|
|
6
8
|
const datadog_1 = require("../../utils/datadog");
|
|
7
9
|
const docker_1 = require("../../utils/docker");
|
|
8
|
-
const github_1 = require("../../utils/github");
|
|
9
|
-
const logger_1 = require("../../utils/logger");
|
|
10
10
|
async function publishDocker(options, context, version, projectRoot, isDryRun) {
|
|
11
11
|
const projectDockerfile = `${projectRoot}/Dockerfile`;
|
|
12
12
|
if (!fs.existsSync(projectDockerfile)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const nx_1 = require("../../utils/nx");
|
|
3
|
+
const nx_1 = require("../../utils/common/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 isDryRun = process.env.NX_DRY_RUN === 'true' || options.dryRun || false;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const projectGraph = (0, nx_1.getProjectFromGraph)(context);
|
|
10
|
+
const projectRoot = projectGraph.data.root;
|
|
11
|
+
const projectDist = await (0, nx_1.getDistForApp)(projectGraph);
|
|
12
|
+
const version = (0, nx_1.getVersion)(projectDist);
|
|
11
13
|
await (0, docker_1.publishDocker)(options, context, version, projectRoot, isDryRun);
|
|
12
14
|
await (0, helm_1.publishHelm)(options, context, version, projectRoot, projectDist, isDryRun);
|
|
15
|
+
await (0, lambda_1.publishLambda)(options, context, version, projectRoot, projectDist, isDryRun);
|
|
13
16
|
return {
|
|
14
17
|
success: true,
|
|
15
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/executor.ts"],"names":[],"mappings":";;AAEA,8CAI8B;AAC9B,qCAAwC;AACxC,iCAAoC;AACpC,qCAAwC;AAGxC,MAAM,WAAW,GAGuB,KAAK,EAC3C,OAAiC,EACjC,OAAwB,EACxB,EAAE;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;IAC7E,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,EAAE,QAAQ,CAAC,CAAA;IACrE,MAAM,IAAA,kBAAW,EACf,OAAO,EACP,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,EACX,QAAQ,CACT,CAAA;IACD,MAAM,IAAA,sBAAa,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.publishHelm = publishHelm;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs = require("node:fs");
|
|
6
|
-
const aws_auth_1 = require("../../utils/aws-auth");
|
|
7
|
-
const github_1 = require("../../utils/github");
|
|
6
|
+
const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
7
|
+
const github_1 = require("../../utils/common/github");
|
|
8
|
+
const logger_1 = require("../../utils/common/logger");
|
|
9
|
+
const tsh_1 = require("../../utils/common/tsh");
|
|
8
10
|
const helm_1 = require("../../utils/helm");
|
|
9
|
-
const logger_1 = require("../../utils/logger");
|
|
10
|
-
const tsh_1 = require("../../utils/tsh");
|
|
11
11
|
async function publishHelm(options, context, version, projectRoot, projectDist, isDryRun) {
|
|
12
12
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
13
13
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/helm.ts"],"names":[],"mappings":"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"}
|
|
@@ -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, isDryRun: boolean): Promise<void>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.publishLambda = publishLambda;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
6
|
+
const github_1 = require("../../utils/common/github");
|
|
7
|
+
const logger_1 = require("../../utils/common/logger");
|
|
8
|
+
const s3_1 = require("../../utils/common/s3");
|
|
9
|
+
const lambda_1 = require("../../utils/lambda/lambda");
|
|
10
|
+
const oci_1 = require("../../utils/lambda/oci");
|
|
11
|
+
const publish_1 = require("../../utils/lambda/publish");
|
|
12
|
+
async function publishLambda(options, context, version, projectRoot, projectDist, isDryRun) {
|
|
13
|
+
const gitBranchName = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
14
|
+
const repoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
15
|
+
const repoName = repoUrl.split('/').pop() ?? 'unknown-repo';
|
|
16
|
+
const zipName = `${context.projectName}-${version}.zip`;
|
|
17
|
+
const zipFileNameS3 = `${options.lambdaBucket}/${repoName}/${context.projectName}/${zipName}`;
|
|
18
|
+
if (!gitBranchName)
|
|
19
|
+
throw new Error('Unable to get current Git branch');
|
|
20
|
+
if (!options.lambdaRegistry) {
|
|
21
|
+
logger_1.consola.error('No lambda registry provided, add "lambdaRegistry" to your project.json metadata');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (!options.lambdaStacks) {
|
|
25
|
+
logger_1.consola.error('No lambda spacelift stacks provided, add "lambdaStacks" to your project.json metadata');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (!options.lambdaFunctions) {
|
|
29
|
+
logger_1.consola.error('No lambda functions provided, add "lambdaFunctions" to your project.json metadata');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (isDryRun) {
|
|
33
|
+
logger_1.consola.box(`Would have published lambda artefact to S3 ${zipFileNameS3} and ECR ${process.env.AWS_ECR_REGISTRY}/${options.lambdaRegistry}:${version} but --dry-run is enabled`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await (0, aws_auth_1.checkAwsAuth)();
|
|
37
|
+
logger_1.consola.box(`Publishing the lambda artefact ${zipFileNameS3}`);
|
|
38
|
+
logger_1.consola.info(`Zipping ${zipName} from ${projectDist}`);
|
|
39
|
+
await (0, lambda_1.createZip)(projectDist, zipName);
|
|
40
|
+
const zipPath = (0, path_1.join)(projectDist, zipName);
|
|
41
|
+
logger_1.consola.info(`Uploading ${zipPath} to S3 at ${zipFileNameS3}`);
|
|
42
|
+
await (0, s3_1.pushToS3)(zipPath, zipFileNameS3);
|
|
43
|
+
logger_1.consola.info(`Creating Spacelift Lambda version for ${zipFileNameS3}`);
|
|
44
|
+
await (0, publish_1.createLambdaVersion)(options.lambdaStacks, options.lambdaFunctions, version);
|
|
45
|
+
const packageJsonPath = (0, path_1.join)(projectDist, 'package.json');
|
|
46
|
+
logger_1.consola.info(`Pushing empty image to ECR ${process.env.AWS_ECR_REGISTRY}/${options.lambdaRegistry}:${version}`);
|
|
47
|
+
await (0, oci_1.pushImageToEcr)(options.lambdaRegistry, version, packageJsonPath);
|
|
48
|
+
logger_1.consola.success('Lambda artifact successfully pushed to S3!');
|
|
49
|
+
}
|
|
50
|
+
//# 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":";;AAgBA,sCAuEC;AAvFD,+BAA2B;AAI3B,0DAA0D;AAC1D,sDAGkC;AAClC,sDAAmD;AACnD,8CAAgD;AAChD,sDAAqD;AACrD,gDAAuD;AACvD,wDAAgE;AAGzD,KAAK,UAAU,aAAa,CACjC,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAmB,EACnB,QAAiB;IAEjB,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,CAAC,WAAW,IAAI,OAAO,EAAE,CAAA;IAE7F,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IAEvE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,gBAAO,CAAC,KAAK,CACX,iFAAiF,CAClF,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC1B,gBAAO,CAAC,KAAK,CACX,uFAAuF,CACxF,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,gBAAO,CAAC,KAAK,CACX,mFAAmF,CACpF,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAO,CAAC,GAAG,CACT,8CAA8C,aAAa,YAAY,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,4BAA4B,CACrK,CAAA;QACD,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,gBAAO,CAAC,IAAI,CAAC,yCAAyC,aAAa,EAAE,CAAC,CAAA;IAEtE,MAAM,IAAA,6BAAmB,EACvB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,eAAe,EACvB,OAAO,CACR,CAAA;IAED,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,oBAAc,EAAC,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,CAAC,CAAA;IAEtE,gBAAO,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface PublisherExecutorSchema {} // eslint-disable-line
|
|
2
|
+
export interface PublisherExecutorOptions {
|
|
3
|
+
chartRegistry: string
|
|
4
|
+
ecrRegistry: string
|
|
5
|
+
ociEcrRegistry?: string
|
|
6
|
+
isPublicRegistry?: boolean
|
|
7
|
+
helmChartFolder?: string
|
|
8
|
+
extraReleaseTags?: string[]
|
|
9
|
+
dryRun?: boolean
|
|
10
|
+
lambdaBucket?: string
|
|
11
|
+
lambdaRegistry?: string
|
|
12
|
+
lambdaStacks?: string[]
|
|
13
|
+
lambdaFunctions?: string[]
|
|
14
|
+
}
|
|
@@ -39,6 +39,23 @@
|
|
|
39
39
|
"type": "boolean",
|
|
40
40
|
"description": "Whether to run in dry run mode. When true, shows what would be published without actually publishing.",
|
|
41
41
|
"default": false
|
|
42
|
+
},
|
|
43
|
+
"lambdaBucket": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "The S3 bucket for lambda",
|
|
46
|
+
"default": "payfit-shared-lambda-artifacts"
|
|
47
|
+
},
|
|
48
|
+
"lambdaRegistry": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "The OCI registry for lambda"
|
|
51
|
+
},
|
|
52
|
+
"lambdaStacks": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"description": "The list of stacks to publish the lambda to"
|
|
55
|
+
},
|
|
56
|
+
"lambdaFunctions": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"description": "The list of lambda functions inside the workload"
|
|
42
59
|
}
|
|
43
60
|
},
|
|
44
61
|
"required": []
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const release_1 = require("nx/release");
|
|
4
|
-
const circleci_1 = require("../../utils/circleci");
|
|
5
|
-
const github_1 = require("../../utils/github");
|
|
6
|
-
const logger_1 = require("../../utils/logger");
|
|
7
|
-
const tsh_1 = require("../../utils/tsh");
|
|
4
|
+
const circleci_1 = require("../../utils/common/circleci");
|
|
5
|
+
const github_1 = require("../../utils/common/github");
|
|
6
|
+
const logger_1 = require("../../utils/common/logger");
|
|
7
|
+
const tsh_1 = require("../../utils/common/tsh");
|
|
8
8
|
const runExecutor = async (options, context) => {
|
|
9
9
|
const isDryRun = process.env.NX_DRY_RUN === 'true' || options.dryRun || false;
|
|
10
10
|
if ((0, circleci_1.isCircleCIRunner)()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/release/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,14 +78,11 @@ jobs:
|
|
|
78
78
|
- checkout
|
|
79
79
|
- node/install-packages: *install_packages
|
|
80
80
|
- nx/set-shas: *nx_set_shas_option
|
|
81
|
-
- run: npx nx
|
|
81
|
+
- run: npx nx run-many -t build
|
|
82
82
|
- persist_to_workspace:
|
|
83
83
|
root: '.'
|
|
84
84
|
paths:
|
|
85
85
|
- dist
|
|
86
|
-
- apps/*/dist
|
|
87
|
-
- packages/*/dist
|
|
88
|
-
- libs/*/dist
|
|
89
86
|
|
|
90
87
|
test:
|
|
91
88
|
<<: *setup_env_node
|
|
@@ -94,6 +91,8 @@ jobs:
|
|
|
94
91
|
- node/install-packages: *install_packages
|
|
95
92
|
- nx/set-shas: *nx_set_shas_option
|
|
96
93
|
- run: npx nx affected -t test
|
|
94
|
+
- store_test_results:
|
|
95
|
+
path: test-results
|
|
97
96
|
|
|
98
97
|
publish:
|
|
99
98
|
<<: *setup_env_machine
|
|
@@ -118,6 +117,15 @@ jobs:
|
|
|
118
117
|
tar -xzf teleport-v17.4.6-linux-amd64-bin.tar.gz
|
|
119
118
|
cd teleport
|
|
120
119
|
sudo ./install
|
|
120
|
+
- run:
|
|
121
|
+
name: 'Install Oras'
|
|
122
|
+
command: |
|
|
123
|
+
VERSION="1.2.2"
|
|
124
|
+
curl -LO "https://github.com/oras-project/oras/releases/download/v${VERSION}/oras_${VERSION}_linux_amd64.tar.gz"
|
|
125
|
+
mkdir -p oras-install/
|
|
126
|
+
tar -zxf oras_${VERSION}_*.tar.gz -C oras-install/
|
|
127
|
+
sudo mv oras-install/oras /usr/local/bin/
|
|
128
|
+
rm -rf oras_${VERSION}_*.tar.gz oras-install/
|
|
121
129
|
- run:
|
|
122
130
|
name: Release
|
|
123
131
|
command: |
|
|
@@ -2,12 +2,6 @@ import { Tree } from '@nx/devkit';
|
|
|
2
2
|
import { InitGeneratorSchema } from './schema';
|
|
3
3
|
export declare function extractMetadataFromCircleCI(circleciContent: string, tree: Tree): Promise<Record<string, string>>;
|
|
4
4
|
export declare function injectMetadata(tree: Tree, projectRoot: string, metadata: Record<string, string>): void;
|
|
5
|
-
|
|
6
|
-
* Make sure the package.json publish config have correct default values
|
|
7
|
-
* @param tree
|
|
8
|
-
* @param packageJsonPath
|
|
9
|
-
* @param shouldBePublished
|
|
10
|
-
*/
|
|
11
|
-
export declare function processPackageJsonPublishConfig(tree: Tree, packageJsonPath: string, shouldBePublished?: boolean): void;
|
|
5
|
+
export declare function processPackageJsonPublishConfig(tree: Tree, packageJsonPath: string): Promise<void>;
|
|
12
6
|
export declare function initGenerator(tree: Tree, options?: InitGeneratorSchema): Promise<import("@nx/devkit").GeneratorCallback>;
|
|
13
7
|
export default initGenerator;
|
|
@@ -7,8 +7,8 @@ exports.initGenerator = initGenerator;
|
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const devkit_1 = require("@nx/devkit");
|
|
9
9
|
const yaml = require("yaml");
|
|
10
|
-
const github_1 = require("../../utils/github");
|
|
11
|
-
const logger_1 = require("../../utils/logger");
|
|
10
|
+
const github_1 = require("../../utils/common/github");
|
|
11
|
+
const logger_1 = require("../../utils/common/logger");
|
|
12
12
|
const METADATA_EXTRACTORS = [
|
|
13
13
|
{
|
|
14
14
|
jobType: 'payfit-aws-ecr/build-and-push',
|
|
@@ -91,24 +91,15 @@ function injectMetadata(tree, projectRoot, metadata) {
|
|
|
91
91
|
return projectJson;
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
-
|
|
95
|
-
* Make sure the package.json publish config have correct default values
|
|
96
|
-
* @param tree
|
|
97
|
-
* @param packageJsonPath
|
|
98
|
-
* @param shouldBePublished
|
|
99
|
-
*/
|
|
100
|
-
function processPackageJsonPublishConfig(tree, packageJsonPath, shouldBePublished = false) {
|
|
101
|
-
if (!tree.exists(packageJsonPath))
|
|
102
|
-
return;
|
|
94
|
+
async function processPackageJsonPublishConfig(tree, packageJsonPath) {
|
|
103
95
|
(0, devkit_1.updateJson)(tree, packageJsonPath, packageJson => {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
delete packageJson.private; // should be removed to be published to npm
|
|
96
|
+
if (packageJson.private === undefined) {
|
|
97
|
+
packageJson.private = true;
|
|
98
|
+
}
|
|
99
|
+
else if (packageJson.private === false && !packageJson.publishConfig) {
|
|
100
|
+
packageJson.publishConfig = {
|
|
101
|
+
access: 'restricted',
|
|
102
|
+
};
|
|
112
103
|
}
|
|
113
104
|
return packageJson;
|
|
114
105
|
});
|
|
@@ -129,39 +120,67 @@ async function processCircleCIMetadata(tree, projectCircleCIPath, projectRoot) {
|
|
|
129
120
|
});
|
|
130
121
|
}
|
|
131
122
|
function injectNxReleaseConfiguration(tree, packageJsonName) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
123
|
+
(0, devkit_1.updateJson)(tree, 'nx.json', nxJson => {
|
|
124
|
+
nxJson.release = {
|
|
125
|
+
projectsRelationship: 'independent',
|
|
126
|
+
projects: ['*', `!${packageJsonName}`],
|
|
127
|
+
releaseTagPattern: '{projectName}-{version}',
|
|
128
|
+
changelog: {
|
|
129
|
+
projectChangelogs: {
|
|
130
|
+
createRelease: 'github',
|
|
131
|
+
file: false,
|
|
132
|
+
},
|
|
133
|
+
automaticFromRef: true,
|
|
134
|
+
git: {
|
|
135
|
+
commit: false,
|
|
136
|
+
tag: true,
|
|
137
|
+
},
|
|
141
138
|
},
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
139
|
+
version: {
|
|
140
|
+
useLegacyVersioning: false,
|
|
141
|
+
currentVersionResolver: 'git-tag',
|
|
142
|
+
fallbackCurrentVersionResolver: 'disk',
|
|
143
|
+
specifierSource: 'conventional-commits',
|
|
144
|
+
manifestRootsToUpdate: ['{workspaceRoot}/dist/{projectRoot}'],
|
|
145
|
+
preserveLocalDependencyProtocols: false,
|
|
146
146
|
},
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
147
|
+
};
|
|
148
|
+
// Initialize plugins array if it doesn't exist
|
|
149
|
+
nxJson.plugins = nxJson.plugins ?? [];
|
|
150
|
+
// Add @payfit/nx-core plugin if it doesn't already exist
|
|
151
|
+
if (!nxJson.plugins.includes('@payfit/nx-core')) {
|
|
152
|
+
nxJson.plugins.push('@payfit/nx-core');
|
|
153
|
+
}
|
|
154
|
+
// Initialize nx-release-publish target default
|
|
155
|
+
nxJson.targetDefaults = nxJson.targetDefaults ?? [];
|
|
156
|
+
if (!nxJson.targetDefaults['nx-release-publish']) {
|
|
157
|
+
nxJson.targetDefaults['nx-release-publish'] = {
|
|
158
|
+
options: {
|
|
159
|
+
packageRoot: '{workspaceRoot}/dist/{projectRoot}',
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const outputPath = '{workspaceRoot}/dist/{projectRoot}';
|
|
164
|
+
// Inject the build output path for the release
|
|
165
|
+
if (!nxJson.targetDefaults['build']) {
|
|
166
|
+
nxJson.targetDefaults['build'] = {
|
|
167
|
+
options: {
|
|
168
|
+
outputPath,
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
else if (!nxJson.targetDefaults['build'].options) {
|
|
173
|
+
nxJson.targetDefaults['build'].options = {
|
|
174
|
+
outputPath,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
nxJson.targetDefaults['build'].options.outputPath = outputPath;
|
|
179
|
+
}
|
|
180
|
+
return nxJson;
|
|
181
|
+
});
|
|
163
182
|
}
|
|
164
|
-
function
|
|
183
|
+
function injectPackageJsonConfiguration(tree) {
|
|
165
184
|
(0, devkit_1.updateJson)(tree, 'package.json', packageJson => {
|
|
166
185
|
if (!packageJson.nx) {
|
|
167
186
|
packageJson.nx = {
|
|
@@ -178,23 +197,24 @@ function injectRootPackageJsonConfiguration(tree) {
|
|
|
178
197
|
function injectRootProjectJsonConfiguration(tree, packageJsonName) {
|
|
179
198
|
if (tree.exists('project.json')) {
|
|
180
199
|
(0, devkit_1.updateJson)(tree, 'project.json', projectJson => {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
projectConfig.targets = {
|
|
200
|
+
if (!projectJson.targets) {
|
|
201
|
+
projectJson.targets = {
|
|
184
202
|
release: {
|
|
185
203
|
executor: '@payfit/nx-core:release',
|
|
186
204
|
cache: false,
|
|
187
205
|
},
|
|
188
206
|
};
|
|
189
207
|
}
|
|
190
|
-
else if (!
|
|
191
|
-
|
|
208
|
+
else if (!projectJson.targets['release']) {
|
|
209
|
+
projectJson.targets['release'] = {
|
|
192
210
|
executor: '@payfit/nx-core:release',
|
|
193
211
|
cache: false,
|
|
194
212
|
};
|
|
195
213
|
}
|
|
196
|
-
|
|
197
|
-
|
|
214
|
+
if (projectJson.name !== packageJsonName) {
|
|
215
|
+
projectJson.name = packageJsonName;
|
|
216
|
+
}
|
|
217
|
+
return projectJson;
|
|
198
218
|
});
|
|
199
219
|
}
|
|
200
220
|
else {
|
|
@@ -217,22 +237,25 @@ function getPackageJsonName(tree) {
|
|
|
217
237
|
? packageJson?.name
|
|
218
238
|
: `@payfit/${packageJson?.name}`;
|
|
219
239
|
}
|
|
220
|
-
// For each project, we need to remove the github, version
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
240
|
+
// For each project, we need to remove the github, version
|
|
241
|
+
// We should also remove the lint and test targets as they should be infered
|
|
242
|
+
// if there is a eslint.json or jest.config.js/vite config file
|
|
243
|
+
function removeInferedNxProjectConfiguration(tree, projectRoot) {
|
|
244
|
+
const nxJsonPath = path.join(projectRoot, 'project.json');
|
|
245
|
+
if (tree.exists(nxJsonPath)) {
|
|
246
|
+
(0, devkit_1.updateJson)(tree, nxJsonPath, nxJson => {
|
|
247
|
+
const inferedTargets = ['github', 'version'];
|
|
248
|
+
inferedTargets.forEach(target => {
|
|
249
|
+
if (nxJson.targets?.[target]) {
|
|
250
|
+
delete nxJson.targets[target];
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
return nxJson;
|
|
254
|
+
});
|
|
231
255
|
}
|
|
232
|
-
processPackageJsonPublishConfig(tree, path.join(projectJson.root, 'package.json'), existingNpmTarget); // relying on the existing target name Npm to know if the package should be published or not
|
|
233
|
-
(0, devkit_1.updateProjectConfiguration)(tree, projectName, projectJson);
|
|
234
256
|
}
|
|
235
257
|
async function initGenerator(tree, options = {}) {
|
|
258
|
+
const workspaceRoot = `.`;
|
|
236
259
|
// Check for each project if we can find a template.yaml or a cdk.json file
|
|
237
260
|
// If it's the case we should keep the continuation jobs in the .circleci/config.yml,
|
|
238
261
|
// the .circleci/shared-config.yml
|
|
@@ -246,9 +269,13 @@ async function initGenerator(tree, options = {}) {
|
|
|
246
269
|
const templateYamlPath = path.join(projectRoot, 'template.yaml');
|
|
247
270
|
const cdkJsonPath = path.join(projectRoot, 'cdk.json');
|
|
248
271
|
const projectCircleCIPath = path.join(projectRoot, '.circleci/config.yml');
|
|
272
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
249
273
|
if (tree.exists(projectCircleCIPath)) {
|
|
250
274
|
await processCircleCIMetadata(tree, projectCircleCIPath, projectRoot);
|
|
251
275
|
}
|
|
276
|
+
if (tree.exists(packageJsonPath)) {
|
|
277
|
+
await processPackageJsonPublishConfig(tree, packageJsonPath);
|
|
278
|
+
}
|
|
252
279
|
// Check if either file exists, this may need to be adjusted based on serverless autodiscover pattern
|
|
253
280
|
if (tree.exists(templateYamlPath) || tree.exists(cdkJsonPath)) {
|
|
254
281
|
hasCdkOrTemplateFile = true;
|
|
@@ -259,20 +286,21 @@ async function initGenerator(tree, options = {}) {
|
|
|
259
286
|
tree.delete(projectCircleCIPath);
|
|
260
287
|
}
|
|
261
288
|
}
|
|
262
|
-
injectProjectJsonConfiguration(tree, projectName, options);
|
|
263
289
|
}
|
|
264
290
|
// If there is no project with a template.yaml or cdk.json file,
|
|
265
291
|
// we can delete the .circleci/shared-config.yml file
|
|
266
|
-
|
|
267
|
-
if (!hasCdkOrTemplateFile && tree.exists(sharedConfigPath)) {
|
|
292
|
+
if (!hasCdkOrTemplateFile) {
|
|
268
293
|
logger_1.consola.info('No project with a template.yaml or cdk.json file found, deleting .circleci/shared-config.yml');
|
|
269
|
-
|
|
294
|
+
const sharedConfigPath = path.join(workspaceRoot, '.circleci/shared-config.yml');
|
|
295
|
+
if (tree.exists(sharedConfigPath)) {
|
|
296
|
+
tree.delete(sharedConfigPath);
|
|
297
|
+
}
|
|
270
298
|
}
|
|
271
299
|
const packageJsonName = getPackageJsonName(tree);
|
|
272
300
|
// Delete the .circleci/config.yml file if it exists
|
|
273
|
-
tree.delete('.circleci/config.yml');
|
|
301
|
+
tree.delete(path.join(workspaceRoot, '.circleci/config.yml'));
|
|
274
302
|
// Generate the .circleci/config.yml file
|
|
275
|
-
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'),
|
|
303
|
+
(0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), workspaceRoot, {
|
|
276
304
|
queuing_release: options.queuing_release ?? true,
|
|
277
305
|
keepContinuationJobs: hasCdkOrTemplateFile,
|
|
278
306
|
packageJsonName,
|
|
@@ -280,11 +308,18 @@ async function initGenerator(tree, options = {}) {
|
|
|
280
308
|
// Patch the nx.json file with the nx release default configuration
|
|
281
309
|
injectNxReleaseConfiguration(tree, packageJsonName);
|
|
282
310
|
// Patch root package.json file
|
|
283
|
-
|
|
311
|
+
injectPackageJsonConfiguration(tree);
|
|
284
312
|
// Patch or create root project.json file
|
|
285
313
|
injectRootProjectJsonConfiguration(tree, packageJsonName);
|
|
286
|
-
|
|
314
|
+
// For each project, remove the infered targets
|
|
315
|
+
if (options.remove_infered_targets) {
|
|
316
|
+
for (const [projectName, projectConfig] of projects.entries()) {
|
|
317
|
+
const projectRoot = projectConfig.root;
|
|
318
|
+
removeInferedNxProjectConfiguration(tree, projectRoot);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
287
321
|
await (0, devkit_1.formatFiles)(tree);
|
|
322
|
+
const installCallback = (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@nx/conformance': '^3' }, 'package.json', false);
|
|
288
323
|
return (0, devkit_1.runTasksInSerial)(installCallback);
|
|
289
324
|
}
|
|
290
325
|
exports.default = initGenerator;
|