@payfit/nx-core 5.1.1-ephemeral-handle-lambda-docker.7 → 5.1.1-ephemeral-renovate-react-monorepo.2
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/src/executors/docker-build/executor.js +8 -5
- package/dist/src/executors/docker-build/executor.js.map +1 -1
- package/dist/src/executors/docker-build/schema.json +1 -1
- package/dist/src/executors/preview-deploy/executor.js +2 -19
- package/dist/src/executors/preview-deploy/executor.js.map +1 -1
- package/dist/src/executors/preview-labels/executor.d.ts +7 -0
- package/dist/src/executors/preview-labels/executor.js +107 -0
- package/dist/src/executors/preview-labels/executor.js.map +1 -0
- package/dist/src/executors/preview-labels/schema.json +17 -0
- package/dist/src/executors/publisher/frontend.js +2 -1
- package/dist/src/executors/publisher/frontend.js.map +1 -1
- package/dist/src/executors/publisher/helm.js +3 -5
- package/dist/src/executors/publisher/helm.js.map +1 -1
- package/dist/src/executors/publisher/lambda.js +1 -1
- package/dist/src/executors/publisher/lambda.js.map +1 -1
- package/dist/src/executors/release/executor.js +0 -2
- package/dist/src/executors/release/executor.js.map +1 -1
- package/dist/src/generators/init/globalFiles/.circleci/config.yml.template +2 -0
- package/dist/src/generators/local-lambda-setup/files/docker-compose/docker-compose.yml.template +21 -0
- package/dist/src/generators/local-lambda-setup/files/scripts/invoke_lambda_local.sh.template +97 -0
- package/dist/src/generators/local-lambda-setup/local-lambda-setup.d.ts +29 -0
- package/dist/src/generators/local-lambda-setup/local-lambda-setup.js +176 -0
- package/dist/src/generators/local-lambda-setup/local-lambda-setup.js.map +1 -0
- package/dist/src/generators/local-lambda-setup/schema.json +24 -0
- package/dist/src/index.js +8 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/scripts/nx-core-updater.js +312 -60
- package/dist/src/utils/common/environment.d.ts +1 -0
- package/dist/src/utils/common/environment.js +11 -0
- package/dist/src/utils/common/environment.js.map +1 -0
- package/dist/src/utils/common/oci.d.ts +17 -3
- package/dist/src/utils/common/oci.js +42 -4
- package/dist/src/utils/common/oci.js.map +1 -1
- package/dist/src/utils/common/octokit.d.ts +2 -0
- package/dist/src/utils/common/octokit.js +22 -0
- package/dist/src/utils/common/octokit.js.map +1 -0
- package/dist/src/utils/docker.d.ts +2 -1
- package/dist/src/utils/docker.js +5 -4
- package/dist/src/utils/docker.js.map +1 -1
- package/dist/src/utils/helm.d.ts +1 -1
- package/dist/src/utils/helm.js +8 -3
- package/dist/src/utils/helm.js.map +1 -1
- package/dist/src/utils/spacelift/lib/__generated__/gql.js +1 -1
- package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +65 -5
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js +17 -5
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +1 -1
- package/executors.json +5 -0
- package/generators.json +5 -0
- package/package.json +5 -4
|
@@ -8,6 +8,7 @@ const docker_1 = require("../../utils/docker");
|
|
|
8
8
|
const runExecutor = async (options, context) => {
|
|
9
9
|
const projectRoot = context.projectGraph.nodes[context.projectName].data.root;
|
|
10
10
|
const projectDockerfile = `${projectRoot}/Dockerfile`;
|
|
11
|
+
const isCI = process.env.CI === 'true';
|
|
11
12
|
if (!fs.existsSync(projectDockerfile)) {
|
|
12
13
|
logger_1.consola.warn(`Dockerfile not found at ${projectDockerfile}, skipping`);
|
|
13
14
|
return { success: true };
|
|
@@ -17,10 +18,10 @@ const runExecutor = async (options, context) => {
|
|
|
17
18
|
return { success: false };
|
|
18
19
|
}
|
|
19
20
|
const registry = {
|
|
20
|
-
url: options.
|
|
21
|
+
url: options.isPublicRegistry
|
|
21
22
|
? 'public.ecr.aws/payfit'
|
|
22
23
|
: (0, ecr_1.getAwsEcrRegistry)(),
|
|
23
|
-
name: options.
|
|
24
|
+
name: options.isPublicRegistry ? 'public.ecr.aws' : (0, ecr_1.getAwsEcrRegistry)(),
|
|
24
25
|
};
|
|
25
26
|
const commitSha = await (0, github_1.getCurrentGitCommitSha)();
|
|
26
27
|
const sanitizedRepoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
@@ -29,10 +30,12 @@ const runExecutor = async (options, context) => {
|
|
|
29
30
|
logger_1.consola.box(`Would have published docker image located at ${projectDockerfile} to registry ${options.ecrRepository} with tag ${tag} but --dry-run is enabled`);
|
|
30
31
|
return { success: true };
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
if (isCI) {
|
|
34
|
+
await (0, ecr_1.ensureEcrAuth)(registry.name, options.isPublicRegistry);
|
|
35
|
+
}
|
|
33
36
|
// Build ephemeral sha tag (immutable)
|
|
34
|
-
logger_1.consola.box(
|
|
35
|
-
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, tag, sanitizedRepoUrl, commitSha, registry.url, [], context.projectName, options.buildArgs);
|
|
37
|
+
logger_1.consola.box(`${isCI ? 'Building and pushing ephemeral' : 'Building locally'} image to ${isCI ? registry.url + '/' : ''}${options.ecrRepository}:${tag}`);
|
|
38
|
+
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, tag, sanitizedRepoUrl, commitSha, registry.url, [], context.projectName, options.buildArgs, isCI);
|
|
36
39
|
return { success: true };
|
|
37
40
|
};
|
|
38
41
|
exports.default = runExecutor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/docker-build/executor.ts"],"names":[],"mappings":";;AAAA,8BAA6B;AAI7B,gDAI+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,+CAA4D;AAG5D,MAAM,WAAW,GAGyB,KAAK,EAC7C,OAAmC,EACnC,OAAwB,EACxB,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/docker-build/executor.ts"],"names":[],"mappings":";;AAAA,8BAA6B;AAI7B,gDAI+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,+CAA4D;AAG5D,MAAM,WAAW,GAGyB,KAAK,EAC7C,OAAmC,EACnC,OAAwB,EACxB,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAA;IAEtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,gBAAO,CAAC,IAAI,CAAC,2BAA2B,iBAAiB,YAAY,CAAC,CAAA;QACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,gBAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAgB;QAC5B,GAAG,EAAE,OAAO,CAAC,gBAAgB;YAC3B,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,IAAA,uBAAiB,GAAE;QACvB,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAA,uBAAiB,GAAE;KACxE,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAsB,GAAE,CAAA;IAChD,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAA6B,GAAE,CAAA;IAC9D,MAAM,GAAG,GAAG,iBAAiB,SAAS,EAAE,CAAA;IAExC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,gBAAO,CAAC,GAAG,CACT,gDAAgD,iBAAiB,gBAAgB,OAAO,CAAC,aAAa,aAAa,GAAG,2BAA2B,CAClJ,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAA,mBAAa,EAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC9D,CAAC;IAED,sCAAsC;IACtC,gBAAO,CAAC,GAAG,CACT,GAAG,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,kBAAkB,aAAa,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,IAAI,GAAG,EAAE,CAC5I,CAAA;IAED,MAAM,IAAA,gCAAuB,EAC3B,OAAO,CAAC,aAAa,EACrB,iBAAiB,EACjB,GAAG,EACH,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,GAAG,EACZ,EAAE,EACF,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,IAAI,CACL,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const auth_app_1 = require("@octokit/auth-app");
|
|
4
|
-
const rest_1 = require("@octokit/rest");
|
|
5
3
|
const yaml = require("yaml");
|
|
6
4
|
const logger_1 = require("../../utils/common/logger");
|
|
5
|
+
const octokit_1 = require("../../utils/common/octokit");
|
|
7
6
|
const argocdOverride_1 = require("./argocdOverride");
|
|
8
7
|
const kargoPolicy_1 = require("./kargoPolicy");
|
|
9
8
|
function readFileYamlContent(file) {
|
|
@@ -27,25 +26,9 @@ function readFileYamlContent(file) {
|
|
|
27
26
|
throw new Error(`Failed to parse YAML file: ${error}`);
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
|
-
function getEnvVar(name) {
|
|
31
|
-
const value = process.env[name];
|
|
32
|
-
if (!value) {
|
|
33
|
-
throw new Error(`Missing env var ${name}`);
|
|
34
|
-
}
|
|
35
|
-
return value;
|
|
36
|
-
}
|
|
37
29
|
const runExecutor = async (options) => {
|
|
38
30
|
logger_1.consola.box(`Start preview deploy switch for ${options.targetAppName} to target branch ${options.targetBranchName} on the ${options.targetEnv} env`);
|
|
39
|
-
const octokit =
|
|
40
|
-
? new rest_1.Octokit({ auth: process.env.GITHUB_TOKEN })
|
|
41
|
-
: new rest_1.Octokit({
|
|
42
|
-
authStrategy: auth_app_1.createAppAuth,
|
|
43
|
-
auth: {
|
|
44
|
-
appId: getEnvVar('GITHUB_APP_ID'),
|
|
45
|
-
privateKey: getEnvVar('GITHUB_PRIVATE_KEY'),
|
|
46
|
-
installationId: getEnvVar('GITHUB_INSTALLATION_ID'),
|
|
47
|
-
},
|
|
48
|
-
});
|
|
31
|
+
const octokit = (0, octokit_1.OctokitAuth)();
|
|
49
32
|
const argocdOverridePath = `apps/${options.targetAppName}/${options.targetEnv}/.argocd-override.yaml`;
|
|
50
33
|
const kargoPolicyPath = `.kargo/policy.yaml`;
|
|
51
34
|
const message = `chore(${options.targetAppName}): switch deployment branch to ${options.targetBranchName} on ${options.targetEnv}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/preview-deploy/executor.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/preview-deploy/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
+
import { Octokit } from '@octokit/rest';
|
|
3
|
+
import { PreviewLabelsExecutorOptions, PreviewLabelsExecutorSchema } from './schema';
|
|
4
|
+
export declare function getDeterministicColorFromName(name: string): string;
|
|
5
|
+
export declare function managePreviewLabels(projectList: string[], octokit: Octokit, owner: string, repo: string): Promise<void>;
|
|
6
|
+
declare const runExecutor: (options: PreviewLabelsExecutorOptions, context: ExecutorContext) => Promise<PreviewLabelsExecutorSchema>;
|
|
7
|
+
export default runExecutor;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDeterministicColorFromName = getDeterministicColorFromName;
|
|
4
|
+
exports.managePreviewLabels = managePreviewLabels;
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const enums_1 = require("../../utils/common/enums");
|
|
8
|
+
const github_1 = require("../../utils/common/github");
|
|
9
|
+
const logger_1 = require("../../utils/common/logger");
|
|
10
|
+
const nx_1 = require("../../utils/common/nx");
|
|
11
|
+
const octokit_1 = require("../../utils/common/octokit");
|
|
12
|
+
function getDeterministicColorFromName(name) {
|
|
13
|
+
let hash = 0;
|
|
14
|
+
for (let i = 0; i < name.length; i++) {
|
|
15
|
+
hash = name.charCodeAt(i) + ((hash << 5) - hash);
|
|
16
|
+
}
|
|
17
|
+
const hex = (hash >>> 0).toString(16).slice(-6).padStart(6, '0');
|
|
18
|
+
const r = parseInt(hex.slice(0, 2), 16);
|
|
19
|
+
const g = parseInt(hex.slice(2, 4), 16);
|
|
20
|
+
const b = parseInt(hex.slice(4, 6), 16);
|
|
21
|
+
return hex;
|
|
22
|
+
}
|
|
23
|
+
function normalizeProjectName(name) {
|
|
24
|
+
return name.replace(/^@payfit\//, '');
|
|
25
|
+
}
|
|
26
|
+
async function managePreviewLabels(projectList, octokit, owner, repo) {
|
|
27
|
+
// Get existing labels from the repository
|
|
28
|
+
const { data: existingLabels } = await octokit.rest.issues.listLabelsForRepo({
|
|
29
|
+
owner,
|
|
30
|
+
repo,
|
|
31
|
+
});
|
|
32
|
+
// Create a set of expected labels based on the application list
|
|
33
|
+
const expectedLabels = new Set(projectList.map(app => `:eyes:/${app}`));
|
|
34
|
+
// Find existing preview labels (labels that start with :eyes:)
|
|
35
|
+
const existingPreviewLabels = existingLabels.filter(label => label.name.startsWith(':eyes:/'));
|
|
36
|
+
// Add missing labels
|
|
37
|
+
for (const expectedLabel of expectedLabels) {
|
|
38
|
+
const exists = existingPreviewLabels.some(label => label.name === expectedLabel);
|
|
39
|
+
if (!exists) {
|
|
40
|
+
logger_1.consola.info(`Adding label: ${expectedLabel}`);
|
|
41
|
+
const appName = expectedLabel.replace(':eyes:/', '');
|
|
42
|
+
const color = getDeterministicColorFromName(appName);
|
|
43
|
+
await octokit.rest.issues.createLabel({
|
|
44
|
+
owner,
|
|
45
|
+
repo,
|
|
46
|
+
name: expectedLabel,
|
|
47
|
+
color,
|
|
48
|
+
description: `Preview label for ${expectedLabel.replace(':eyes:/', '')} application`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Remove labels that are no longer needed
|
|
53
|
+
for (const existingLabel of existingPreviewLabels) {
|
|
54
|
+
if (!expectedLabels.has(existingLabel.name)) {
|
|
55
|
+
logger_1.consola.info(`Removing label: ${existingLabel.name}`);
|
|
56
|
+
await octokit.rest.issues.deleteLabel({
|
|
57
|
+
owner,
|
|
58
|
+
repo,
|
|
59
|
+
name: existingLabel.name,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const runExecutor = async (options, context) => {
|
|
65
|
+
try {
|
|
66
|
+
logger_1.consola.info('Starting preview labels management');
|
|
67
|
+
// Filter out applications that don't exist in the workspace and only keep Docker projects
|
|
68
|
+
const projectsMap = context.projectsConfigurations?.projects || {};
|
|
69
|
+
const normalizedProjectNames = new Set(Object.keys(projectsMap).map(normalizeProjectName));
|
|
70
|
+
const validApplicationNames = options.projectList.filter(appName => {
|
|
71
|
+
const exists = normalizedProjectNames.has(appName);
|
|
72
|
+
if (!exists) {
|
|
73
|
+
logger_1.consola.warn(`Project '${appName}' not found in workspace, skipping label creation`);
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
// Find the project configuration by checking both original and normalized names
|
|
77
|
+
const projectConfig = projectsMap[appName] ||
|
|
78
|
+
Object.entries(projectsMap).find(([key]) => normalizeProjectName(key) === appName)?.[1];
|
|
79
|
+
if (!projectConfig) {
|
|
80
|
+
logger_1.consola.warn(`Could not find configuration for project '${appName}', skipping label creation`);
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
const projectRoot = (0, path_1.join)(devkit_1.workspaceRoot, projectConfig.root);
|
|
84
|
+
const artifactTypes = (0, nx_1.getProjectArtifactTypes)(projectRoot, projectConfig);
|
|
85
|
+
if (artifactTypes?.length !== 1 ||
|
|
86
|
+
!artifactTypes.includes(enums_1.ArtifactType.DOCKER)) {
|
|
87
|
+
logger_1.consola.info(`Project '${appName}' is not compatible (detected artifact type: ${artifactTypes?.join(', ') || 'none'}), skipping label creation`);
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
return true;
|
|
91
|
+
});
|
|
92
|
+
const octokit = (0, octokit_1.OctokitAuth)();
|
|
93
|
+
await managePreviewLabels(validApplicationNames, octokit, 'PayFit', await (0, github_1.getGitRepositoryName)());
|
|
94
|
+
logger_1.consola.success('Preview labels management completed successfully');
|
|
95
|
+
return {
|
|
96
|
+
success: true,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
logger_1.consola.error('Preview labels management failed:', error);
|
|
101
|
+
return {
|
|
102
|
+
success: false,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
exports.default = runExecutor;
|
|
107
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/preview-labels/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"version": 2,
|
|
4
|
+
"title": "Preview labels",
|
|
5
|
+
"description": "Use it to setup application labels from GHA",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"projectList": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"items": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"description": "List of applications to setup labels for"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": ["projectList"]
|
|
17
|
+
}
|
|
@@ -6,6 +6,7 @@ const devkit_1 = require("@nx/devkit");
|
|
|
6
6
|
const tree_1 = require("nx/src/generators/tree");
|
|
7
7
|
const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
8
8
|
const ecr_1 = require("../../utils/common/ecr");
|
|
9
|
+
const enums_1 = require("../../utils/common/enums");
|
|
9
10
|
const logger_1 = require("../../utils/common/logger");
|
|
10
11
|
const oci_1 = require("../../utils/common/oci");
|
|
11
12
|
const s3_1 = require("../../utils/frontend/s3");
|
|
@@ -42,7 +43,7 @@ async function publishFrontend(options, context, version, projectRoot, projectDi
|
|
|
42
43
|
const packageJsonPath = (0, path_1.join)(absoluteProjectRoot, 'package.json');
|
|
43
44
|
logger_1.consola.log(`Pushing empty image to ECR ${(0, ecr_1.getAwsEcrRegistry)()}/${ociRepository}:${version}`);
|
|
44
45
|
await (0, aws_auth_1.loginToEcr)((0, ecr_1.getAwsEcrRegistry)());
|
|
45
|
-
await (0, oci_1.pushImageToEcr)(ociRepository, version, packageJsonPath,
|
|
46
|
+
await (0, oci_1.pushImageToEcr)(ociRepository, version, packageJsonPath, enums_1.ArtifactType.FRONTEND, (0, ecr_1.getAwsEcrRegistry)());
|
|
46
47
|
logger_1.consola.success('Empty image pushed to ECR successfully!');
|
|
47
48
|
}
|
|
48
49
|
//# sourceMappingURL=frontend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../../../src/executors/publisher/frontend.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../../../src/executors/publisher/frontend.ts"],"names":[],"mappings":";;AAiBA,0CAwEC;AAzFD,+BAAqC;AAErC,uCAA2D;AAC3D,iDAA+C;AAE/C,0DAAsE;AACtE,gDAA0D;AAC1D,oDAAuD;AACvD,sDAAmD;AACnD,gDAAuD;AACvD,gDAAkD;AAClD,wEAG4C;AAGrC,KAAK,UAAU,eAAe,CACnC,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAmB,EACnB,QAAiB;IAEjB,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;IACvE,MAAM,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,IAAI,EAAE,CAAA;IACzE,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,IAAI,EAAE,CAAA;IAC7E,MAAM,WAAW,GAAG,IAAI,aAAM,CAAC,sBAAa,EAAE,KAAK,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,QAAQ,2BAA2B,IAAI,OAAO,EAAE,CAAA;IACrE,mHAAmH;IACnH,MAAM,mBAAmB,GAAG,IAAA,eAAQ,EAAC,sBAAa,EAAE,WAAW,CAAC,CAAA;IAChE,mHAAmH;IACnH,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAAC,sBAAa,EAAE,WAAW,CAAC,CAAA;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAA;IAE1E,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,CAAC,GAAG,yBAAyB,EAAE,cAAc,CAAC,CAAA;IAExE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,gBAAO,CAAC,IAAI,CACV,yCAAyC,OAAO,CAAC,WAAW,sBAAsB,CACnF,CAAA;QACD,OAAM;IACR,CAAC;IAED,WAAW,CAAC,MAAM,CAAC,mBAAmB,GAAG,eAAe,CAAC,CAAA;IACzD,MAAM,IAAA,gDAA+B,EACnC,mBAAmB,EACnB,WAAW,EACX,OAAO,CACR,CAAA;IACD,MAAM,IAAA,iCAAgB,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAE7C,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAO,CAAC,GAAG,CACT,mDAAmD,WAAW,iBAAiB,2BAA2B,IAAI,OAAO,iBAAiB,OAAO,2BAA2B,CACzK,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,IAAA,uBAAY,GAAE,CAAA;IAEpB,gBAAO,CAAC,GAAG,CACT,2CAA2C,2BAA2B,IAAI,OAAO,iBAAiB,OAAO,EAAE,CAC5G,CAAA;IAED,gBAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC1C,MAAM,IAAA,aAAQ,EACZ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,mCAAmC,CACpC,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;IACjE,gBAAO,CAAC,GAAG,CACT,8BAA8B,IAAA,uBAAiB,GAAE,IAAI,aAAa,IAAI,OAAO,EAAE,CAChF,CAAA;IACD,MAAM,IAAA,qBAAU,EAAC,IAAA,uBAAiB,GAAE,CAAC,CAAA;IACrC,MAAM,IAAA,oBAAc,EAClB,aAAa,EACb,OAAO,EACP,eAAe,EACf,oBAAY,CAAC,QAAQ,EACrB,IAAA,uBAAiB,GAAE,CACpB,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -50,12 +50,10 @@ async function publishHelm(options, context, version, projectRoot, projectDist,
|
|
|
50
50
|
// If chartOciRegistry is provided, push to ECR using OCI format
|
|
51
51
|
if (options.chartOciRegistry) {
|
|
52
52
|
logger_1.consola.log(`Publishing Helm chart to OCI registry ${options.chartOciRegistry}`);
|
|
53
|
-
await (0, helm_1.pushOciPackagedHelm)(packagedHelmChartPath, options.chartOciRegistry);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// Otherwise, push to the chartmuseum as before
|
|
57
|
-
await (0, helm_1.pushPackagedHelm)(packagedHelmChartPath, packagedHelmChartName, options.chartRegistry, gitBranchName);
|
|
53
|
+
await (0, helm_1.pushOciPackagedHelm)(packagedHelmChartPath, options.chartOciRegistry, version, chartConfigPath);
|
|
58
54
|
}
|
|
55
|
+
// Otherwise, push to the chartmuseum as before
|
|
56
|
+
await (0, helm_1.pushPackagedHelm)(packagedHelmChartPath, packagedHelmChartName, options.chartRegistry, gitBranchName);
|
|
59
57
|
logger_1.consola.success('Helm chart published successfully!');
|
|
60
58
|
}
|
|
61
59
|
catch (e_1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/executors/publisher/helm.ts"],"names":[],"mappings":";;AAoBA,
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/executors/publisher/helm.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ async function publishLambda(options, context, version, projectRoot, projectDist
|
|
|
79
79
|
const packageJsonPath = (0, path_1.join)(projectDist, 'package.json');
|
|
80
80
|
logger_1.consola.info(`Pushing OCI Artifact to ECR ${(0, ecr_1.getAwsEcrRegistry)()}/${options.lambdaOciRepository}:${version}`);
|
|
81
81
|
await (0, aws_auth_1.loginToEcr)((0, ecr_1.getAwsEcrRegistry)());
|
|
82
|
-
await (0, oci_1.pushImageToEcr)(options.lambdaOciRepository, version, packageJsonPath,
|
|
82
|
+
await (0, oci_1.pushImageToEcr)(options.lambdaOciRepository, version, packageJsonPath, enums_1.ArtifactType.LAMBDA, (0, ecr_1.getAwsEcrRegistry)());
|
|
83
83
|
logger_1.consola.success(`Lambda version ${version} successfully created and smoke tests passed, your lambda is ready to be promoted in Kargo !`);
|
|
84
84
|
}
|
|
85
85
|
//# sourceMappingURL=lambda.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ const runExecutor = async (options, context) => {
|
|
|
17
17
|
const isPreRelease = options?.preRelease != null
|
|
18
18
|
? options.preRelease
|
|
19
19
|
: branchName != 'main' && branchName != 'master';
|
|
20
|
-
const specifier = isPreRelease ? 'prerelease' : options.specifier;
|
|
21
20
|
if (isPreRelease)
|
|
22
21
|
logger_1.consola.warn('This is an ephemeral release');
|
|
23
22
|
if (!isPreRelease) {
|
|
@@ -28,7 +27,6 @@ const runExecutor = async (options, context) => {
|
|
|
28
27
|
const { workspaceVersion, projectsVersionData } = await (0, release_1.releaseVersion)({
|
|
29
28
|
dryRun,
|
|
30
29
|
verbose: options.verbose,
|
|
31
|
-
specifier,
|
|
32
30
|
groups: options.groups,
|
|
33
31
|
preid: isPreRelease
|
|
34
32
|
? `ephemeral-${branchName.substring(0, 100)}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":";;AACA,wCAA6E;AAE7E,0DAGoC;AACpC,sDAGkC;AAClC,sDAAmD;AACnD,gDAAkD;AAGlD,MAAM,WAAW,GAGqB,KAAK,EACzC,OAA+B,EAC/B,OAAwB,EACxB,EAAE;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;IAE3E,IAAI,IAAA,2BAAgB,GAAE,EAAE,CAAC;QACvB,gBAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACzD,MAAM,IAAA,8BAAmB,GAAE,CAAA;QAC3B,MAAM,IAAA,eAAS,GAAE,CAAA;QACjB,gBAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,qCAA4B,GAAE,CAAA;IAEvD,MAAM,YAAY,GAChB,OAAO,EAAE,UAAU,IAAI,IAAI;QACzB,CAAC,CAAC,OAAO,CAAC,UAAU;QACpB,CAAC,CAAC,UAAU,IAAI,MAAM,IAAI,UAAU,IAAI,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/generators/local-lambda-setup/files/docker-compose/docker-compose.yml.template
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: '<%= repositoryName %>'
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
localstack:
|
|
5
|
+
image: localstack/localstack:4.10.0
|
|
6
|
+
container_name: localstack
|
|
7
|
+
ports:
|
|
8
|
+
- '127.0.0.1:4566:4566'
|
|
9
|
+
- '127.0.0.1:4510-4559:4510-4559'
|
|
10
|
+
environment:
|
|
11
|
+
- AWS_ACCESS_KEY_ID=localstack
|
|
12
|
+
- AWS_SECRET_ACCESS_KEY=a-secret-access-key
|
|
13
|
+
- AWS_REGION=eu-west-3
|
|
14
|
+
- DEBUG=1
|
|
15
|
+
- DOCKER_HOST=unix:///var/run/docker.sock
|
|
16
|
+
- LAMBDA_RUNTIME_ENVIRONMENT_TIMEOUT=30
|
|
17
|
+
volumes:
|
|
18
|
+
- ./tmp/localstack:/var/lib/localstack
|
|
19
|
+
- /var/run/docker.sock:/var/run/docker.sock
|
|
20
|
+
security_opt:
|
|
21
|
+
- no-new-privileges:true
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
if [ $# -lt 1 ]; then
|
|
3
|
+
echo "ERROR FUNCTION_NAME name required"
|
|
4
|
+
exit 1
|
|
5
|
+
fi
|
|
6
|
+
FUNCTION_NAME=$1
|
|
7
|
+
NX_PROJECT=$2
|
|
8
|
+
PROJECT_ROOT=$3
|
|
9
|
+
LAMBDA_RUNTIME=$4
|
|
10
|
+
LAMBDA_HANDLER=$5
|
|
11
|
+
LAMBDA_TIMEOUT=$6
|
|
12
|
+
|
|
13
|
+
DIST_FOLDER_PATH=$(npx nx show project $NX_PROJECT --json | jq -r '.targets.build.options.outputPath // .targets.build.outputs[0]' | head -1 | sed 's/{[^}]*}/./g')
|
|
14
|
+
|
|
15
|
+
# zip the build result
|
|
16
|
+
cd $DIST_FOLDER_PATH && zip -r ./$FUNCTION_NAME.zip . >/dev/null && cd -
|
|
17
|
+
|
|
18
|
+
localAWS() {
|
|
19
|
+
AWS_ACCESS_KEY_ID=localstack \
|
|
20
|
+
AWS_SECRET_ACCESS_KEY=secret \
|
|
21
|
+
AWS_DEFAULT_REGION=eu-west-3 \
|
|
22
|
+
aws --endpoint-url=http://localhost:4566 --no-cli-pager "$@"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
# Load environment variables
|
|
26
|
+
if [ -f "$PWD/$PROJECT_ROOT/.env.$FUNCTION_NAME" ]; then
|
|
27
|
+
ENV_VARIABLES=$(grep -v '^\s*#' "$PWD/$PROJECT_ROOT/.env.$FUNCTION_NAME" | grep -v '^\s*$' | paste -s -d "," -)
|
|
28
|
+
else
|
|
29
|
+
echo "No file .env.$FUNCTION_NAME found"
|
|
30
|
+
fi
|
|
31
|
+
# Check if function exists
|
|
32
|
+
localAWS lambda get-function --function-name $FUNCTION_NAME >/dev/null 2>&1
|
|
33
|
+
if [ 0 -eq $? ]; then
|
|
34
|
+
# Update lambda in localstack
|
|
35
|
+
echo "Updating lambda $FUNCTION_NAME configuration"
|
|
36
|
+
localAWS lambda update-function-configuration \
|
|
37
|
+
--function-name "$FUNCTION_NAME" \
|
|
38
|
+
--role "arn:aws:iam::000000000000:role/$FUNCTION_NAME" \
|
|
39
|
+
--runtime "$LAMBDA_RUNTIME" \
|
|
40
|
+
--timeout "$LAMBDA_TIMEOUT" \
|
|
41
|
+
--memory-size 128 \
|
|
42
|
+
--handler $LAMBDA_HANDLER \
|
|
43
|
+
--environment "Variables={$ENV_VARIABLES}" \
|
|
44
|
+
--no-cli-pager >/dev/null 2>&1
|
|
45
|
+
echo "Updating $FUNCTION_NAME lambda code"
|
|
46
|
+
localAWS lambda update-function-code \
|
|
47
|
+
--function-name $FUNCTION_NAME \
|
|
48
|
+
--zip-file fileb://$DIST_FOLDER_PATH/$FUNCTION_NAME.zip \
|
|
49
|
+
--no-cli-pager >/dev/null 2>&1
|
|
50
|
+
else
|
|
51
|
+
# Create lambda in localstack
|
|
52
|
+
echo "Creating lambda $FUNCTION_NAME"
|
|
53
|
+
localAWS lambda create-function \
|
|
54
|
+
--function-name "$FUNCTION_NAME" \
|
|
55
|
+
--role "arn:aws:iam::000000000000:role/lambda-demo" \
|
|
56
|
+
--runtime "$LAMBDA_RUNTIME" \
|
|
57
|
+
--timeout "$LAMBDA_TIMEOUT" \
|
|
58
|
+
--memory-size 128 \
|
|
59
|
+
--handler $LAMBDA_HANDLER \
|
|
60
|
+
--environment "Variables={$ENV_VARIABLES}" \
|
|
61
|
+
--zip-file "fileb://$DIST_FOLDER_PATH/$FUNCTION_NAME.zip" \
|
|
62
|
+
--no-cli-pager >/dev/null 2>&1
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
TIMEOUT=60
|
|
66
|
+
COUNTER=0
|
|
67
|
+
|
|
68
|
+
while [ $(localAWS lambda get-function --function-name "$FUNCTION_NAME" --query 'Configuration.State' --output text) != "Active" ]; do
|
|
69
|
+
if [ $COUNTER -ge $TIMEOUT ]; then
|
|
70
|
+
echo "Timeout: Function $FUNCTION_NAME not ready after ${TIMEOUT} seconds"
|
|
71
|
+
exit 1
|
|
72
|
+
fi
|
|
73
|
+
echo "Waiting for function $FUNCTION_NAME... (${COUNTER}s)"
|
|
74
|
+
sleep 5
|
|
75
|
+
COUNTER=$((COUNTER + 5))
|
|
76
|
+
done
|
|
77
|
+
echo "Function $FUNCTION_NAME is ready!"
|
|
78
|
+
|
|
79
|
+
# invoke lambda
|
|
80
|
+
response=$(localAWS lambda invoke \
|
|
81
|
+
--function-name "$FUNCTION_NAME" \
|
|
82
|
+
--payload fileb://$PWD/$PROJECT_ROOT/events/$FUNCTION_NAME.json \
|
|
83
|
+
"$DIST_FOLDER_PATH/$FUNCTION_NAME.output")
|
|
84
|
+
|
|
85
|
+
output=$(cat $DIST_FOLDER_PATH/$FUNCTION_NAME.output | jq)
|
|
86
|
+
|
|
87
|
+
if echo "$response" | jq -e '.FunctionError' > /dev/null 2>&1; then
|
|
88
|
+
echo "Error: Lambda $FUNCTION_NAME execution failed"
|
|
89
|
+
echo "$output"
|
|
90
|
+
exit 1
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
echo "Function $FUNCTION_NAME executed successfully"
|
|
94
|
+
echo "$output"
|
|
95
|
+
|
|
96
|
+
rm $DIST_FOLDER_PATH/$FUNCTION_NAME.zip
|
|
97
|
+
rm $DIST_FOLDER_PATH/$FUNCTION_NAME.output
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ProjectConfiguration, Tree } from '@nx/devkit';
|
|
2
|
+
import { LocalLambdaSetupGeneratorSchema } from './schema';
|
|
3
|
+
interface LambdaTerraformConfiguration {
|
|
4
|
+
environmentVariables: Record<string, string>;
|
|
5
|
+
secrets: Record<string, string>;
|
|
6
|
+
ssmParameters: Record<string, string>;
|
|
7
|
+
config: {
|
|
8
|
+
runtime: string;
|
|
9
|
+
handler: string;
|
|
10
|
+
timeout: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function getLambdaTerraformConfiguration(tree: Tree, projectRoot: string, lambdaName: string): Promise<{
|
|
14
|
+
environmentVariables: any;
|
|
15
|
+
secrets: any;
|
|
16
|
+
ssmParameters: any;
|
|
17
|
+
config: {
|
|
18
|
+
runtime: any;
|
|
19
|
+
handler: any;
|
|
20
|
+
timeout: any;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
23
|
+
export declare function createEnvFile(tree: Tree, projectRoot: string, lambdaName: string, lambdaTerraformConfiguration: LambdaTerraformConfiguration): Promise<void>;
|
|
24
|
+
export declare function generateDockerComposeFile(tree: Tree): void;
|
|
25
|
+
export declare function createJsonEventFile(tree: Tree, projectRoot: string, lambdaName: string): Promise<void>;
|
|
26
|
+
export declare function updateProjectJson(tree: Tree, lambdaName: string, projectConfiguration: ProjectConfiguration, lambdaTerraformConfiguration: LambdaTerraformConfiguration): void;
|
|
27
|
+
export declare function generateScripts(tree: Tree): void;
|
|
28
|
+
export declare function localLambdaSetupGenerator(tree: Tree, options: LocalLambdaSetupGeneratorSchema): Promise<void>;
|
|
29
|
+
export default localLambdaSetupGenerator;
|