@payfit/nx-core 4.21.1 → 4.21.2-ephemeral-364bfa5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/executors/publisher/docker.js +5 -3
- package/src/executors/publisher/docker.js.map +1 -1
- package/src/executors/publisher/executor.js +1 -1
- package/src/executors/publisher/executor.js.map +1 -1
- package/src/executors/publisher/helm.js +10 -5
- package/src/executors/publisher/helm.js.map +1 -1
- package/src/utils/aws-auth.d.ts +3 -8
- package/src/utils/aws-auth.js +9 -11
- package/src/utils/aws-auth.js.map +1 -1
- package/src/utils/docker.d.ts +3 -6
- package/src/utils/docker.js +3 -3
- package/src/utils/docker.js.map +1 -1
- package/src/utils/exec.d.ts +4 -7
- package/src/utils/exec.js +14 -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 +8 -8
- package/src/utils/helm.js.map +1 -1
- 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
|
@@ -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
|
-
consola_1.consola.
|
|
30
|
+
consola_1.consola.box(`Publishing docker image to ${registry}/${options.ecrRegistry} with version ${version}`);
|
|
31
|
+
consola_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
|
-
consola_1.consola.
|
|
33
|
+
consola_1.consola.success('Docker image built!');
|
|
34
|
+
consola_1.consola.start('Pushing docker image');
|
|
33
35
|
await (0, aws_auth_1.pushImageToEcr)(options.ecrRegistry, version, registry);
|
|
34
|
-
consola_1.consola.success('
|
|
36
|
+
consola_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;AAG7B,qCAAiC;AAEjC,mDAA+E;AAC/E,qDAA2D;AAC3D,+CAAqD;AACrD,+CAG2B;AAGpB,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,iBAAO,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,iBAAO,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,iBAAO,CAAC,GAAG,CACT,8BAA8B,QAAQ,IAAI,OAAO,CAAC,WAAW,iBAAiB,OAAO,EAAE,CACxF,CAAA;IAED,iBAAO,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,iBAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAEtC,iBAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACrC,MAAM,IAAA,yBAAc,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,iBAAO,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;IAEvD,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC"}
|
|
@@ -10,8 +10,8 @@ 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')) {
|
|
14
|
+
// this is while we have a weird Nx bug, trying to publish not affected apps by the release
|
|
15
15
|
consola_1.consola.warn(`Version '${version}' should not be published (probably due a Nx bug), soft failing.`);
|
|
16
16
|
return {
|
|
17
17
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/executor.ts"],"names":[],"mappings":";;AACA,qCAAiC;AAEjC,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,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-core/src/executors/publisher/executor.ts"],"names":[],"mappings":";;AACA,qCAAiC;AAEjC,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,iBAAO,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,iBAAO,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"}
|
|
@@ -31,26 +31,31 @@ async function publishHelm(options, context, version, projectRoot, projectDist)
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
await (0, aws_auth_1.checkAwsAuth)();
|
|
34
|
-
consola_1.consola.
|
|
34
|
+
consola_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
|
+
consola_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
|
+
consola_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
|
+
consola_1.consola.start('Publishing Helm chart');
|
|
46
49
|
// If ociEcrRegistry is provided, push to ECR using OCI format
|
|
47
50
|
if (options.ociEcrRegistry) {
|
|
48
51
|
consola_1.consola.log(`Publishing Helm chart to OCI registry ${options.ociEcrRegistry}`);
|
|
49
|
-
|
|
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
|
+
consola_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,11 @@ 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}`);
|
|
50
|
+
return profileExist.stdout.trim();
|
|
53
51
|
}
|
|
54
52
|
catch (e) {
|
|
55
|
-
|
|
53
|
+
consola_1.consola.error(e);
|
|
56
54
|
return false;
|
|
57
55
|
}
|
|
58
56
|
}
|
|
@@ -63,7 +61,7 @@ async function getAuthWithOidcProfile() {
|
|
|
63
61
|
* @returns A promise that resolves to the result of the login command
|
|
64
62
|
*/
|
|
65
63
|
async function loginToEcr(registry) {
|
|
66
|
-
return (0, exec_1.
|
|
64
|
+
return (0, exec_1.exec)(`aws ecr get-login-password --profile ${profileName} --region eu-west-3 | ${await (0, docker_1.getDockerOrPodman)()} login --username AWS --password-stdin ${registry}`);
|
|
67
65
|
}
|
|
68
66
|
/**
|
|
69
67
|
* Check AWS CLI with the OIDC profile otherwise use the default credentials
|
|
@@ -72,11 +70,11 @@ async function loginToEcr(registry) {
|
|
|
72
70
|
async function checkAwsAuth() {
|
|
73
71
|
const profileExist = await getAuthWithOidcProfile();
|
|
74
72
|
if (profileExist) {
|
|
75
|
-
|
|
73
|
+
consola_1.consola.log('OIDC profile found, using it');
|
|
76
74
|
profileName = 'OIDC-PROFILE';
|
|
77
75
|
}
|
|
78
76
|
else if (getAwsCredentialsSet()) {
|
|
79
|
-
|
|
77
|
+
consola_1.consola.log('OIDC profile not found, using AWS_KEY_ID and AWS_SECRET_ACCESS_KEY');
|
|
80
78
|
profileName = 'default';
|
|
81
79
|
}
|
|
82
80
|
else {
|
|
@@ -92,7 +90,7 @@ async function checkAwsAuth() {
|
|
|
92
90
|
* @param registry
|
|
93
91
|
* @returns A promise that resolves to the result of the push command
|
|
94
92
|
*/
|
|
95
|
-
function pushImageToEcr(repositoryName, version, registry) {
|
|
96
|
-
return (0, exec_1.
|
|
93
|
+
async function pushImageToEcr(repositoryName, version, registry) {
|
|
94
|
+
return (0, exec_1.exec)(`docker push ${registry}/${repositoryName}:${version}`);
|
|
97
95
|
}
|
|
98
96
|
//# 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,gCAIC;AAMD,oCAgBC;AAUD,wCAMC;AAhHD,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,CACpD,CAAA;QACD,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACnC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,OAAO,IAAA,WAAI,EACT,wCAAwC,WAAW,yBAAyB,MAAM,IAAA,0BAAiB,GAAE,0CAA0C,QAAQ,EAAE,CAC1J,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>} A promise that resolves to an object containing the success status, stdout, and stderr of the command.
|
|
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,10 @@ async function getDockerOrPodman() {
|
|
|
27
27
|
* @param gitRepoUrl
|
|
28
28
|
* @param commitSha
|
|
29
29
|
* @param registry
|
|
30
|
-
* @return {Promise<
|
|
30
|
+
* @return {Promise<Result>} A promise that resolves to an object containing the success status, stdout, and stderr of the command.
|
|
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}`);
|
|
35
35
|
}
|
|
36
36
|
//# 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":";;AASA,8CAQC;AAaD,4CAYC;AAxCD,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,CACvU,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,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.exec_command = exec_command;
|
|
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;
|
|
8
4
|
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
5
|
function createLoggingExecWrapper(execFn) {
|
|
17
6
|
return (command, args = [], options = {}) => {
|
|
18
|
-
|
|
19
|
-
return execFn(command, args,
|
|
20
|
-
throwOnError: true,
|
|
21
|
-
...options,
|
|
22
|
-
});
|
|
7
|
+
console.log(`Running '${command} ${args.join(' ')}'...`);
|
|
8
|
+
return execFn(command, args, options);
|
|
23
9
|
};
|
|
24
10
|
}
|
|
25
|
-
|
|
11
|
+
// Accepts a single string, splits it, and runs with logging
|
|
12
|
+
function execWrapperFromString(cmd, throwOnError = true, options = {}) {
|
|
13
|
+
const [command, ...args] = cmd.split(' ');
|
|
14
|
+
// Remove throwOnError from options if present, to avoid conflicts
|
|
15
|
+
const { throwOnError: _, ...restOptions } = options;
|
|
16
|
+
return createLoggingExecWrapper(tinyexec_1.x)(command, args, {
|
|
17
|
+
...restOptions,
|
|
18
|
+
throwOnError,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
exports.exec = execWrapperFromString;
|
|
26
22
|
//# 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":";;;AAGA,uCAA4B;AAE5B,SAAS,wBAAwB,CAAC,MAAgB;IAChD,OAAO,CACL,OAAe,EACf,OAAiB,EAAE,EACnB,UAA4B,EAAE,EAC9B,EAAE;QACF,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxD,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,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzC,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
|
@@ -58,15 +58,15 @@ async function installHelmRepo(helmFolderPath) {
|
|
|
58
58
|
if (!process.env.CHARTMUSEUM_USERNAME ||
|
|
59
59
|
!process.env.CHARTMUSEUM_PASSWORD)
|
|
60
60
|
throw new Error('Missing CHARTMUSEUM_USERNAME, CHARTMUSEUM_PASSWORD in environment!');
|
|
61
|
-
await (0, exec_1.
|
|
61
|
+
await (0, exec_1.exec)(`helm repo add --username '${process.env.CHARTMUSEUM_USERNAME}' --password '${process.env.CHARTMUSEUM_PASSWORD}' '${repoName}' '${dep.repository}' --force-update`);
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
64
|
-
await (0, exec_1.
|
|
64
|
+
await (0, exec_1.exec)(`helm repo add '${repoName}' '${dep.repository}' --force-update`);
|
|
65
65
|
}
|
|
66
|
-
await (0, exec_1.
|
|
66
|
+
await (0, exec_1.exec)(`helm repo update ${repoName}`);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
return (0, exec_1.
|
|
69
|
+
return (0, exec_1.exec)(`helm dependency update ${helmFolderPath}`);
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Patch Docker image tag in values.yaml
|
|
@@ -119,7 +119,7 @@ async function patchImageTag(valuesConfigPath, chartConfigPath, version) {
|
|
|
119
119
|
* @param destinationPath
|
|
120
120
|
*/
|
|
121
121
|
async function packageHelm(helmFolderPath, version, destinationPath) {
|
|
122
|
-
return (0, exec_1.
|
|
122
|
+
return (0, exec_1.exec)(`helm package ${helmFolderPath} --version ${version} --app-version ${version} --destination ${destinationPath}`);
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
125
|
* Push the packaged Helm chart in the chartmuseum
|
|
@@ -132,9 +132,9 @@ async function pushPackagedHelm(packagedHelmChartFilePath, packagedHelmChartName
|
|
|
132
132
|
if (!process.env.CHARTMUSEUM_BUCKET_NAME)
|
|
133
133
|
throw new Error('Missing CHARTMUSEUM_BUCKET_NAME in environment!');
|
|
134
134
|
const profile = (0, aws_auth_1.getProfileName)() === 'default' ? '' : `--profile ${(0, aws_auth_1.getProfileName)()}`;
|
|
135
|
-
await (0, exec_1.
|
|
135
|
+
await (0, exec_1.exec)(`aws s3 cp ${profile} --sse AES256 ${packagedHelmChartFilePath} s3://${process.env.CHARTMUSEUM_BUCKET_NAME}/${projectName}/${branch}/`);
|
|
136
136
|
if (packagedHelmChartFilePath.includes('ephemeral')) {
|
|
137
|
-
await (0, exec_1.
|
|
137
|
+
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
138
|
}
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
@@ -146,6 +146,6 @@ async function pushOciPackagedHelm(packagedHelmChartFilePath, ecrRegistry) {
|
|
|
146
146
|
// Login to ECR
|
|
147
147
|
await (0, aws_auth_1.loginToEcr)(process.env.AWS_ECR_REGISTRY);
|
|
148
148
|
// Push the Helm chart to ECR using OCI format
|
|
149
|
-
return (0, exec_1.
|
|
149
|
+
return (0, exec_1.exec)(`helm push ${packagedHelmChartFilePath} oci://${ecrRegistry}`);
|
|
150
150
|
}
|
|
151
151
|
//# 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":";;AA6BA,4CAIC;AAOD,0EAaC;AAOD,0EAUC;AAMD,0CA4BC;AAQD,sCAkDC;AAQD,kCAQC;AASD,4CAmBC;AAOD,
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../../packages/nx-core/src/utils/helm.ts"],"names":[],"mappings":"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"}
|
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
|
@@ -5,6 +5,7 @@ exports.isLoggedInToTsh = isLoggedInToTsh;
|
|
|
5
5
|
exports.ensureIsLoggedInToTsh = ensureIsLoggedInToTsh;
|
|
6
6
|
exports.isConnectedToChartMuseum = isConnectedToChartMuseum;
|
|
7
7
|
exports.ensureAppIsChartMuseum = ensureAppIsChartMuseum;
|
|
8
|
+
const consola_1 = require("consola");
|
|
8
9
|
const workspace_root_1 = require("nx/src/utils/workspace-root");
|
|
9
10
|
const zod_1 = require("zod");
|
|
10
11
|
const exec_1 = require("./exec");
|
|
@@ -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
|
+
consola_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
|
+
consola_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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"}
|