@payfit/nx-core 4.10.2-beta-test.0 → 4.10.2-beta-helm-patch-tag.1
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/README.md +1 -1
- package/dist/src/executors/publisher/helm.js +3 -0
- package/dist/src/executors/publisher/helm.js.map +1 -1
- package/dist/src/scripts/version-actions.js +8 -3
- package/dist/src/scripts/version-actions.js.map +1 -1
- package/dist/src/utils/helm.d.ts +7 -0
- package/dist/src/utils/helm.js +42 -4
- package/dist/src/utils/helm.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@ async function publishHelm(options, context, version) {
|
|
|
11
11
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
12
12
|
try {
|
|
13
13
|
const projectHelmFolder = `apps/${context.projectName}/.deploy`;
|
|
14
|
+
const valuesConfigPath = `${projectHelmFolder}/values.yaml`;
|
|
15
|
+
const chartConfigPath = `${projectHelmFolder}/Chart.yaml`;
|
|
14
16
|
const destinationHelmFolder = `dist/apps/${context.projectName}/chart/`;
|
|
15
17
|
const gitBranchName = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
16
18
|
if (!gitBranchName)
|
|
@@ -25,6 +27,7 @@ async function publishHelm(options, context, version) {
|
|
|
25
27
|
await proxyData.isReady();
|
|
26
28
|
await (0, helm_1.setupTeleportProxyHelmChartFile)(projectHelmFolder, proxyData.port);
|
|
27
29
|
await (0, helm_1.installHelmRepo)(projectHelmFolder);
|
|
30
|
+
await (0, helm_1.patchImageTag)(valuesConfigPath, chartConfigPath, version);
|
|
28
31
|
await (0, helm_1.packageHelm)(projectHelmFolder, version, destinationHelmFolder);
|
|
29
32
|
await (0, helm_1.resetTeleportProxyHelmChartFile)(projectHelmFolder, proxyData.port);
|
|
30
33
|
return (0, helm_1.pushPackagedHelm)(`${destinationHelmFolder}${context.projectName}-${version}.tgz`, options.chartRegistry, gitBranchName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/executors/publisher/helm.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/executors/publisher/helm.ts"],"names":[],"mappings":";;AAiBA,kCAyCC;;AA1DD,8BAA6B;AAI7B,mDAAmD;AACnD,+CAAiE;AACjE,2CAOyB;AACzB,yCAA4D;AAGrD,KAAK,UAAU,WAAW,CAC/B,OAAiC,EACjC,OAAwB,EACxB,OAAe;;;QAMf,MAAM,iBAAiB,GAAG,QAAQ,OAAO,CAAC,WAAW,UAAU,CAAA;QAC/D,MAAM,gBAAgB,GAAG,GAAG,iBAAiB,cAAc,CAAA;QAC3D,MAAM,eAAe,GAAG,GAAG,iBAAiB,aAAa,CAAA;QACzD,MAAM,qBAAqB,GAAG,aAAa,OAAO,CAAC,WAAW,SAAS,CAAA;QACvE,MAAM,aAAa,GAAG,MAAM,IAAA,qCAA4B,GAAE,CAAA;QAE1D,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAEvE,MAAM,IAAA,uBAAY,GAAE,CAAA;QAEpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,wCAAwC,OAAO,CAAC,WAAW,EAAE,CAC9D,CAAA;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,CAAC,aAAa,IAAI,aAAa,iBAAiB,OAAO,EAAE,CAC7F,CAAA;QACD,8CAA8C;QAC9C,MAAM,SAAS,0CAAG,MAAM,IAAA,gCAA0B,GAAE,QAAA,CAAA;QACpD,MAAM,SAAS,CAAC,OAAO,EAAE,CAAA;QAEzB,MAAM,IAAA,sCAA+B,EAAC,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACxE,MAAM,IAAA,sBAAe,EAAC,iBAAiB,CAAC,CAAA;QACxC,MAAM,IAAA,oBAAa,EAAC,gBAAgB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,IAAA,kBAAW,EAAC,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAA;QACpE,MAAM,IAAA,sCAA+B,EAAC,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACxE,OAAO,IAAA,uBAAgB,EACrB,GAAG,qBAAqB,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,MAAM,EAC/D,OAAO,CAAC,aAAa,EACrB,aAAa,CACd,CAAA;;;;;;;;;CACF"}
|
|
@@ -44,9 +44,14 @@ class customVersionAction extends release_1.VersionActions {
|
|
|
44
44
|
}
|
|
45
45
|
function getNewVersionFromCurrentVersion(currentVersion) {
|
|
46
46
|
const expectedPattern = formatDate();
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// we need to strip the actual version to be able to increment it, without the pre-id
|
|
48
|
+
const strippedCurrVersion = currentVersion.match(/[0-9]{0,6}.[0-9]{2}.[0-9]*/);
|
|
49
|
+
const correctCurrentVersion = strippedCurrVersion && strippedCurrVersion.length > 0
|
|
50
|
+
? strippedCurrVersion[0]
|
|
51
|
+
: currentVersion;
|
|
52
|
+
return correctCurrentVersion.startsWith(expectedPattern)
|
|
53
|
+
? (0, semver_1.inc)(correctCurrentVersion, 'patch')
|
|
54
|
+
: `${expectedPattern}0`;
|
|
50
55
|
}
|
|
51
56
|
const finalVersion = `${getNewVersionFromCurrentVersion(currentVersion)}${preid.trim() ? '-' + preid : ''}`;
|
|
52
57
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-actions.js","sourceRoot":"","sources":["../../../src/scripts/version-actions.ts"],"names":[],"mappings":";;AACA,wCAA2C;AAE3C,mCAA4B;AAE5B,MAAqB,mBAAoB,SAAQ,wBAAc;IAE7D,KAAK,CAAC,oCAAoC,CACxC,IAAU;QAEV,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,YAAY,EAAE,+BAA+B;SAC9C,CAAA;IACH,CAAC;IACD,KAAK,CAAC,8BAA8B,CAClC,IAAU,EACV,8BAA+F;QAE/F,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,OAAO,EAAE,+BAA+B;SACzC,CAAA;IACH,CAAC;IACD,KAAK,CAAC,8BAA8B,CAClC,IAAU,EACV,YAA0B,EAC1B,qBAA6B;QAK7B,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,oBAAoB,EAAE,OAAO;SAC9B,CAAA;IACH,CAAC;IACD,KAAK,CAAC,yBAAyB,CAAC,gBAAwB;QACtD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,CAAC,oBAAoB,CACxB,IAAU,EACV,UAAkB;QAElB,yCAAyC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA;QACjD,MAAM,eAAe,GAAG,aAAa,cAAc,UAAU,CAAA;QAC7D,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;QACvC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,KAAK,CAAC,yBAAyB,CAC7B,IAAU,EACV,YAA0B,EAC1B,oBAA4C;QAE5C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,KAAK,CAAC,mBAAmB,CACvB,cAA6B,EAC7B,eAAuB,EACvB,qBAA6B,EAC7B,yBAAkD,EAClD,KAAa;QAKb,SAAS,UAAU;YACjB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,0BAA0B;YACrF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAE1B,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,CAAA;QAClC,CAAC;QAED,SAAS,+BAA+B,CAAC,cAAsB;YAC7D,MAAM,eAAe,GAAG,UAAU,EAAE,CAAA;YACpC,
|
|
1
|
+
{"version":3,"file":"version-actions.js","sourceRoot":"","sources":["../../../src/scripts/version-actions.ts"],"names":[],"mappings":";;AACA,wCAA2C;AAE3C,mCAA4B;AAE5B,MAAqB,mBAAoB,SAAQ,wBAAc;IAE7D,KAAK,CAAC,oCAAoC,CACxC,IAAU;QAEV,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,YAAY,EAAE,+BAA+B;SAC9C,CAAA;IACH,CAAC;IACD,KAAK,CAAC,8BAA8B,CAClC,IAAU,EACV,8BAA+F;QAE/F,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,OAAO,EAAE,+BAA+B;SACzC,CAAA;IACH,CAAC;IACD,KAAK,CAAC,8BAA8B,CAClC,IAAU,EACV,YAA0B,EAC1B,qBAA6B;QAK7B,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,oBAAoB,EAAE,OAAO;SAC9B,CAAA;IACH,CAAC;IACD,KAAK,CAAC,yBAAyB,CAAC,gBAAwB;QACtD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,CAAC,oBAAoB,CACxB,IAAU,EACV,UAAkB;QAElB,yCAAyC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA;QACjD,MAAM,eAAe,GAAG,aAAa,cAAc,UAAU,CAAA;QAC7D,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;QACvC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,KAAK,CAAC,yBAAyB,CAC7B,IAAU,EACV,YAA0B,EAC1B,oBAA4C;QAE5C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,KAAK,CAAC,mBAAmB,CACvB,cAA6B,EAC7B,eAAuB,EACvB,qBAA6B,EAC7B,yBAAkD,EAClD,KAAa;QAKb,SAAS,UAAU;YACjB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC,0BAA0B;YACrF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAE1B,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,CAAA;QAClC,CAAC;QAED,SAAS,+BAA+B,CAAC,cAAsB;YAC7D,MAAM,eAAe,GAAG,UAAU,EAAE,CAAA;YACpC,qFAAqF;YACrF,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAC9C,4BAA4B,CAC7B,CAAA;YAED,MAAM,qBAAqB,GACzB,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;gBACnD,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACxB,CAAC,CAAC,cAAc,CAAA;YAEpB,OAAO,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC;gBACtD,CAAC,CAAC,IAAA,YAAG,EAAC,qBAAqB,EAAE,OAAO,CAAC;gBACrC,CAAC,CAAC,GAAG,eAAe,GAAG,CAAA;QAC3B,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,+BAA+B,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAE3G,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,OAAO,EAAE,gBAAgB,YAAY,EAAE;SACxC,CAAA;IACH,CAAC;CACF;AA/FD,sCA+FC"}
|
package/dist/src/utils/helm.d.ts
CHANGED
|
@@ -24,6 +24,13 @@ export declare function installHelmRepo(helmFolderPath: string): Promise<{
|
|
|
24
24
|
stdout: string;
|
|
25
25
|
stderr: string;
|
|
26
26
|
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Patch Docker image tag in values.yaml
|
|
29
|
+
* @param valuesConfigPath
|
|
30
|
+
* @param chartConfigPath
|
|
31
|
+
* @param version
|
|
32
|
+
*/
|
|
33
|
+
export declare function patchImageTag(valuesConfigPath: string, chartConfigPath: string, version: string): Promise<void>;
|
|
27
34
|
/**
|
|
28
35
|
* Package the Helm chart
|
|
29
36
|
* @param helmFolderPath
|
package/dist/src/utils/helm.js
CHANGED
|
@@ -4,11 +4,12 @@ exports.getHelmChartFile = getHelmChartFile;
|
|
|
4
4
|
exports.setupTeleportProxyHelmChartFile = setupTeleportProxyHelmChartFile;
|
|
5
5
|
exports.resetTeleportProxyHelmChartFile = resetTeleportProxyHelmChartFile;
|
|
6
6
|
exports.installHelmRepo = installHelmRepo;
|
|
7
|
+
exports.patchImageTag = patchImageTag;
|
|
7
8
|
exports.packageHelm = packageHelm;
|
|
8
9
|
exports.pushPackagedHelm = pushPackagedHelm;
|
|
9
10
|
const fs = require("node:fs");
|
|
10
11
|
const process = require("node:process");
|
|
11
|
-
const
|
|
12
|
+
const YAML = require("yaml");
|
|
12
13
|
const aws_auth_1 = require("./aws-auth");
|
|
13
14
|
const exec_1 = require("./exec");
|
|
14
15
|
const tshProxy = 'http://localhost';
|
|
@@ -17,7 +18,7 @@ const tshProxy = 'http://localhost';
|
|
|
17
18
|
* @param helmFolderPath
|
|
18
19
|
*/
|
|
19
20
|
async function getHelmChartFile(helmFolderPath) {
|
|
20
|
-
return
|
|
21
|
+
return YAML.parse(fs.readFileSync(`${helmFolderPath}/Chart.yaml`, 'utf8'));
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* Prepare the Chart.yaml config file for the Tsh proxy
|
|
@@ -26,7 +27,7 @@ async function getHelmChartFile(helmFolderPath) {
|
|
|
26
27
|
*/
|
|
27
28
|
async function setupTeleportProxyHelmChartFile(helmFolderPath, tshPort) {
|
|
28
29
|
console.log(`Replacing charts.shared.payfit.tech -> localhost:${tshPort} for the Teleport proxy`);
|
|
29
|
-
let chartConfigStr =
|
|
30
|
+
let chartConfigStr = YAML.stringify(await getHelmChartFile(helmFolderPath));
|
|
30
31
|
chartConfigStr = chartConfigStr.replace(/(https?:\/\/)charts(\.shared)?\.payfit\.tech/gi, `${tshProxy}:${tshPort}`);
|
|
31
32
|
return fs.writeFileSync(`${helmFolderPath}/Chart.yaml`, chartConfigStr);
|
|
32
33
|
}
|
|
@@ -36,7 +37,7 @@ async function setupTeleportProxyHelmChartFile(helmFolderPath, tshPort) {
|
|
|
36
37
|
* @param tshPort
|
|
37
38
|
*/
|
|
38
39
|
async function resetTeleportProxyHelmChartFile(helmFolderPath, tshPort) {
|
|
39
|
-
let chartConfigStr =
|
|
40
|
+
let chartConfigStr = YAML.stringify(await getHelmChartFile(helmFolderPath));
|
|
40
41
|
chartConfigStr = chartConfigStr.replace(`${tshProxy}:${tshPort}`, 'https://charts.shared.payfit.tech');
|
|
41
42
|
return fs.writeFileSync(`${helmFolderPath}/Chart.yaml`, chartConfigStr);
|
|
42
43
|
}
|
|
@@ -66,6 +67,43 @@ async function installHelmRepo(helmFolderPath) {
|
|
|
66
67
|
}
|
|
67
68
|
return (0, exec_1.exec_command)(`helm dependency update ${helmFolderPath}`);
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Patch Docker image tag in values.yaml
|
|
72
|
+
* @param valuesConfigPath
|
|
73
|
+
* @param chartConfigPath
|
|
74
|
+
* @param version
|
|
75
|
+
*/
|
|
76
|
+
async function patchImageTag(valuesConfigPath, chartConfigPath, version) {
|
|
77
|
+
if (!fs.existsSync(valuesConfigPath)) {
|
|
78
|
+
console.log('Values files detected, trying to patch Docker image tag');
|
|
79
|
+
const values = YAML.parse(fs.readFileSync(valuesConfigPath, 'utf8'));
|
|
80
|
+
const chart = YAML.parse(fs.readFileSync(chartConfigPath, 'utf8'));
|
|
81
|
+
for (const dep of chart.dependencies) {
|
|
82
|
+
if (values[dep.alias]) {
|
|
83
|
+
if (values[dep.alias]?.image?.tag) {
|
|
84
|
+
values[dep.alias].image.tag = version;
|
|
85
|
+
fs.writeFileSync(valuesConfigPath, YAML.stringify(values), {
|
|
86
|
+
encoding: 'utf8',
|
|
87
|
+
});
|
|
88
|
+
console.log(`Patched Docker image tag for the service ${dep.alias} successfully`);
|
|
89
|
+
}
|
|
90
|
+
if (values[dep.alias]?.dbMigration?.image?.tag) {
|
|
91
|
+
values[dep.alias].dbMigration.image.tag = version;
|
|
92
|
+
fs.writeFileSync(valuesConfigPath, YAML.stringify(values), {
|
|
93
|
+
encoding: 'utf8',
|
|
94
|
+
});
|
|
95
|
+
console.log(`Patched Docker image tag for the dbMigration of the service ${dep.alias} successfully`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.warn(`Failed to find image.tag key for the service ${dep.alias}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
console.warn(`No values.yaml file detected at ${valuesConfigPath}, can't patch Docker image tag`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
69
107
|
/**
|
|
70
108
|
* Package the Helm chart
|
|
71
109
|
* @param helmFolderPath
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../src/utils/helm.ts"],"names":[],"mappings":";;AAcA,4CAEC;AAOD,0EAaC;AAOD,0EAUC;AAMD,0CA4BC;AAQD,kCAQC;AAQD,4CAaC;
|
|
1
|
+
{"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../src/utils/helm.ts"],"names":[],"mappings":"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"}
|