@payfit/nx-core 5.1.2-ephemeral-renovate-node-24x.73 → 5.2.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/README.md +6 -9
- package/dist/src/executors/docker-build/executor.js +5 -8
- package/dist/src/executors/docker-build/executor.js.map +1 -1
- package/dist/src/executors/docker-build/schema.json +6 -1
- package/dist/src/executors/preview-deploy/executor.js +103 -120
- package/dist/src/executors/preview-deploy/executor.js.map +1 -1
- package/dist/src/executors/publisher/docker.js +4 -5
- package/dist/src/executors/publisher/docker.js.map +1 -1
- package/dist/src/executors/publisher/executor.js.map +1 -1
- package/dist/src/executors/publisher/frontend.js +1 -2
- package/dist/src/executors/publisher/frontend.js.map +1 -1
- package/dist/src/executors/publisher/helm.js +10 -10
- package/dist/src/executors/publisher/helm.js.map +1 -1
- package/dist/src/executors/publisher/lambda.js +25 -28
- package/dist/src/executors/publisher/lambda.js.map +1 -1
- package/dist/src/executors/publisher/schema.json +10 -8
- package/dist/src/executors/release/executor.js +2 -0
- package/dist/src/executors/release/executor.js.map +1 -1
- package/dist/src/generators/init/docker/Dockerfile.template +1 -2
- package/dist/src/generators/init/globalFiles/.circleci/config.yml.template +3 -15
- package/dist/src/generators/init/init.js +1 -14
- package/dist/src/generators/init/init.js.map +1 -1
- package/dist/src/generators/init/schema.json +0 -9
- package/dist/src/generators/sync/sync-list-lambda-functions.js +1 -1
- package/dist/src/generators/sync/sync-list-lambda-functions.js.map +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.js +119 -59
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations/20251029-nx-conformance-requirement-publish.js +1 -3
- package/dist/src/migrations/20251029-nx-conformance-requirement-publish.js.map +1 -1
- package/dist/src/scripts/nx-core-updater.js +60 -312
- package/dist/src/utils/common/github.d.ts +0 -4
- package/dist/src/utils/common/github.js +0 -1
- package/dist/src/utils/common/github.js.map +1 -1
- package/dist/src/utils/common/nx.d.ts +1 -3
- package/dist/src/utils/common/nx.js +0 -25
- package/dist/src/utils/common/nx.js.map +1 -1
- package/dist/src/utils/common/oci.d.ts +3 -25
- package/dist/src/utils/common/oci.js +4 -58
- package/dist/src/utils/common/oci.js.map +1 -1
- package/dist/src/utils/docker.d.ts +2 -3
- package/dist/src/utils/docker.js +11 -29
- package/dist/src/utils/docker.js.map +1 -1
- package/dist/src/utils/helm.d.ts +1 -1
- package/dist/src/utils/helm.js +3 -8
- package/dist/src/utils/helm.js.map +1 -1
- package/dist/src/utils/lambda/aws-lambda.d.ts +3 -4
- package/dist/src/utils/lambda/aws-lambda.js +11 -11
- package/dist/src/utils/lambda/aws-lambda.js.map +1 -1
- package/dist/src/utils/lambda/publish.d.ts +2 -3
- package/dist/src/utils/lambda/publish.js +3 -3
- package/dist/src/utils/lambda/publish.js.map +1 -1
- package/dist/src/utils/spacelift/lib/__generated__/gql.js +1 -1
- package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +35 -319
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js +8 -51
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +1 -1
- package/generators.json +0 -5
- package/migrations.json +0 -15
- package/package.json +7 -9
- package/dist/src/executors/publisher/schema.d.ts +0 -26
- package/dist/src/executors/publisher/schema.js +0 -3
- package/dist/src/executors/publisher/schema.js.map +0 -1
- package/dist/src/generators/init/globalFiles/_github/workflows/ide-nx-migrate.yml.template +0 -17
- package/dist/src/generators/local-lambda-setup/files/docker-compose/docker-compose.yml.template +0 -21
- package/dist/src/generators/local-lambda-setup/files/scripts/invoke_lambda_local.sh.template +0 -97
- package/dist/src/generators/local-lambda-setup/local-lambda-setup.d.ts +0 -29
- package/dist/src/generators/local-lambda-setup/local-lambda-setup.js +0 -176
- package/dist/src/generators/local-lambda-setup/local-lambda-setup.js.map +0 -1
- package/dist/src/generators/local-lambda-setup/schema.json +0 -24
- package/dist/src/migrations/20251112-fix-parallelization-circleci.d.ts +0 -2
- package/dist/src/migrations/20251112-fix-parallelization-circleci.js +0 -98
- package/dist/src/migrations/20251112-fix-parallelization-circleci.js.map +0 -1
- package/dist/src/migrations/20251205-metadata-lambda-function-to-object.d.ts +0 -2
- package/dist/src/migrations/20251205-metadata-lambda-function-to-object.js +0 -28
- package/dist/src/migrations/20251205-metadata-lambda-function-to-object.js.map +0 -1
- package/dist/src/migrations/5.11.0/20251209-nx-renovate-gha.d.ts +0 -2
- package/dist/src/migrations/5.11.0/20251209-nx-renovate-gha.js +0 -25
- package/dist/src/migrations/5.11.0/20251209-nx-renovate-gha.js.map +0 -1
- package/dist/src/migrations/5.11.0/templates/_github/workflows/ide-nx-migrate.yml.template +0 -17
- package/dist/src/utils/common/enums.d.ts +0 -7
- package/dist/src/utils/common/enums.js +0 -12
- package/dist/src/utils/common/enums.js.map +0 -1
- package/dist/src/utils/common/environment.d.ts +0 -1
- package/dist/src/utils/common/environment.js +0 -11
- package/dist/src/utils/common/environment.js.map +0 -1
- package/dist/src/utils/common/octokit.d.ts +0 -2
- package/dist/src/utils/common/octokit.js +0 -22
- package/dist/src/utils/common/octokit.js.map +0 -1
- package/dist/src/utils/common/renovate.d.ts +0 -2
- package/dist/src/utils/common/renovate.js +0 -17
- package/dist/src/utils/common/renovate.js.map +0 -1
- package/dist/src/utils/common/types.d.ts +0 -4
- package/dist/src/utils/common/types.js +0 -3
- package/dist/src/utils/common/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -83,28 +83,25 @@ When using Lambda functions, you can configure the following parameters in your
|
|
|
83
83
|
```json
|
|
84
84
|
{
|
|
85
85
|
"metadata": {
|
|
86
|
-
"lambdaFunctions": [
|
|
87
|
-
{
|
|
88
|
-
"name": "your-lambda",
|
|
89
|
-
"healthCheckPayload": "your-lambda-payload-json-string-formatted"
|
|
90
|
-
}
|
|
91
|
-
],
|
|
86
|
+
"lambdaFunctions": ["your-lambda"],
|
|
92
87
|
"lambdaStacks": ["your-lambda-stack"],
|
|
93
88
|
"lambdaBucket": "your-lambda-bucket",
|
|
94
|
-
"lambdaOciRepository": "your-lambda-oci-repository"
|
|
89
|
+
"lambdaOciRepository": "your-lambda-oci-repository",
|
|
90
|
+
"lambdaHealthCheckPayload": "your-lambda-payload-json-string-formatted"
|
|
95
91
|
}
|
|
96
92
|
}
|
|
97
93
|
```
|
|
98
94
|
|
|
99
95
|
These fields are used to:
|
|
100
96
|
|
|
101
|
-
- `lambdaFunctions`: Lambda functions to deploy
|
|
97
|
+
- `lambdaFunctions`: Lambda functions to deploy
|
|
102
98
|
- `lambdaStacks`: Spacelift stacks deploying lambdas
|
|
103
99
|
- `lambdaBucket`: the S3 bucket where Lambda function zip archives are stored
|
|
104
100
|
- `lambdaOciRepository`: the OCI repository used to publish lambda release candidates for Kargo
|
|
101
|
+
- `lambdaHealthCheckPayload`: Payload used for smoke tests invocation
|
|
105
102
|
|
|
106
103
|
If `lambdaBucket` is not specified, the plugin will fall back to the default bucket: `payfit-shared-lambda-artifacts`.
|
|
107
|
-
If `lambdaOciRepository` is not specified, the plugin will fall back to the value of `lambdaFunctions[0]
|
|
104
|
+
If `lambdaOciRepository` is not specified, the plugin will fall back to the value of `lambdaFunctions[0]`
|
|
108
105
|
|
|
109
106
|
#### Lambda Detection
|
|
110
107
|
|
|
@@ -8,7 +8,6 @@ const docker_1 = require("../../utils/docker");
|
|
|
8
8
|
const runExecutor = async (options, context) => {
|
|
9
9
|
const projectRoot = context.projectGraph.nodes[context.projectName].data.root;
|
|
10
10
|
const projectDockerfile = `${projectRoot}/Dockerfile`;
|
|
11
|
-
const isCI = process.env.CI === 'true';
|
|
12
11
|
if (!fs.existsSync(projectDockerfile)) {
|
|
13
12
|
logger_1.consola.warn(`Dockerfile not found at ${projectDockerfile}, skipping`);
|
|
14
13
|
return { success: true };
|
|
@@ -18,10 +17,10 @@ const runExecutor = async (options, context) => {
|
|
|
18
17
|
return { success: false };
|
|
19
18
|
}
|
|
20
19
|
const registry = {
|
|
21
|
-
url: options.
|
|
20
|
+
url: options.isPublicRepository
|
|
22
21
|
? 'public.ecr.aws/payfit'
|
|
23
22
|
: (0, ecr_1.getAwsEcrRegistry)(),
|
|
24
|
-
name: options.
|
|
23
|
+
name: options.isPublicRepository ? 'public.ecr.aws' : (0, ecr_1.getAwsEcrRegistry)(),
|
|
25
24
|
};
|
|
26
25
|
const commitSha = await (0, github_1.getCurrentGitCommitSha)();
|
|
27
26
|
const sanitizedRepoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
@@ -30,12 +29,10 @@ const runExecutor = async (options, context) => {
|
|
|
30
29
|
logger_1.consola.box(`Would have published docker image located at ${projectDockerfile} to registry ${options.ecrRepository} with tag ${tag} but --dry-run is enabled`);
|
|
31
30
|
return { success: true };
|
|
32
31
|
}
|
|
33
|
-
|
|
34
|
-
await (0, ecr_1.ensureEcrAuth)(registry.name, options.isPublicRegistry);
|
|
35
|
-
}
|
|
32
|
+
await (0, ecr_1.ensureEcrAuth)(registry.name, options.isPublicRepository);
|
|
36
33
|
// Build ephemeral sha tag (immutable)
|
|
37
|
-
logger_1.consola.box(
|
|
38
|
-
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, tag, sanitizedRepoUrl, commitSha, registry.url, [], context.projectName, options.
|
|
34
|
+
logger_1.consola.box(`Building and pushing ephemeral image to ${registry.url}/${options.ecrRepository}:${tag}`);
|
|
35
|
+
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, tag, sanitizedRepoUrl, commitSha, registry.url, [], context.projectName, options.disableEcrCaching, options.buildArgs);
|
|
39
36
|
return { success: true };
|
|
40
37
|
};
|
|
41
38
|
exports.default = runExecutor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/docker-build/executor.ts"],"names":[],"mappings":";;AAAA,8BAA6B;AAI7B,gDAI+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,+CAA4D;AAG5D,MAAM,WAAW,GAGyB,KAAK,EAC7C,OAAmC,EACnC,OAAwB,EACxB,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/docker-build/executor.ts"],"names":[],"mappings":";;AAAA,8BAA6B;AAI7B,gDAI+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,+CAA4D;AAG5D,MAAM,WAAW,GAGyB,KAAK,EAC7C,OAAmC,EACnC,OAAwB,EACxB,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,gBAAO,CAAC,IAAI,CAAC,2BAA2B,iBAAiB,YAAY,CAAC,CAAA;QACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,gBAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAgB;QAC5B,GAAG,EAAE,OAAO,CAAC,kBAAkB;YAC7B,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,IAAA,uBAAiB,GAAE;QACvB,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAA,uBAAiB,GAAE;KAC1E,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAsB,GAAE,CAAA;IAChD,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAA6B,GAAE,CAAA;IAC9D,MAAM,GAAG,GAAG,iBAAiB,SAAS,EAAE,CAAA;IAExC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,gBAAO,CAAC,GAAG,CACT,gDAAgD,iBAAiB,gBAAgB,OAAO,CAAC,aAAa,aAAa,GAAG,2BAA2B,CAClJ,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,IAAA,mBAAa,EAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAE9D,sCAAsC;IACtC,gBAAO,CAAC,GAAG,CACT,2CAA2C,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,aAAa,IAAI,GAAG,EAAE,CAC1F,CAAA;IAED,MAAM,IAAA,gCAAuB,EAC3B,OAAO,CAAC,aAAa,EACrB,iBAAiB,EACjB,GAAG,EACH,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,GAAG,EACZ,EAAE,EACF,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,SAAS,CAClB,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"type": "string",
|
|
10
10
|
"description": "The ecr repository name (i.e. the image name)"
|
|
11
11
|
},
|
|
12
|
-
"
|
|
12
|
+
"isPublicRepository": {
|
|
13
13
|
"type": "boolean",
|
|
14
14
|
"description": "Use AWS public ECR (us-east-1)",
|
|
15
15
|
"default": false
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
"description": "Do not build/push, only print what would happen",
|
|
20
20
|
"default": false
|
|
21
21
|
},
|
|
22
|
+
"disableEcrCaching": {
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"description": "Disable ECR caching",
|
|
25
|
+
"default": false
|
|
26
|
+
},
|
|
22
27
|
"buildArgs": {
|
|
23
28
|
"type": "string",
|
|
24
29
|
"description": "Build arguments to pass to Docker build",
|
|
@@ -1,41 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const auth_app_1 = require("@octokit/auth-app");
|
|
4
|
+
const rest_1 = require("@octokit/rest");
|
|
3
5
|
const yaml = require("yaml");
|
|
4
6
|
const logger_1 = require("../../utils/common/logger");
|
|
5
|
-
const octokit_1 = require("../../utils/common/octokit");
|
|
6
7
|
const argocdOverride_1 = require("./argocdOverride");
|
|
7
8
|
const kargoPolicy_1 = require("./kargoPolicy");
|
|
8
|
-
function sleep(ms) {
|
|
9
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Retry a function when it throws a 409 Conflict error, up to 5 times.
|
|
13
|
-
* Waits 2 seconds between retries.
|
|
14
|
-
*/
|
|
15
|
-
async function retryOnConflict(fn) {
|
|
16
|
-
const maxAttempts = 5;
|
|
17
|
-
const retryDelay = 2000;
|
|
18
|
-
let lastError;
|
|
19
|
-
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
20
|
-
try {
|
|
21
|
-
return await fn();
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
lastError = error;
|
|
25
|
-
// Only retry on 409 Conflict errors
|
|
26
|
-
if (error?.status !== 409) {
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
// Don't retry on the last attempt
|
|
30
|
-
if (attempt === maxAttempts - 1) {
|
|
31
|
-
throw error;
|
|
32
|
-
}
|
|
33
|
-
logger_1.consola.warn(`Conflict detected (409), retrying in ${retryDelay}ms (attempt ${attempt + 1}/${maxAttempts})`);
|
|
34
|
-
await sleep(retryDelay);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
throw lastError;
|
|
38
|
-
}
|
|
39
9
|
function readFileYamlContent(file) {
|
|
40
10
|
if (!file) {
|
|
41
11
|
return undefined;
|
|
@@ -57,99 +27,112 @@ function readFileYamlContent(file) {
|
|
|
57
27
|
throw new Error(`Failed to parse YAML file: ${error}`);
|
|
58
28
|
}
|
|
59
29
|
}
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
repo,
|
|
65
|
-
path,
|
|
66
|
-
ref: 'heads/main',
|
|
67
|
-
})
|
|
68
|
-
.catch(e => {
|
|
69
|
-
// we don't update this file if it does not exist as it's optional
|
|
70
|
-
if (e.status === 404) {
|
|
71
|
-
if (optional) {
|
|
72
|
-
logger_1.consola.info(`${repo}/${path} not found, ignoring this file`);
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
throw new Error(`${repo}/${path} not found`);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
throw e;
|
|
80
|
-
});
|
|
81
|
-
if (!file) {
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
const content = readFileYamlContent(file);
|
|
85
|
-
if (!content) {
|
|
86
|
-
if (optional) {
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
throw new Error(`${repo}/${path} exists but contains invalid or empty YAML content`);
|
|
91
|
-
}
|
|
30
|
+
function getEnvVar(name) {
|
|
31
|
+
const value = process.env[name];
|
|
32
|
+
if (!value) {
|
|
33
|
+
throw new Error(`Missing env var ${name}`);
|
|
92
34
|
}
|
|
93
|
-
return
|
|
94
|
-
|
|
95
|
-
sha: file.data.sha,
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
const updateFile = async (octokit, owner, repo, path, message, content, sha) => {
|
|
99
|
-
const updatedContent = Buffer.from(content).toString('base64');
|
|
100
|
-
return await octokit.repos.createOrUpdateFileContents({
|
|
101
|
-
owner,
|
|
102
|
-
repo,
|
|
103
|
-
path,
|
|
104
|
-
message,
|
|
105
|
-
content: updatedContent,
|
|
106
|
-
branch: 'main',
|
|
107
|
-
sha,
|
|
108
|
-
committer: {
|
|
109
|
-
name: 'github-actions[bot]',
|
|
110
|
-
email: 'github-actions[bot]@users.noreply.github.com',
|
|
111
|
-
},
|
|
112
|
-
author: {
|
|
113
|
-
name: 'github-actions[bot]',
|
|
114
|
-
email: 'github-actions[bot]@users.noreply.github.com',
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
};
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
118
37
|
const runExecutor = async (options) => {
|
|
119
38
|
logger_1.consola.box(`Start preview deploy switch for ${options.targetAppName} to target branch ${options.targetBranchName} on the ${options.targetEnv} env`);
|
|
120
|
-
const octokit =
|
|
39
|
+
const octokit = process.env.GITHUB_TOKEN
|
|
40
|
+
? new rest_1.Octokit({ auth: process.env.GITHUB_TOKEN })
|
|
41
|
+
: new rest_1.Octokit({
|
|
42
|
+
authStrategy: auth_app_1.createAppAuth,
|
|
43
|
+
auth: {
|
|
44
|
+
appId: getEnvVar('GITHUB_APP_ID'),
|
|
45
|
+
privateKey: getEnvVar('GITHUB_PRIVATE_KEY'),
|
|
46
|
+
installationId: getEnvVar('GITHUB_INSTALLATION_ID'),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
121
49
|
const argocdOverridePath = `apps/${options.targetAppName}/${options.targetEnv}/.argocd-override.yaml`;
|
|
122
50
|
const kargoPolicyPath = `.kargo/policy.yaml`;
|
|
123
|
-
const message = `chore(${options.targetAppName}): switch deployment branch to ${options.targetBranchName} on ${options.targetEnv}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
51
|
+
const message = `chore(${options.targetAppName}): switch deployment branch to ${options.targetBranchName} on ${options.targetEnv}`;
|
|
52
|
+
// Retrieve both files - throw error if either doesn't exist
|
|
53
|
+
const [argocdOverrideFile, kargoPolicyFile] = await Promise.all([
|
|
54
|
+
octokit.repos
|
|
55
|
+
.getContent({
|
|
56
|
+
owner: 'PayFit',
|
|
57
|
+
repo: options.targetRepo,
|
|
58
|
+
path: argocdOverridePath,
|
|
59
|
+
ref: 'heads/main',
|
|
60
|
+
})
|
|
61
|
+
.catch(e => {
|
|
62
|
+
// we don't update this file if it does not exist as it's optional
|
|
63
|
+
if (e.status === 404) {
|
|
64
|
+
logger_1.consola.info(`${options.targetRepo}/${argocdOverridePath} not found, ignoring this file`);
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
throw e;
|
|
68
|
+
}),
|
|
69
|
+
octokit.repos
|
|
70
|
+
.getContent({
|
|
71
|
+
owner: 'PayFit',
|
|
72
|
+
repo: options.targetRepo,
|
|
73
|
+
path: kargoPolicyPath,
|
|
74
|
+
ref: 'heads/main',
|
|
75
|
+
})
|
|
76
|
+
.catch(e => {
|
|
77
|
+
if (e.status === 404) {
|
|
78
|
+
throw new Error(`${options.targetRepo}/${kargoPolicyPath} not found`);
|
|
79
|
+
}
|
|
80
|
+
throw e;
|
|
81
|
+
}),
|
|
82
|
+
]);
|
|
83
|
+
let argocdOverrideYaml = readFileYamlContent(argocdOverrideFile);
|
|
84
|
+
let kargoPolicyYaml = readFileYamlContent(kargoPolicyFile);
|
|
85
|
+
if (argocdOverrideYaml)
|
|
86
|
+
argocdOverrideYaml = await (0, argocdOverride_1.updateArgoCDOverride)(argocdOverrideYaml, options.targetBranchName);
|
|
87
|
+
kargoPolicyYaml = await (0, kargoPolicy_1.updateKargoPolicy)(kargoPolicyYaml, options.targetBranchName, options.targetEnv, options.targetAppName);
|
|
88
|
+
if (!argocdOverrideYaml && !kargoPolicyYaml) {
|
|
89
|
+
logger_1.consola.warn('Everything is already setup correctly, skipping');
|
|
90
|
+
return {
|
|
91
|
+
success: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Convert back to YAML and base64
|
|
95
|
+
if (argocdOverrideYaml) {
|
|
96
|
+
const updatedArgocdYaml = yaml.stringify(argocdOverrideYaml);
|
|
97
|
+
const updatedArgocdContent = Buffer.from(updatedArgocdYaml).toString('base64');
|
|
98
|
+
await octokit.repos.createOrUpdateFileContents({
|
|
99
|
+
owner: 'PayFit',
|
|
100
|
+
repo: options.targetRepo,
|
|
101
|
+
path: argocdOverridePath,
|
|
102
|
+
message,
|
|
103
|
+
content: updatedArgocdContent,
|
|
104
|
+
branch: 'main',
|
|
105
|
+
sha: argocdOverrideFile.data.sha,
|
|
106
|
+
committer: {
|
|
107
|
+
name: 'github-actions[bot]',
|
|
108
|
+
email: 'github-actions[bot]@users.noreply.github.com',
|
|
109
|
+
},
|
|
110
|
+
author: {
|
|
111
|
+
name: 'github-actions[bot]',
|
|
112
|
+
email: 'github-actions[bot]@users.noreply.github.com',
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (kargoPolicyYaml) {
|
|
117
|
+
const updatedKargoYaml = yaml.stringify(kargoPolicyYaml);
|
|
118
|
+
const updatedKargoContent = Buffer.from(updatedKargoYaml).toString('base64');
|
|
119
|
+
await octokit.repos.createOrUpdateFileContents({
|
|
120
|
+
owner: 'PayFit',
|
|
121
|
+
repo: options.targetRepo,
|
|
122
|
+
path: kargoPolicyPath,
|
|
123
|
+
message,
|
|
124
|
+
content: updatedKargoContent,
|
|
125
|
+
branch: 'main',
|
|
126
|
+
sha: kargoPolicyFile.data.sha,
|
|
127
|
+
committer: {
|
|
128
|
+
name: 'github-actions[bot]',
|
|
129
|
+
email: 'github-actions[bot]@users.noreply.github.com',
|
|
130
|
+
},
|
|
131
|
+
author: {
|
|
132
|
+
name: 'github-actions[bot]',
|
|
133
|
+
email: 'github-actions[bot]@users.noreply.github.com',
|
|
134
|
+
},
|
|
135
|
+
});
|
|
153
136
|
}
|
|
154
137
|
logger_1.consola.success('Preview deploy switch succeed !');
|
|
155
138
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/preview-deploy/executor.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/preview-deploy/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,25 +34,24 @@ async function publishDocker(options, context, version, projectRoot, isDryRun =
|
|
|
34
34
|
: [];
|
|
35
35
|
const sanitizedRepoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
36
36
|
const commitSha = await (0, github_1.getCurrentGitCommitSha)();
|
|
37
|
-
const sanitizedVersion = (0, docker_1.getShortVersion)(version);
|
|
38
37
|
const appName = context.projectName || 'unknown-app';
|
|
39
38
|
try {
|
|
40
39
|
const ephemeralTag = `ephemeral-sha-${commitSha}`;
|
|
41
40
|
const ephemeralRef = `${registry.url}/${options.ecrRepository}:${ephemeralTag}`;
|
|
42
41
|
const hasEphemeral = await (0, ecr_1.imageTagExistsInEcr)(options.ecrRepository, ephemeralTag, options.isPublicRegistry);
|
|
43
42
|
if (hasEphemeral) {
|
|
44
|
-
logger_1.consola.start(`Promoting existing image ${ephemeralRef} to ${
|
|
45
|
-
const targets = [
|
|
43
|
+
logger_1.consola.start(`Promoting existing image ${ephemeralRef} to ${version} and extra tags ${extraTags.join(', ')}`);
|
|
44
|
+
const targets = [version, ...extraTags];
|
|
46
45
|
await (0, ecr_1.retagDockerImageViaAwsSdk)(options.ecrRepository, ephemeralTag, targets, options.isPublicRegistry);
|
|
47
46
|
logger_1.consola.success('Docker image retagged successfully!');
|
|
48
47
|
}
|
|
49
48
|
else {
|
|
50
49
|
logger_1.consola.start('Building and pushing docker image from scratch');
|
|
51
|
-
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile,
|
|
50
|
+
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, version, sanitizedRepoUrl, commitSha, registry.url, extraTags, appName, options.disableEcrCaching, options.buildArgs);
|
|
52
51
|
logger_1.consola.success('Docker image built and pushed successfully!');
|
|
53
52
|
}
|
|
54
53
|
if (!version.includes('ephemeral')) {
|
|
55
|
-
await (0, datadog_1.correlateDeploymentImage)(`${registry.url}/${options.ecrRepository}:${
|
|
54
|
+
await (0, datadog_1.correlateDeploymentImage)(`${registry.url}/${options.ecrRepository}:${version}`, sanitizedRepoUrl, commitSha);
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../src/executors/publisher/docker.ts"],"names":[],"mappings":";;AAoBA,sCAkGC;AAtHD,8BAA6B;AAI7B,gDAM+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,iDAA8D;AAC9D,+
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../src/executors/publisher/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/publisher/executor.ts"],"names":[],"mappings":";;AAIA,sDAAmD;AACnD,8CAAqD;AACrD,qCAAwC;AACxC,yCAA4C;AAC5C,iCAAoC;AACpC,qCAAwC;AAGxC,MAAM,WAAW,GAGuB,KAAK,EAC3C,OAAiC,EACjC,OAAwB,EACxB,EAAE;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;IAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAa,EAAC,OAAO,CAAC,CAAA;IAEhD,6EAA6E;IAC7E,MAAM,WAAW,GAAgB,OAAO,EAAE,oBAAoB,CAAA;IAC9D,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACvE,gBAAO,CAAC,KAAK,CACX,cAAc,OAAO,CAAC,WAAW,SAAS,cAAc,OAAO,UAAU,EAAE,CAC5E,CAAA;IAED,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/publisher/executor.ts"],"names":[],"mappings":";;AAIA,sDAAmD;AACnD,8CAAqD;AACrD,qCAAwC;AACxC,yCAA4C;AAC5C,iCAAoC;AACpC,qCAAwC;AAGxC,MAAM,WAAW,GAGuB,KAAK,EAC3C,OAAiC,EACjC,OAAwB,EACxB,EAAE;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;IAC7E,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAa,EAAC,OAAO,CAAC,CAAA;IAEhD,6EAA6E;IAC7E,MAAM,WAAW,GAAgB,OAAO,EAAE,oBAAoB,CAAA;IAC9D,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACvE,gBAAO,CAAC,KAAK,CACX,cAAc,OAAO,CAAC,WAAW,SAAS,cAAc,OAAO,UAAU,EAAE,CAC5E,CAAA;IAED,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IACxE,MAAM,IAAA,kBAAW,EACf,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,CACT,CAAA;IACD,MAAM,IAAA,sBAAa,EACjB,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,CACT,CAAA;IACD,MAAM,IAAA,0BAAe,EACnB,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -6,7 +6,6 @@ const devkit_1 = require("@nx/devkit");
|
|
|
6
6
|
const tree_1 = require("nx/src/generators/tree");
|
|
7
7
|
const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
8
8
|
const ecr_1 = require("../../utils/common/ecr");
|
|
9
|
-
const enums_1 = require("../../utils/common/enums");
|
|
10
9
|
const logger_1 = require("../../utils/common/logger");
|
|
11
10
|
const oci_1 = require("../../utils/common/oci");
|
|
12
11
|
const s3_1 = require("../../utils/frontend/s3");
|
|
@@ -43,7 +42,7 @@ async function publishFrontend(options, context, version, projectRoot, projectDi
|
|
|
43
42
|
const packageJsonPath = (0, path_1.join)(absoluteProjectRoot, 'package.json');
|
|
44
43
|
logger_1.consola.log(`Pushing empty image to ECR ${(0, ecr_1.getAwsEcrRegistry)()}/${ociRepository}:${version}`);
|
|
45
44
|
await (0, aws_auth_1.loginToEcr)((0, ecr_1.getAwsEcrRegistry)());
|
|
46
|
-
await (0, oci_1.pushImageToEcr)(ociRepository, version, packageJsonPath,
|
|
45
|
+
await (0, oci_1.pushImageToEcr)(ociRepository, version, packageJsonPath, 'frontend', (0, ecr_1.getAwsEcrRegistry)());
|
|
47
46
|
logger_1.consola.success('Empty image pushed to ECR successfully!');
|
|
48
47
|
}
|
|
49
48
|
//# sourceMappingURL=frontend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../../../src/executors/publisher/frontend.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../../../src/executors/publisher/frontend.ts"],"names":[],"mappings":";;AAgBA,0CAwEC;AAxFD,+BAAqC;AAErC,uCAA2D;AAC3D,iDAA+C;AAE/C,0DAAsE;AACtE,gDAA0D;AAC1D,sDAAmD;AACnD,gDAAuD;AACvD,gDAAkD;AAClD,wEAG4C;AAGrC,KAAK,UAAU,eAAe,CACnC,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAmB,EACnB,QAAiB;IAEjB,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;IACvE,MAAM,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,IAAI,EAAE,CAAA;IACzE,MAAM,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,IAAI,EAAE,CAAA;IAC7E,MAAM,WAAW,GAAG,IAAI,aAAM,CAAC,sBAAa,EAAE,KAAK,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,QAAQ,2BAA2B,IAAI,OAAO,EAAE,CAAA;IACrE,mHAAmH;IACnH,MAAM,mBAAmB,GAAG,IAAA,eAAQ,EAAC,sBAAa,EAAE,WAAW,CAAC,CAAA;IAChE,mHAAmH;IACnH,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAAC,sBAAa,EAAE,WAAW,CAAC,CAAA;IAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAA;IAE1E,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,CAAC,GAAG,yBAAyB,EAAE,cAAc,CAAC,CAAA;IAExE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,gBAAO,CAAC,IAAI,CACV,yCAAyC,OAAO,CAAC,WAAW,sBAAsB,CACnF,CAAA;QACD,OAAM;IACR,CAAC;IAED,WAAW,CAAC,MAAM,CAAC,mBAAmB,GAAG,eAAe,CAAC,CAAA;IACzD,MAAM,IAAA,gDAA+B,EACnC,mBAAmB,EACnB,WAAW,EACX,OAAO,CACR,CAAA;IACD,MAAM,IAAA,iCAAgB,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAE7C,IAAI,QAAQ,EAAE,CAAC;QACb,gBAAO,CAAC,GAAG,CACT,mDAAmD,WAAW,iBAAiB,2BAA2B,IAAI,OAAO,iBAAiB,OAAO,2BAA2B,CACzK,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,IAAA,uBAAY,GAAE,CAAA;IAEpB,gBAAO,CAAC,GAAG,CACT,2CAA2C,2BAA2B,IAAI,OAAO,iBAAiB,OAAO,EAAE,CAC5G,CAAA;IAED,gBAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC1C,MAAM,IAAA,aAAQ,EACZ,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC3B,mCAAmC,CACpC,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA;IACjE,gBAAO,CAAC,GAAG,CACT,8BAA8B,IAAA,uBAAiB,GAAE,IAAI,aAAa,IAAI,OAAO,EAAE,CAChF,CAAA;IACD,MAAM,IAAA,qBAAU,EAAC,IAAA,uBAAiB,GAAE,CAAC,CAAA;IACrC,MAAM,IAAA,oBAAc,EAClB,aAAa,EACb,OAAO,EACP,eAAe,EACf,UAAU,EACV,IAAA,uBAAiB,GAAE,CACpB,CAAA;IACD,gBAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -7,12 +7,10 @@ const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
|
7
7
|
const github_1 = require("../../utils/common/github");
|
|
8
8
|
const logger_1 = require("../../utils/common/logger");
|
|
9
9
|
const tsh_1 = require("../../utils/common/tsh");
|
|
10
|
-
const docker_1 = require("../../utils/docker");
|
|
11
10
|
const helm_1 = require("../../utils/helm");
|
|
12
11
|
async function publishHelm(options, context, version, projectRoot, projectDist, isDryRun) {
|
|
13
12
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
14
13
|
try {
|
|
15
|
-
const sanitizedVersion = (0, docker_1.getShortVersion)(version);
|
|
16
14
|
const helmChartFolder = options.helmChartFolder || '.deploy';
|
|
17
15
|
const projectHelmFolder = `${projectRoot}/${helmChartFolder}`;
|
|
18
16
|
const valuesConfigPath = `${projectHelmFolder}/values.yaml`;
|
|
@@ -30,32 +28,34 @@ async function publishHelm(options, context, version, projectRoot, projectDist,
|
|
|
30
28
|
return;
|
|
31
29
|
}
|
|
32
30
|
if (isDryRun) {
|
|
33
|
-
logger_1.consola.box(`Would have published Helm chart located at ${projectHelmFolder} to ${options.chartOciRegistry ? options.chartOciRegistry : options.chartRegistry}/${gitBranchName} with version ${
|
|
31
|
+
logger_1.consola.box(`Would have published Helm chart located at ${projectHelmFolder} to ${options.chartOciRegistry ? options.chartOciRegistry : options.chartRegistry}/${gitBranchName} with version ${version} but --dry-run is enabled`);
|
|
34
32
|
return;
|
|
35
33
|
}
|
|
36
34
|
await (0, aws_auth_1.checkAwsAuth)();
|
|
37
|
-
logger_1.consola.box(`Publishing Helm chart to ${options.chartRegistry}/${gitBranchName} with version ${
|
|
35
|
+
logger_1.consola.box(`Publishing Helm chart to ${options.chartRegistry}/${gitBranchName} with version ${version}`);
|
|
38
36
|
// connect to the chartmuseum through teleport
|
|
39
37
|
const proxyData = tslib_1.__addDisposableResource(env_1, await (0, tsh_1.getLocalPortForChartMuseum)(), false);
|
|
40
38
|
await proxyData.isReady();
|
|
41
39
|
logger_1.consola.start('Building Helm chart');
|
|
42
40
|
await (0, helm_1.setupTeleportProxyHelmChartFile)(projectHelmFolder, proxyData.port);
|
|
43
41
|
await (0, helm_1.installHelmRepo)(projectHelmFolder);
|
|
44
|
-
await (0, helm_1.patchImageTag)(valuesConfigPath, chartConfigPath,
|
|
45
|
-
await (0, helm_1.packageHelm)(projectHelmFolder,
|
|
42
|
+
await (0, helm_1.patchImageTag)(valuesConfigPath, chartConfigPath, version);
|
|
43
|
+
await (0, helm_1.packageHelm)(projectHelmFolder, version, destinationHelmFolder);
|
|
46
44
|
await (0, helm_1.resetTeleportProxyHelmChartFile)(projectHelmFolder, proxyData.port);
|
|
47
45
|
logger_1.consola.success('Helm chart packaged!');
|
|
48
46
|
const chartConfig = await (0, helm_1.getHelmChartFile)(projectHelmFolder);
|
|
49
|
-
const packagedHelmChartName = `${chartConfig.name}-${
|
|
47
|
+
const packagedHelmChartName = `${chartConfig.name}-${version}.tgz`;
|
|
50
48
|
const packagedHelmChartPath = `${destinationHelmFolder}${packagedHelmChartName}`;
|
|
51
49
|
logger_1.consola.start('Publishing Helm chart');
|
|
52
50
|
// If chartOciRegistry is provided, push to ECR using OCI format
|
|
53
51
|
if (options.chartOciRegistry) {
|
|
54
52
|
logger_1.consola.log(`Publishing Helm chart to OCI registry ${options.chartOciRegistry}`);
|
|
55
|
-
await (0, helm_1.pushOciPackagedHelm)(packagedHelmChartPath, options.chartOciRegistry
|
|
53
|
+
await (0, helm_1.pushOciPackagedHelm)(packagedHelmChartPath, options.chartOciRegistry);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Otherwise, push to the chartmuseum as before
|
|
57
|
+
await (0, helm_1.pushPackagedHelm)(packagedHelmChartPath, packagedHelmChartName, options.chartRegistry, gitBranchName);
|
|
56
58
|
}
|
|
57
|
-
// Otherwise, push to the chartmuseum as before
|
|
58
|
-
await (0, helm_1.pushPackagedHelm)(packagedHelmChartPath, packagedHelmChartName, options.chartRegistry, gitBranchName);
|
|
59
59
|
logger_1.consola.success('Helm chart published successfully!');
|
|
60
60
|
}
|
|
61
61
|
catch (e_1) {
|
|
@@ -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":";;AAoBA,kCA6EC;;AAjGD,8BAA6B;AAI7B,0DAA0D;AAC1D,sDAAwE;AACxE,sDAAmD;AACnD,gDAAmE;AACnE,2CASyB;AAGlB,KAAK,UAAU,WAAW,CAC/B,OAAiC,EACjC,OAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAmB,EACnB,QAAiB;;;QAEjB,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,SAAS,CAAA;QAC5D,MAAM,iBAAiB,GAAG,GAAG,WAAW,IAAI,eAAe,EAAE,CAAA;QAC7D,MAAM,gBAAgB,GAAG,GAAG,iBAAiB,cAAc,CAAA;QAC3D,MAAM,eAAe,GAAG,GAAG,iBAAiB,aAAa,CAAA;QACzD,MAAM,qBAAqB,GAAG,GAAG,WAAW,SAAS,CAAA;QACrD,MAAM,aAAa,GAAG,MAAM,IAAA,qCAA4B,GAAE,CAAA;QAE1D,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAEvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,gBAAO,CAAC,IAAI,CACV,kCAAkC,OAAO,CAAC,WAAW,eAAe,eAAe,YAAY,CAChG,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,gBAAO,CAAC,KAAK,CACX,uGAAuG,CACxG,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,gBAAO,CAAC,GAAG,CACT,8CAA8C,iBAAiB,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,aAAa,iBAAiB,OAAO,2BAA2B,CACtN,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,IAAA,uBAAY,GAAE,CAAA;QAEpB,gBAAO,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,gBAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACpC,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,gBAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;QAEvC,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAgB,EAAC,iBAAiB,CAAC,CAAA;QAC7D,MAAM,qBAAqB,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,OAAO,MAAM,CAAA;QAClE,MAAM,qBAAqB,GAAG,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,CAAA;QAEhF,gBAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACtC,gEAAgE;QAChE,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,gBAAO,CAAC,GAAG,CACT,yCAAyC,OAAO,CAAC,gBAAgB,EAAE,CACpE,CAAA;YACD,MAAM,IAAA,0BAAmB,EAAC,qBAAqB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAC5E,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,IAAA,uBAAgB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,CAAC,aAAa,EACrB,aAAa,CACd,CAAA;QACH,CAAC;QAED,gBAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAA;;;;;;;;;CACtD"}
|