@payfit/nx-core 4.21.2-ephemeral-9fd0449.0 → 4.22.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 +2 -1
- package/src/executors/publisher/docker.js +8 -6
- package/src/executors/publisher/docker.js.map +1 -1
- package/src/executors/publisher/executor.js +4 -4
- package/src/executors/publisher/executor.js.map +1 -1
- package/src/executors/publisher/helm.js +14 -9
- package/src/executors/publisher/helm.js.map +1 -1
- package/src/utils/aws-auth.d.ts +3 -8
- package/src/utils/aws-auth.js +8 -11
- package/src/utils/aws-auth.js.map +1 -1
- package/src/utils/docker.d.ts +3 -6
- package/src/utils/docker.js +7 -3
- package/src/utils/docker.js.map +1 -1
- package/src/utils/exec.d.ts +4 -7
- package/src/utils/exec.js +15 -18
- package/src/utils/exec.js.map +1 -1
- package/src/utils/github.js +6 -6
- package/src/utils/github.js.map +1 -1
- package/src/utils/helm.d.ts +3 -15
- package/src/utils/helm.js +16 -15
- package/src/utils/helm.js.map +1 -1
- package/src/utils/logger.d.ts +1 -0
- package/src/utils/logger.js +8 -0
- package/src/utils/logger.js.map +1 -0
- package/src/utils/nx.js +0 -2
- package/src/utils/nx.js.map +1 -1
- package/src/utils/tsh.js +10 -15
- package/src/utils/tsh.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payfit/nx-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.22.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"directory": "packages/nx-core"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
+
"args-tokenizer": "^0.3.0",
|
|
14
15
|
"consola": "^3.4.2",
|
|
15
16
|
"get-port": "^7.1.0",
|
|
16
17
|
"ky": "^1.8.1",
|
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.publishDocker = publishDocker;
|
|
4
4
|
const fs = require("node:fs");
|
|
5
|
-
const consola_1 = require("consola");
|
|
6
5
|
const aws_auth_1 = require("../../utils/aws-auth");
|
|
7
6
|
const constants_1 = require("../../utils/constants");
|
|
8
7
|
const docker_1 = require("../../utils/docker");
|
|
9
8
|
const github_1 = require("../../utils/github");
|
|
9
|
+
const logger_1 = require("../../utils/logger");
|
|
10
10
|
async function publishDocker(options, context, version, projectRoot) {
|
|
11
11
|
const projectDockerfile = `${projectRoot}/Dockerfile`;
|
|
12
12
|
if (!fs.existsSync(projectDockerfile)) {
|
|
13
|
-
|
|
13
|
+
logger_1.consola.warn(`Dockerfile not found at ${projectDockerfile}, soft failing`);
|
|
14
14
|
return {
|
|
15
15
|
success: true,
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
if (!options.ecrRegistry) {
|
|
19
|
-
|
|
19
|
+
logger_1.consola.error('Dockerfile detected but No ECR registry provided, add "ecrRegistry" to your project.json metadata');
|
|
20
20
|
return {
|
|
21
21
|
success: false,
|
|
22
22
|
};
|
|
@@ -27,11 +27,13 @@ async function publishDocker(options, context, version, projectRoot) {
|
|
|
27
27
|
: process.env.AWS_ECR_REGISTRY;
|
|
28
28
|
await (0, aws_auth_1.checkAwsAuth)();
|
|
29
29
|
await (0, aws_auth_1.loginToEcr)(registry);
|
|
30
|
-
|
|
30
|
+
logger_1.consola.box(`Publishing docker image to ${registry}/${options.ecrRegistry} with version ${version}`);
|
|
31
|
+
logger_1.consola.start('Building docker image');
|
|
31
32
|
await (0, docker_1.buildDockerImage)(options.ecrRegistry, projectDockerfile, version, await (0, github_1.getSanitizedCurrentGitRepoUrl)(), await (0, github_1.getCurrentGitCommitSha)(), registry);
|
|
32
|
-
|
|
33
|
+
logger_1.consola.success('Docker image built!');
|
|
34
|
+
logger_1.consola.start('Pushing docker image');
|
|
33
35
|
await (0, aws_auth_1.pushImageToEcr)(options.ecrRegistry, version, registry);
|
|
34
|
-
|
|
36
|
+
logger_1.consola.success('Docker image published successfully!');
|
|
35
37
|
return {
|
|
36
38
|
success: true,
|
|
37
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/docker.ts"],"names":[],"mappings":";;AAcA,
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/docker.ts"],"names":[],"mappings":";;AAcA,sCAuDC;AArED,8BAA6B;AAI7B,mDAA+E;AAC/E,qDAA2D;AAC3D,+CAAqD;AACrD,+CAG2B;AAC3B,+CAA4C;AAGrC,KAAK,UAAU,aAAa,CACjC,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB;IAInB,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,gBAAO,CAAC,IAAI,CAAC,2BAA2B,iBAAiB,gBAAgB,CAAC,CAAA;QAC1E,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,gBAAO,CAAC,KAAK,CACX,mGAAmG,CACpG,CAAA;QACD,OAAO;YACL,OAAO,EAAE,KAAK;SACf,CAAA;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB;QACvC,CAAC,CAAC,+BAAmB;QACrB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;IAEhC,MAAM,IAAA,uBAAY,GAAE,CAAA;IACpB,MAAM,IAAA,qBAAU,EAAC,QAAQ,CAAC,CAAA;IAE1B,gBAAO,CAAC,GAAG,CACT,8BAA8B,QAAQ,IAAI,OAAO,CAAC,WAAW,iBAAiB,OAAO,EAAE,CACxF,CAAA;IAED,gBAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACtC,MAAM,IAAA,yBAAgB,EACpB,OAAO,CAAC,WAAW,EACnB,iBAAiB,EACjB,OAAO,EACP,MAAM,IAAA,sCAA6B,GAAE,EACrC,MAAM,IAAA,+BAAsB,GAAE,EAC9B,QAAQ,CACT,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAEtC,gBAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,MAAM,IAAA,yBAAc,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,gBAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;IAEvD,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const logger_1 = require("../../utils/logger");
|
|
4
4
|
const nx_1 = require("../../utils/nx");
|
|
5
5
|
const docker_1 = require("./docker");
|
|
6
6
|
const helm_1 = require("./helm");
|
|
@@ -10,9 +10,9 @@ const runExecutor = async (options, context) => {
|
|
|
10
10
|
const projectRoot = projectGraph.data.root;
|
|
11
11
|
const projectDist = await (0, nx_1.getDistForApp)(projectGraph);
|
|
12
12
|
const version = (0, nx_1.getVersion)(projectDist);
|
|
13
|
-
consola_1.consola.log('version = ' + version);
|
|
14
13
|
if (version.includes('-semver')) {
|
|
15
|
-
|
|
14
|
+
// this is while we have a weird Nx bug, trying to publish not affected apps by the release
|
|
15
|
+
logger_1.consola.warn(`Version '${version}' should not be published (probably due a Nx bug), soft failing.`);
|
|
16
16
|
return {
|
|
17
17
|
success: true,
|
|
18
18
|
};
|
|
@@ -21,7 +21,7 @@ const runExecutor = async (options, context) => {
|
|
|
21
21
|
await (0, helm_1.publishHelm)(options, context, version, projectRoot, projectDist);
|
|
22
22
|
}
|
|
23
23
|
catch (error) {
|
|
24
|
-
|
|
24
|
+
logger_1.consola.error(error);
|
|
25
25
|
return {
|
|
26
26
|
success: false,
|
|
27
27
|
};
|
|
@@ -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,+CAA4C;AAC5C,uCAA+E;AAC/E,qCAAwC;AACxC,iCAAoC;AAGpC,MAAM,WAAW,GAGuB,KAAK,EAC3C,OAAiC,EACjC,OAAwB,EACxB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,wBAAmB,EAAC,OAAO,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAA;QAC1C,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAA;QACrD,MAAM,OAAO,GAAG,IAAA,eAAU,EAAC,WAAW,CAAC,CAAA;QAEvC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,2FAA2F;YAC3F,gBAAO,CAAC,IAAI,CACV,YAAY,OAAO,kEAAkE,CACtF,CAAA;YACD,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAA;QACH,CAAC;QAED,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAC3D,MAAM,IAAA,kBAAW,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAA;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;SACf,CAAA;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -3,10 +3,10 @@ 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 consola_1 = require("consola");
|
|
7
6
|
const aws_auth_1 = require("../../utils/aws-auth");
|
|
8
7
|
const github_1 = require("../../utils/github");
|
|
9
8
|
const helm_1 = require("../../utils/helm");
|
|
9
|
+
const logger_1 = require("../../utils/logger");
|
|
10
10
|
const tsh_1 = require("../../utils/tsh");
|
|
11
11
|
async function publishHelm(options, context, version, projectRoot, projectDist) {
|
|
12
12
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
@@ -19,38 +19,43 @@ async function publishHelm(options, context, version, projectRoot, projectDist)
|
|
|
19
19
|
if (!gitBranchName)
|
|
20
20
|
throw new Error('Unable to get current Git branch');
|
|
21
21
|
if (!fs.existsSync(projectHelmFolder)) {
|
|
22
|
-
|
|
22
|
+
logger_1.consola.warn(`.deploy folder not found at ${projectHelmFolder}, soft failing`);
|
|
23
23
|
return {
|
|
24
24
|
success: true,
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
if (!options.chartRegistry) {
|
|
28
|
-
|
|
28
|
+
logger_1.consola.error('Helm chart detected but no chart registry provided, add "chartRegistry" to your project.json metadata');
|
|
29
29
|
return {
|
|
30
30
|
success: false,
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
await (0, aws_auth_1.checkAwsAuth)();
|
|
34
|
-
|
|
34
|
+
logger_1.consola.box(`Publishing Helm chart to ${options.chartRegistry}/${gitBranchName} with version ${version}`);
|
|
35
35
|
// connect to the chartmuseum through teleport
|
|
36
36
|
const proxyData = tslib_1.__addDisposableResource(env_1, await (0, tsh_1.getLocalPortForChartMuseum)(), false);
|
|
37
37
|
await proxyData.isReady();
|
|
38
|
+
logger_1.consola.start('Building Helm chart');
|
|
38
39
|
await (0, helm_1.setupTeleportProxyHelmChartFile)(projectHelmFolder, proxyData.port);
|
|
39
40
|
await (0, helm_1.installHelmRepo)(projectHelmFolder);
|
|
40
41
|
await (0, helm_1.patchImageTag)(valuesConfigPath, chartConfigPath, version);
|
|
41
42
|
await (0, helm_1.packageHelm)(projectHelmFolder, version, destinationHelmFolder);
|
|
42
43
|
await (0, helm_1.resetTeleportProxyHelmChartFile)(projectHelmFolder, proxyData.port);
|
|
44
|
+
logger_1.consola.success('Helm chart packaged!');
|
|
43
45
|
const chartConfig = await (0, helm_1.getHelmChartFile)(projectHelmFolder);
|
|
44
46
|
const packagedHelmChartName = `${chartConfig.name}-${version}.tgz`;
|
|
45
47
|
const packagedHelmChartPath = `${destinationHelmFolder}${packagedHelmChartName}`;
|
|
48
|
+
logger_1.consola.start('Publishing Helm chart');
|
|
46
49
|
// If ociEcrRegistry is provided, push to ECR using OCI format
|
|
47
50
|
if (options.ociEcrRegistry) {
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
logger_1.consola.log(`Publishing Helm chart to OCI registry ${options.ociEcrRegistry}`);
|
|
52
|
+
await (0, helm_1.pushOciPackagedHelm)(packagedHelmChartPath, options.ociEcrRegistry);
|
|
50
53
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
else {
|
|
55
|
+
// Otherwise, push to the chartmuseum as before
|
|
56
|
+
await (0, helm_1.pushPackagedHelm)(packagedHelmChartPath, packagedHelmChartName, options.chartRegistry, gitBranchName);
|
|
57
|
+
}
|
|
58
|
+
logger_1.consola.success('Helm chart published successfully!');
|
|
54
59
|
return {
|
|
55
60
|
success: true,
|
|
56
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/helm.ts"],"names":[],"mappings":";;AAoBA,
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/helm.ts"],"names":[],"mappings":"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"}
|
package/src/utils/aws-auth.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Result } from 'tinyexec';
|
|
1
2
|
/**
|
|
2
3
|
* Return the AWS profile name to use in AWS cli commands
|
|
3
4
|
*/
|
|
@@ -30,11 +31,7 @@ export declare function getAuthWithOidcProfile(): Promise<string | boolean>;
|
|
|
30
31
|
* @param registry
|
|
31
32
|
* @returns A promise that resolves to the result of the login command
|
|
32
33
|
*/
|
|
33
|
-
export declare function loginToEcr(registry: string): Promise<
|
|
34
|
-
success: boolean;
|
|
35
|
-
stdout: string;
|
|
36
|
-
stderr: string;
|
|
37
|
-
}>;
|
|
34
|
+
export declare function loginToEcr(registry: string): Promise<Result>;
|
|
38
35
|
/**
|
|
39
36
|
* Check AWS CLI with the OIDC profile otherwise use the default credentials
|
|
40
37
|
* @returns {string} the profile's name
|
|
@@ -48,6 +45,4 @@ export declare function checkAwsAuth(): Promise<string>;
|
|
|
48
45
|
* @param registry
|
|
49
46
|
* @returns A promise that resolves to the result of the push command
|
|
50
47
|
*/
|
|
51
|
-
export declare function pushImageToEcr(repositoryName: string, version: string, registry: string): Promise<
|
|
52
|
-
success: boolean;
|
|
53
|
-
}>;
|
|
48
|
+
export declare function pushImageToEcr(repositoryName: string, version: string, registry: string): Promise<Result>;
|
package/src/utils/aws-auth.js
CHANGED
|
@@ -6,6 +6,7 @@ exports.getAuthWithOidcProfile = getAuthWithOidcProfile;
|
|
|
6
6
|
exports.loginToEcr = loginToEcr;
|
|
7
7
|
exports.checkAwsAuth = checkAwsAuth;
|
|
8
8
|
exports.pushImageToEcr = pushImageToEcr;
|
|
9
|
+
const consola_1 = require("consola");
|
|
9
10
|
const docker_1 = require("./docker");
|
|
10
11
|
const exec_1 = require("./exec");
|
|
11
12
|
let profileName = 'OIDC-PROFILE';
|
|
@@ -45,14 +46,10 @@ function getAwsCredentialsSet() {
|
|
|
45
46
|
*/
|
|
46
47
|
async function getAuthWithOidcProfile() {
|
|
47
48
|
try {
|
|
48
|
-
const profileExist = await (0, exec_1.
|
|
49
|
-
|
|
50
|
-
return profileExist.stdout;
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
49
|
+
const profileExist = await (0, exec_1.exec)(`aws configure list-profiles | grep ${profileName}`, false);
|
|
50
|
+
return profileExist.exitCode == 0 ? profileExist.stdout.trim() : false;
|
|
53
51
|
}
|
|
54
52
|
catch (e) {
|
|
55
|
-
console.error(e);
|
|
56
53
|
return false;
|
|
57
54
|
}
|
|
58
55
|
}
|
|
@@ -63,7 +60,7 @@ async function getAuthWithOidcProfile() {
|
|
|
63
60
|
* @returns A promise that resolves to the result of the login command
|
|
64
61
|
*/
|
|
65
62
|
async function loginToEcr(registry) {
|
|
66
|
-
return (0, exec_1.
|
|
63
|
+
return (0, exec_1.exec)(`aws ecr get-login-password --region eu-west-3`).pipe(await (0, docker_1.getDockerOrPodman)(), `login --username AWS --password-stdin ${registry}`.split(' '));
|
|
67
64
|
}
|
|
68
65
|
/**
|
|
69
66
|
* Check AWS CLI with the OIDC profile otherwise use the default credentials
|
|
@@ -72,11 +69,11 @@ async function loginToEcr(registry) {
|
|
|
72
69
|
async function checkAwsAuth() {
|
|
73
70
|
const profileExist = await getAuthWithOidcProfile();
|
|
74
71
|
if (profileExist) {
|
|
75
|
-
|
|
72
|
+
consola_1.consola.log('OIDC profile found, using it');
|
|
76
73
|
profileName = 'OIDC-PROFILE';
|
|
77
74
|
}
|
|
78
75
|
else if (getAwsCredentialsSet()) {
|
|
79
|
-
|
|
76
|
+
consola_1.consola.log('OIDC profile not found, using AWS_KEY_ID and AWS_SECRET_ACCESS_KEY');
|
|
80
77
|
profileName = 'default';
|
|
81
78
|
}
|
|
82
79
|
else {
|
|
@@ -92,7 +89,7 @@ async function checkAwsAuth() {
|
|
|
92
89
|
* @param registry
|
|
93
90
|
* @returns A promise that resolves to the result of the push command
|
|
94
91
|
*/
|
|
95
|
-
function pushImageToEcr(repositoryName, version, registry) {
|
|
96
|
-
return (0, exec_1.
|
|
92
|
+
async function pushImageToEcr(repositoryName, version, registry) {
|
|
93
|
+
return (0, exec_1.exec)(`docker push ${registry}/${repositoryName}:${version}`);
|
|
97
94
|
}
|
|
98
95
|
//# sourceMappingURL=aws-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-auth.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/aws-auth.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"aws-auth.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/aws-auth.ts"],"names":[],"mappings":";;AAWA,wCAEC;AAYD,oDAmBC;AAQD,wDAUC;AAQD,gCAKC;AAMD,oCAgBC;AAUD,wCAMC;AAjHD,qCAAiC;AAGjC,qCAA4C;AAC5C,iCAA6B;AAE7B,IAAI,WAAW,GAAG,cAAc,CAAA;AAEhC;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,oBAAoB;IAKlC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;IACjD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IAC7C,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,kKAAkK,CACnK,CAAA;IACH,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,mIAAmI,CACpI,CAAA;IACH,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,CAAA;AACjD,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,sBAAsB;IAC1C,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,WAAI,EAC7B,sCAAsC,WAAW,EAAE,EACnD,KAAK,CACN,CAAA;QACD,OAAO,YAAY,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IACxE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,OAAO,IAAA,WAAI,EAAC,+CAA+C,CAAC,CAAC,IAAI,CAC/D,MAAM,IAAA,0BAAiB,GAAE,EACzB,yCAAyC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAC/D,CAAA;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,YAAY;IAChC,MAAM,YAAY,GAAG,MAAM,sBAAsB,EAAE,CAAA;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,iBAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC3C,WAAW,GAAG,cAAc,CAAA;IAC9B,CAAC;SAAM,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAClC,iBAAO,CAAC,GAAG,CACT,oEAAoE,CACrE,CAAA;QACD,WAAW,GAAG,SAAS,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,iLAAiL,CAClL,CAAA;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAClC,cAAsB,EACtB,OAAe,EACf,QAAgB;IAEhB,OAAO,IAAA,WAAI,EAAC,eAAe,QAAQ,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC,CAAA;AACrE,CAAC"}
|
package/src/utils/docker.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Result } from 'tinyexec';
|
|
1
2
|
/**
|
|
2
3
|
* Determines the available container management tool by checking for Docker and fallback to Podman if Docker is unavailable.
|
|
3
4
|
*
|
|
@@ -13,10 +14,6 @@ export declare function getDockerOrPodman(): Promise<string>;
|
|
|
13
14
|
* @param gitRepoUrl
|
|
14
15
|
* @param commitSha
|
|
15
16
|
* @param registry
|
|
16
|
-
* @return {Promise<
|
|
17
|
+
* @return {Promise<Result>}
|
|
17
18
|
*/
|
|
18
|
-
export declare function buildDockerImage(imageName: string, dockerfilePath: string, version: string, gitRepoUrl: string, commitSha: string, registry: string): Promise<
|
|
19
|
-
success: boolean;
|
|
20
|
-
stdout: string;
|
|
21
|
-
stderr: string;
|
|
22
|
-
}>;
|
|
19
|
+
export declare function buildDockerImage(imageName: string, dockerfilePath: string, version: string, gitRepoUrl: string, commitSha: string, registry: string): Promise<Result>;
|
package/src/utils/docker.js
CHANGED
|
@@ -10,7 +10,7 @@ const exec_1 = require("./exec");
|
|
|
10
10
|
*/
|
|
11
11
|
async function getDockerOrPodman() {
|
|
12
12
|
try {
|
|
13
|
-
await (0, exec_1.
|
|
13
|
+
await (0, exec_1.exec)('docker --version');
|
|
14
14
|
return 'docker';
|
|
15
15
|
}
|
|
16
16
|
catch (e) {
|
|
@@ -27,10 +27,14 @@ async function getDockerOrPodman() {
|
|
|
27
27
|
* @param gitRepoUrl
|
|
28
28
|
* @param commitSha
|
|
29
29
|
* @param registry
|
|
30
|
-
* @return {Promise<
|
|
30
|
+
* @return {Promise<Result>}
|
|
31
31
|
*/
|
|
32
32
|
async function buildDockerImage(imageName, dockerfilePath, version, gitRepoUrl, commitSha, registry) {
|
|
33
33
|
const dockerOrPodman = await getDockerOrPodman();
|
|
34
|
-
return (0, exec_1.
|
|
34
|
+
return (0, exec_1.exec)(`${dockerOrPodman} buildx build -t ${registry}/${imageName}:${version} -f ${dockerfilePath} --secret id=NPM_TOKEN . --annotation org.opencontainers.image.source=${gitRepoUrl} --annotation org.opencontainers.image.revision=${commitSha} --build-arg DD_GIT_REPOSITORY_URL=${gitRepoUrl} --build-arg DD_GIT_COMMIT_SHA=${commitSha}`, true, {
|
|
35
|
+
nodeOptions: {
|
|
36
|
+
stdio: 'inherit',
|
|
37
|
+
},
|
|
38
|
+
});
|
|
35
39
|
}
|
|
36
40
|
//# sourceMappingURL=docker.js.map
|
package/src/utils/docker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/docker.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/docker.ts"],"names":[],"mappings":";;AAUA,8CAQC;AAaD,4CAkBC;AA9CD,iCAA6B;AAE7B;;;;GAIG;AACI,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,IAAA,WAAI,EAAC,kBAAkB,CAAC,CAAA;QAC9B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QAC9C,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,cAAsB,EACtB,OAAe,EACf,UAAkB,EAClB,SAAiB,EACjB,QAAgB;IAEhB,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAChD,OAAO,IAAA,WAAI,EACT,GAAG,cAAc,oBAAoB,QAAQ,IAAI,SAAS,IAAI,OAAO,OAAO,cAAc,yEAAyE,UAAU,mDAAmD,SAAS,sCAAsC,UAAU,kCAAkC,SAAS,EAAE,EACtU,IAAI,EACJ;QACE,WAAW,EAAE;YACX,KAAK,EAAE,SAAS;SACjB;KACF,CACF,CAAA;AACH,CAAC"}
|
package/src/utils/exec.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
stderr: string;
|
|
6
|
-
}>;
|
|
7
|
-
export declare const execTiny: TinyExec;
|
|
1
|
+
import type { Options } from 'tinyexec';
|
|
2
|
+
declare function execWrapperFromString(cmd: string, throwOnError?: boolean, options?: Partial<Options>): import("tinyexec").Result;
|
|
3
|
+
export declare const exec: typeof execWrapperFromString;
|
|
4
|
+
export {};
|
package/src/utils/exec.js
CHANGED
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
const child_process_1 = require("child_process");
|
|
6
|
-
const util_1 = require("util");
|
|
7
|
-
const consola_1 = require("consola");
|
|
3
|
+
exports.exec = void 0;
|
|
4
|
+
const args_tokenizer_1 = require("args-tokenizer");
|
|
8
5
|
const tinyexec_1 = require("tinyexec");
|
|
9
|
-
async function exec_command(command) {
|
|
10
|
-
const { stdout, stderr } = await (0, util_1.promisify)(child_process_1.exec)(command);
|
|
11
|
-
consola_1.consola.log(stdout);
|
|
12
|
-
consola_1.consola.error(stderr);
|
|
13
|
-
const success = !stderr;
|
|
14
|
-
return { success, stdout, stderr };
|
|
15
|
-
}
|
|
16
6
|
function createLoggingExecWrapper(execFn) {
|
|
17
7
|
return (command, args = [], options = {}) => {
|
|
18
|
-
|
|
19
|
-
return execFn(command, args,
|
|
20
|
-
throwOnError: true,
|
|
21
|
-
...options,
|
|
22
|
-
});
|
|
8
|
+
// consola.log(`Running '${command} ${args.join(' ')}'...`)
|
|
9
|
+
return execFn(command, args, options);
|
|
23
10
|
};
|
|
24
11
|
}
|
|
25
|
-
|
|
12
|
+
// Accepts a single string, splits it, and runs with logging
|
|
13
|
+
function execWrapperFromString(cmd, throwOnError = true, options = {}) {
|
|
14
|
+
const [command, ...args] = (0, args_tokenizer_1.tokenizeArgs)(cmd);
|
|
15
|
+
// Remove throwOnError from options if present, to avoid conflicts
|
|
16
|
+
const { throwOnError: _, ...restOptions } = options;
|
|
17
|
+
return createLoggingExecWrapper(tinyexec_1.x)(command, args, {
|
|
18
|
+
...restOptions,
|
|
19
|
+
throwOnError,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.exec = execWrapperFromString;
|
|
26
23
|
//# sourceMappingURL=exec.js.map
|
package/src/utils/exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/exec.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/exec.ts"],"names":[],"mappings":";;;AAEA,mDAA6C;AAE7C,uCAA4B;AAE5B,SAAS,wBAAwB,CAAC,MAAgB;IAChD,OAAO,CACL,OAAe,EACf,OAAiB,EAAE,EACnB,UAA4B,EAAE,EAC9B,EAAE;QACF,2DAA2D;QAC3D,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC,CAAA;AACH,CAAC;AAED,4DAA4D;AAC5D,SAAS,qBAAqB,CAC5B,GAAW,EACX,YAAY,GAAG,IAAI,EACnB,UAA4B,EAAE;IAE9B,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAA;IAC5C,kEAAkE;IAClE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAA;IACnD,OAAO,wBAAwB,CAAC,YAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE;QAChD,GAAG,WAAW;QACd,YAAY;KACb,CAAC,CAAA;AACJ,CAAC;AAEY,QAAA,IAAI,GAAG,qBAAqB,CAAA"}
|
package/src/utils/github.js
CHANGED
|
@@ -8,8 +8,8 @@ const exec_1 = require("./exec");
|
|
|
8
8
|
* Get sanitized current git branch name
|
|
9
9
|
*/
|
|
10
10
|
async function getSanitizedCurrentGitBranch() {
|
|
11
|
-
const branchName = await (0, exec_1.
|
|
12
|
-
return branchName.
|
|
11
|
+
const branchName = await (0, exec_1.exec)(`git branch --show-current`);
|
|
12
|
+
return branchName.exitCode == 0
|
|
13
13
|
? branchName.stdout
|
|
14
14
|
.trim()
|
|
15
15
|
.toLowerCase()
|
|
@@ -20,15 +20,15 @@ async function getSanitizedCurrentGitBranch() {
|
|
|
20
20
|
* Get current commit sha
|
|
21
21
|
*/
|
|
22
22
|
async function getCurrentGitCommitSha() {
|
|
23
|
-
const commitSha = await (0, exec_1.
|
|
24
|
-
return commitSha.
|
|
23
|
+
const commitSha = await (0, exec_1.exec)(`git rev-parse HEAD`);
|
|
24
|
+
return commitSha.exitCode == 0 ? commitSha.stdout.trim() : '';
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Get sanitized current repo url
|
|
28
28
|
*/
|
|
29
29
|
async function getSanitizedCurrentGitRepoUrl() {
|
|
30
|
-
const repoUrlExec = await (0, exec_1.
|
|
31
|
-
if (repoUrlExec.
|
|
30
|
+
const repoUrlExec = await (0, exec_1.exec)(`git config --get remote.origin.url`);
|
|
31
|
+
if (repoUrlExec.exitCode == 0) {
|
|
32
32
|
const repoUrlMatching = repoUrlExec.stdout.match(/github\.com[:/]PayFit\/[^/]+/);
|
|
33
33
|
if (repoUrlMatching && repoUrlMatching.length > 0) {
|
|
34
34
|
return `https://${repoUrlMatching[0].trim().replace(':', '/').replace('.git', '')}`;
|
package/src/utils/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/github.ts"],"names":[],"mappings":";;AAKA,oEAQC;AAKD,wDAGC;AAKD,sEAWC;AArCD,
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/github.ts"],"names":[],"mappings":";;AAKA,oEAQC;AAKD,wDAGC;AAKD,sEAWC;AArCD,iCAA6B;AAE7B;;GAEG;AACI,KAAK,UAAU,4BAA4B;IAChD,MAAM,UAAU,GAAG,MAAM,IAAA,WAAI,EAAC,2BAA2B,CAAC,CAAA;IAC1D,OAAO,UAAU,CAAC,QAAQ,IAAI,CAAC;QAC7B,CAAC,CAAC,UAAU,CAAC,MAAM;aACd,IAAI,EAAE;aACN,WAAW,EAAE;aACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QACjC,CAAC,CAAC,EAAE,CAAA;AACR,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,sBAAsB;IAC1C,MAAM,SAAS,GAAG,MAAM,IAAA,WAAI,EAAC,oBAAoB,CAAC,CAAA;IAClD,OAAO,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AAC/D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,6BAA6B;IACjD,MAAM,WAAW,GAAG,MAAM,IAAA,WAAI,EAAC,oCAAoC,CAAC,CAAA;IACpE,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAC9C,8BAA8B,CAC/B,CAAA;QACD,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,WAAW,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;QACrF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC"}
|
package/src/utils/helm.d.ts
CHANGED
|
@@ -32,11 +32,7 @@ export declare function resetTeleportProxyHelmChartFile(helmFolderPath: string,
|
|
|
32
32
|
* Install all the helm repositories defined in the Chart config
|
|
33
33
|
* @param helmFolderPath
|
|
34
34
|
*/
|
|
35
|
-
export declare function installHelmRepo(helmFolderPath: string): Promise<
|
|
36
|
-
success: boolean;
|
|
37
|
-
stdout: string;
|
|
38
|
-
stderr: string;
|
|
39
|
-
}>;
|
|
35
|
+
export declare function installHelmRepo(helmFolderPath: string): Promise<import("tinyexec").Output>;
|
|
40
36
|
/**
|
|
41
37
|
* Patch Docker image tag in values.yaml
|
|
42
38
|
* @param valuesConfigPath
|
|
@@ -50,11 +46,7 @@ export declare function patchImageTag(valuesConfigPath: string, chartConfigPath:
|
|
|
50
46
|
* @param version
|
|
51
47
|
* @param destinationPath
|
|
52
48
|
*/
|
|
53
|
-
export declare function packageHelm(helmFolderPath: string, version: string, destinationPath: string): Promise<
|
|
54
|
-
success: boolean;
|
|
55
|
-
stdout: string;
|
|
56
|
-
stderr: string;
|
|
57
|
-
}>;
|
|
49
|
+
export declare function packageHelm(helmFolderPath: string, version: string, destinationPath: string): Promise<import("tinyexec").Output>;
|
|
58
50
|
/**
|
|
59
51
|
* Push the packaged Helm chart in the chartmuseum
|
|
60
52
|
* @param packagedHelmChartFilePath
|
|
@@ -68,9 +60,5 @@ export declare function pushPackagedHelm(packagedHelmChartFilePath: string, pack
|
|
|
68
60
|
* @param packagedHelmChartFilePath
|
|
69
61
|
* @param ecrRegistry
|
|
70
62
|
*/
|
|
71
|
-
export declare function pushOciPackagedHelm(packagedHelmChartFilePath: string, ecrRegistry: string): Promise<
|
|
72
|
-
success: boolean;
|
|
73
|
-
stdout: string;
|
|
74
|
-
stderr: string;
|
|
75
|
-
}>;
|
|
63
|
+
export declare function pushOciPackagedHelm(packagedHelmChartFilePath: string, ecrRegistry: string): Promise<import("tinyexec").Output>;
|
|
76
64
|
export {};
|
package/src/utils/helm.js
CHANGED
|
@@ -13,6 +13,7 @@ const process = require("node:process");
|
|
|
13
13
|
const YAML = require("yaml");
|
|
14
14
|
const aws_auth_1 = require("./aws-auth");
|
|
15
15
|
const exec_1 = require("./exec");
|
|
16
|
+
const logger_1 = require("./logger");
|
|
16
17
|
const tshProxy = 'http://localhost';
|
|
17
18
|
/**
|
|
18
19
|
* Read & parse the Helm chart.yaml file
|
|
@@ -27,7 +28,7 @@ async function getHelmChartFile(helmFolderPath) {
|
|
|
27
28
|
* @param tshPort
|
|
28
29
|
*/
|
|
29
30
|
async function setupTeleportProxyHelmChartFile(helmFolderPath, tshPort) {
|
|
30
|
-
|
|
31
|
+
logger_1.consola.log(`Replacing charts.shared.payfit.tech -> localhost:${tshPort} for the Teleport proxy`);
|
|
31
32
|
let chartConfigStr = YAML.stringify(await getHelmChartFile(helmFolderPath));
|
|
32
33
|
chartConfigStr = chartConfigStr.replace(/(https?:\/\/)charts(\.shared)?\.payfit\.tech/gi, `${tshProxy}:${tshPort}`);
|
|
33
34
|
return fs.writeFileSync(`${helmFolderPath}/Chart.yaml`, chartConfigStr);
|
|
@@ -58,15 +59,15 @@ async function installHelmRepo(helmFolderPath) {
|
|
|
58
59
|
if (!process.env.CHARTMUSEUM_USERNAME ||
|
|
59
60
|
!process.env.CHARTMUSEUM_PASSWORD)
|
|
60
61
|
throw new Error('Missing CHARTMUSEUM_USERNAME, CHARTMUSEUM_PASSWORD in environment!');
|
|
61
|
-
await (0, exec_1.
|
|
62
|
+
await (0, exec_1.exec)(`helm repo add --username '${process.env.CHARTMUSEUM_USERNAME}' --password '${process.env.CHARTMUSEUM_PASSWORD}' '${repoName}' '${dep.repository}' --force-update`);
|
|
62
63
|
}
|
|
63
64
|
else {
|
|
64
|
-
await (0, exec_1.
|
|
65
|
+
await (0, exec_1.exec)(`helm repo add '${repoName}' '${dep.repository}' --force-update`);
|
|
65
66
|
}
|
|
66
|
-
await (0, exec_1.
|
|
67
|
+
await (0, exec_1.exec)(`helm repo update ${repoName}`);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
|
-
return (0, exec_1.
|
|
70
|
+
return (0, exec_1.exec)(`helm dependency update ${helmFolderPath}`);
|
|
70
71
|
}
|
|
71
72
|
/**
|
|
72
73
|
* Patch Docker image tag in values.yaml
|
|
@@ -76,7 +77,7 @@ async function installHelmRepo(helmFolderPath) {
|
|
|
76
77
|
*/
|
|
77
78
|
async function patchImageTag(valuesConfigPath, chartConfigPath, version) {
|
|
78
79
|
if (fs.existsSync(valuesConfigPath)) {
|
|
79
|
-
|
|
80
|
+
logger_1.consola.log('Values files detected, trying to patch Docker image tag');
|
|
80
81
|
const values = YAML.parse(fs.readFileSync(valuesConfigPath, 'utf8'));
|
|
81
82
|
const chart = YAML.parse(fs.readFileSync(chartConfigPath, 'utf8'));
|
|
82
83
|
if (!chart.dependencies)
|
|
@@ -87,19 +88,19 @@ async function patchImageTag(valuesConfigPath, chartConfigPath, version) {
|
|
|
87
88
|
if (values[dep.alias]?.image?.tag) {
|
|
88
89
|
values[dep.alias].image.tag = version;
|
|
89
90
|
shouldUpdateFile = true;
|
|
90
|
-
|
|
91
|
+
logger_1.consola.log(`Patched Docker image tag for the service ${dep.alias} successfully`);
|
|
91
92
|
}
|
|
92
93
|
else {
|
|
93
|
-
|
|
94
|
+
logger_1.consola.warn(`Failed to find image.tag key for the service ${dep.alias}`);
|
|
94
95
|
}
|
|
95
96
|
if (values[dep.alias]?.dbMigration?.image?.tag) {
|
|
96
97
|
values[dep.alias].dbMigration.image.tag = version;
|
|
97
98
|
shouldUpdateFile = true;
|
|
98
|
-
|
|
99
|
+
logger_1.consola.log(`Patched Docker image tag for the dbMigration of the service ${dep.alias} successfully`);
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
else {
|
|
102
|
-
|
|
103
|
+
logger_1.consola.warn(`Failed to find the service key ${dep.alias} in the values.yaml file`);
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
if (shouldUpdateFile) {
|
|
@@ -109,7 +110,7 @@ async function patchImageTag(valuesConfigPath, chartConfigPath, version) {
|
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
else {
|
|
112
|
-
|
|
113
|
+
logger_1.consola.warn(`No values.yaml file detected at ${valuesConfigPath}, can't patch Docker image tag`);
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
/**
|
|
@@ -119,7 +120,7 @@ async function patchImageTag(valuesConfigPath, chartConfigPath, version) {
|
|
|
119
120
|
* @param destinationPath
|
|
120
121
|
*/
|
|
121
122
|
async function packageHelm(helmFolderPath, version, destinationPath) {
|
|
122
|
-
return (0, exec_1.
|
|
123
|
+
return (0, exec_1.exec)(`helm package ${helmFolderPath} --version ${version} --app-version ${version} --destination ${destinationPath}`);
|
|
123
124
|
}
|
|
124
125
|
/**
|
|
125
126
|
* Push the packaged Helm chart in the chartmuseum
|
|
@@ -132,9 +133,9 @@ async function pushPackagedHelm(packagedHelmChartFilePath, packagedHelmChartName
|
|
|
132
133
|
if (!process.env.CHARTMUSEUM_BUCKET_NAME)
|
|
133
134
|
throw new Error('Missing CHARTMUSEUM_BUCKET_NAME in environment!');
|
|
134
135
|
const profile = (0, aws_auth_1.getProfileName)() === 'default' ? '' : `--profile ${(0, aws_auth_1.getProfileName)()}`;
|
|
135
|
-
await (0, exec_1.
|
|
136
|
+
await (0, exec_1.exec)(`aws s3 cp ${profile} --sse AES256 ${packagedHelmChartFilePath} s3://${process.env.CHARTMUSEUM_BUCKET_NAME}/${projectName}/${branch}/`);
|
|
136
137
|
if (packagedHelmChartFilePath.includes('ephemeral')) {
|
|
137
|
-
await (0, exec_1.
|
|
138
|
+
await (0, exec_1.exec)(`aws s3api put-object-tagging ${profile} --bucket ${process.env.CHARTMUSEUM_BUCKET_NAME} --key ${projectName}/${branch}/${packagedHelmChartName} --tagging '{"TagSet": [{ "Key": "auto-purge", "Value": "true" }]}'`);
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
@@ -146,6 +147,6 @@ async function pushOciPackagedHelm(packagedHelmChartFilePath, ecrRegistry) {
|
|
|
146
147
|
// Login to ECR
|
|
147
148
|
await (0, aws_auth_1.loginToEcr)(process.env.AWS_ECR_REGISTRY);
|
|
148
149
|
// Push the Helm chart to ECR using OCI format
|
|
149
|
-
return (0, exec_1.
|
|
150
|
+
return (0, exec_1.exec)(`helm push ${packagedHelmChartFilePath} oci://${ecrRegistry}`);
|
|
150
151
|
}
|
|
151
152
|
//# sourceMappingURL=helm.js.map
|
package/src/utils/helm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/helm.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/helm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const consola: import("consola").ConsolaInstance;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/logger.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AAE1B,QAAA,OAAO,GAAG,IAAA,uBAAa,EAAC;IACnC,KAAK,EAAE,IAAI;CACZ,CAAC,CAAA"}
|
package/src/utils/nx.js
CHANGED
|
@@ -5,7 +5,6 @@ exports.getProjectFromGraph = getProjectFromGraph;
|
|
|
5
5
|
exports.getVersion = getVersion;
|
|
6
6
|
const fs = require("node:fs");
|
|
7
7
|
const devkit_1 = require("@nx/devkit");
|
|
8
|
-
const consola_1 = require("consola");
|
|
9
8
|
async function getDistForApp(project) {
|
|
10
9
|
if (!project.data.targets?.build) {
|
|
11
10
|
throw new Error('No build target found in project.json');
|
|
@@ -42,7 +41,6 @@ function getVersion(projectDist) {
|
|
|
42
41
|
if (!fs.existsSync(`${projectDist}/package.json`)) {
|
|
43
42
|
throw new Error(`package.json file not found at ${projectDist}`);
|
|
44
43
|
}
|
|
45
|
-
consola_1.consola.log('getVersion at ' + projectDist);
|
|
46
44
|
return (JSON.parse(fs.readFileSync(`${projectDist}/package.json`, 'utf8'))
|
|
47
45
|
?.version || null);
|
|
48
46
|
}
|
package/src/utils/nx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/nx.ts"],"names":[],"mappings":";;AASA,sCAiCC;AAED,kDAQC;AAOD,
|
|
1
|
+
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/nx.ts"],"names":[],"mappings":";;AASA,sCAiCC;AAED,kDAQC;AAOD,gCAQC;AAnED,8BAA6B;AAE7B,uCAImB;AAGZ,KAAK,UAAU,aAAa,CACjC,OAAgC;IAEhC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;IAErD,MAAM,YAAY,GAAG,UAAU;SAC5B,GAAG,CAAC,MAAM,CAAC,EAAE,CACZ,MAAM,CAAC,OAAO,CACZ,sBAAsB,EACtB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAC9C,CACF;SACA,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,sBAAa,CAAC,CAAC;SAC/D,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,YAAY,kCAAkC,CACpE,CAAA;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAgB,mBAAmB,CACjC,OAAwB;IAExB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,WAAmB;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,eAAe,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,WAAW,eAAe,EAAE,MAAM,CAAC,CAAC;QAChE,EAAE,OAAO,IAAI,IAAI,CACpB,CAAA;AACH,CAAC"}
|
package/src/utils/tsh.js
CHANGED
|
@@ -9,6 +9,7 @@ const workspace_root_1 = require("nx/src/utils/workspace-root");
|
|
|
9
9
|
const zod_1 = require("zod");
|
|
10
10
|
const exec_1 = require("./exec");
|
|
11
11
|
const import_esm_1 = require("./import-esm");
|
|
12
|
+
const logger_1 = require("./logger");
|
|
12
13
|
const expectedProfileUrl = 'https://payfit.teleport.sh:443';
|
|
13
14
|
const expectedAppName = 'charts-shared';
|
|
14
15
|
const profile = zod_1.z.object({
|
|
@@ -19,7 +20,7 @@ const statusSchema = zod_1.z.object({
|
|
|
19
20
|
profiles: zod_1.z.array(profile).optional(),
|
|
20
21
|
});
|
|
21
22
|
const getStatusOfTsh = async () => {
|
|
22
|
-
const { stdout } = await (0, exec_1.
|
|
23
|
+
const { stdout } = await (0, exec_1.exec)('tsh status -f json');
|
|
23
24
|
return statusSchema.parse(JSON.parse(stdout));
|
|
24
25
|
};
|
|
25
26
|
async function isLoggedInToTsh() {
|
|
@@ -35,15 +36,11 @@ async function ensureIsLoggedInToTsh() {
|
|
|
35
36
|
if (await isLoggedInToTsh()) {
|
|
36
37
|
return true;
|
|
37
38
|
}
|
|
38
|
-
await (0, exec_1.
|
|
39
|
-
throwOnError: true,
|
|
40
|
-
});
|
|
39
|
+
await (0, exec_1.exec)(`tsh login --proxy=${expectedProfileUrl} --auth=okta`);
|
|
41
40
|
return await isLoggedInToTsh();
|
|
42
41
|
}
|
|
43
42
|
const getAppConfigOfTsh = async () => {
|
|
44
|
-
const { stdout } = await (0, exec_1.
|
|
45
|
-
throwOnError: true,
|
|
46
|
-
});
|
|
43
|
+
const { stdout } = await (0, exec_1.exec)(`tsh apps config -f json --proxy=${expectedProfileUrl} ${expectedAppName}`);
|
|
47
44
|
return JSON.parse(stdout);
|
|
48
45
|
};
|
|
49
46
|
async function isConnectedToChartMuseum() {
|
|
@@ -59,9 +56,7 @@ async function ensureAppIsChartMuseum() {
|
|
|
59
56
|
if (await isConnectedToChartMuseum()) {
|
|
60
57
|
return true;
|
|
61
58
|
}
|
|
62
|
-
await (0, exec_1.
|
|
63
|
-
throwOnError: true,
|
|
64
|
-
});
|
|
59
|
+
await (0, exec_1.exec)(`tsh apps login ${expectedAppName} --proxy=${expectedProfileUrl}`);
|
|
65
60
|
return await isConnectedToChartMuseum();
|
|
66
61
|
}
|
|
67
62
|
const getLocalPortForChartMuseum = async () => {
|
|
@@ -73,16 +68,16 @@ const getLocalPortForChartMuseum = async () => {
|
|
|
73
68
|
const { default: ky } = await (0, import_esm_1.importKy)();
|
|
74
69
|
const port = await getPort();
|
|
75
70
|
const command = process.env.CI
|
|
76
|
-
?
|
|
77
|
-
: `proxy app ${expectedAppName} -p ${port}`;
|
|
78
|
-
const execHandle = (0, exec_1.
|
|
71
|
+
? `tsh -i ./certs/identity --proxy payfit.teleport.sh:443 proxy app ${expectedAppName} --port ${port}`
|
|
72
|
+
: `tsh proxy app ${expectedAppName} -p ${port}`;
|
|
73
|
+
const execHandle = (0, exec_1.exec)(command, true, {
|
|
79
74
|
nodeOptions: {
|
|
80
75
|
cwd: workspace_root_1.workspaceRoot,
|
|
81
76
|
},
|
|
82
77
|
});
|
|
83
78
|
const isReady = async () => {
|
|
84
79
|
for await (const line of execHandle) {
|
|
85
|
-
|
|
80
|
+
logger_1.consola.log(`[TSH] ${line}`);
|
|
86
81
|
if (line.includes('Proxying connections')) {
|
|
87
82
|
return true;
|
|
88
83
|
}
|
|
@@ -95,7 +90,7 @@ const getLocalPortForChartMuseum = async () => {
|
|
|
95
90
|
});
|
|
96
91
|
return {
|
|
97
92
|
[Symbol.dispose]: async () => {
|
|
98
|
-
|
|
93
|
+
logger_1.consola.log(`Terminating tsh proxy on port ${port}`);
|
|
99
94
|
execHandle.kill();
|
|
100
95
|
},
|
|
101
96
|
fetchClient,
|
package/src/utils/tsh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsh.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/tsh.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tsh.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/tsh.ts"],"names":[],"mappings":"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"}
|