@docupace/pipeline 1.0.112 โ 1.0.113-test2
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/.changeset/eks-migration-sync.md +5 -0
- package/README.md +7 -0
- package/package.json +11 -11
- package/src/auth0/cli.js +0 -0
- package/src/changeset/cli.js +0 -0
- package/src/merge/cli.js +0 -0
- package/src/micro/cli.js +0 -0
- package/src/next/cli.js +0 -0
- package/src/next/deploy.js +60 -3
- package/src/next/deploy.test.js +3 -1
package/README.md
CHANGED
|
@@ -48,8 +48,15 @@ dp-next-cli [command] [options]
|
|
|
48
48
|
- `-t, --to-env <toEnv>`: Target environment
|
|
49
49
|
- `-F, --from-site <fromSite>`: Source site
|
|
50
50
|
- `-T, --to-site <toSite>`: Target site
|
|
51
|
+
- `-j, --jira-ticket [jiraTicket]`: JIRA ticket (optional)
|
|
51
52
|
- `-c, --deploy-core <deployCore>`: Deploy Core (default: "false")
|
|
52
53
|
- `-C, --deploy-connect <deployConnect>`: Deploy Connect (default: "false")
|
|
54
|
+
- `update-site-version <env> <site>`: Update specific version components for a site
|
|
55
|
+
- `-u, --ui-version <uiVersion>`: UI image tag
|
|
56
|
+
- `-g, --graph-version <graphVersion>`: GraphQL-server image tag
|
|
57
|
+
- `-S, --standard-config <standardConfig>`: Standard config remote branch
|
|
58
|
+
- `-s, --site-config <siteConfig>`: Site config remote branch
|
|
59
|
+
- `-j, --jira-ticket [jiraTicket]`: JIRA ticket (required for prod)
|
|
53
60
|
- `deploy-template`: Deploy an application for a specific site
|
|
54
61
|
- `deploy-app <application>`: Deploy an application for a specific site
|
|
55
62
|
- `deploy-core <env> <site>`: Deploy Core
|
package/package.json
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docupace/pipeline",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.113-test2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --testPathIgnorePatterns='src/next/test\\.js'",
|
|
9
|
+
"test-deploy-core": "dp-next-cli deploy-core-pipeline dev template",
|
|
10
|
+
"test-deploy-from-site": "dp-next-cli deploy-from-site --from-env dev --to-env dev --from-site financialdev --to-site template --deploy-core true",
|
|
11
|
+
"test-run-pipline": "dp-next-cli run-pipeline -r docupace-next-e2e -b master -p run-tests-qa",
|
|
12
|
+
"test-validate": "dp-changset-cli validate",
|
|
13
|
+
"test-create": "dp-changset-cli create-changeset",
|
|
14
|
+
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx}\""
|
|
15
|
+
},
|
|
7
16
|
"exports": {
|
|
8
17
|
"./changelogCanny": "./src/changeset/changelog-module.cjs"
|
|
9
18
|
},
|
|
@@ -49,14 +58,5 @@
|
|
|
49
58
|
"globals": "^15.14.0",
|
|
50
59
|
"jest": "^30.1.3",
|
|
51
60
|
"prettier": "^3.4.2"
|
|
52
|
-
},
|
|
53
|
-
"scripts": {
|
|
54
|
-
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --testPathIgnorePatterns='src/next/test\\.js'",
|
|
55
|
-
"test-deploy-core": "dp-next-cli deploy-core-pipeline dev template",
|
|
56
|
-
"test-deploy-from-site": "dp-next-cli deploy-from-site --from-env dev --to-env dev --from-site financialdev --to-site template --deploy-core true",
|
|
57
|
-
"test-run-pipline": "dp-next-cli run-pipeline -r docupace-next-e2e -b master -p run-tests-qa",
|
|
58
|
-
"test-validate": "dp-changset-cli validate",
|
|
59
|
-
"test-create": "dp-changset-cli create-changeset",
|
|
60
|
-
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx}\""
|
|
61
61
|
}
|
|
62
|
-
}
|
|
62
|
+
}
|
package/src/auth0/cli.js
CHANGED
|
File without changes
|
package/src/changeset/cli.js
CHANGED
|
File without changes
|
package/src/merge/cli.js
CHANGED
|
File without changes
|
package/src/micro/cli.js
CHANGED
|
File without changes
|
package/src/next/cli.js
CHANGED
|
File without changes
|
package/src/next/deploy.js
CHANGED
|
@@ -136,7 +136,7 @@ export async function cloneEnvRepository(env) {
|
|
|
136
136
|
const repoUrl = getRepUrl(repoName);
|
|
137
137
|
console.log(`Cloning repository: ${repoName}`);
|
|
138
138
|
await cleanUpRepoPath(repoPath);
|
|
139
|
-
await $`git clone --depth
|
|
139
|
+
await $`git clone --no-single-branch --depth 10 ${repoUrl}`;
|
|
140
140
|
console.log(`Repository cloned to: ${repoPath}`);
|
|
141
141
|
return repoPath;
|
|
142
142
|
}
|
|
@@ -239,7 +239,7 @@ export function setTag(deployConfig, tag) {
|
|
|
239
239
|
* @param {object} deployConfig - The updated YAML data.
|
|
240
240
|
*/
|
|
241
241
|
|
|
242
|
-
export async function pushDeployConfig(repoPath, commitMessage) {
|
|
242
|
+
export async function pushDeployConfig(repoPath, commitMessage, env) {
|
|
243
243
|
console.log('๐ Checking for updates to commit...');
|
|
244
244
|
// Check if there are any changes to commit
|
|
245
245
|
const status = (
|
|
@@ -273,11 +273,63 @@ export async function pushDeployConfig(repoPath, commitMessage) {
|
|
|
273
273
|
await $`cd ${repoPath} && git push`;
|
|
274
274
|
console.log('Changes pushed to the remote repository.');
|
|
275
275
|
|
|
276
|
+
await syncTagToMigrationBranch(repoPath, commitMessage, env);
|
|
277
|
+
|
|
276
278
|
console.log('๐งน Cleaning up...');
|
|
277
279
|
await $`rm -rf ${repoPath}`;
|
|
278
280
|
console.log('Cleanup complete.');
|
|
279
281
|
}
|
|
280
282
|
|
|
283
|
+
async function syncTagToMigrationBranch(repoPath, commitMessage, env) {
|
|
284
|
+
const migrationBranch = `eks-migration-${env}`;
|
|
285
|
+
try {
|
|
286
|
+
const branchExists = (
|
|
287
|
+
await $`cd ${repoPath} && git branch -r --list origin/${migrationBranch}`
|
|
288
|
+
).stdout.trim();
|
|
289
|
+
if (!branchExists) return;
|
|
290
|
+
|
|
291
|
+
const changedFiles = (
|
|
292
|
+
await $`cd ${repoPath} && git diff --name-only HEAD~1 HEAD`
|
|
293
|
+
).stdout
|
|
294
|
+
.trim()
|
|
295
|
+
.split('\n')
|
|
296
|
+
.filter(Boolean);
|
|
297
|
+
|
|
298
|
+
await $`cd ${repoPath} && git checkout ${migrationBranch}`;
|
|
299
|
+
|
|
300
|
+
let updated = false;
|
|
301
|
+
for (const file of changedFiles) {
|
|
302
|
+
if (!file.endsWith('.values.yaml')) continue;
|
|
303
|
+
const filePath = path.join(repoPath, file);
|
|
304
|
+
if (!fs.existsSync(filePath)) continue;
|
|
305
|
+
|
|
306
|
+
const masterContent = (await $`cd ${repoPath} && git show master:${file}`)
|
|
307
|
+
.stdout;
|
|
308
|
+
const masterConfig = yaml.load(masterContent);
|
|
309
|
+
const masterTag = masterConfig?.image?.tag;
|
|
310
|
+
if (!masterTag) continue;
|
|
311
|
+
|
|
312
|
+
const migrationConfig = yaml.load(fs.readFileSync(filePath, 'utf8'));
|
|
313
|
+
if (!migrationConfig?.image?.tag) continue;
|
|
314
|
+
if (migrationConfig.image.tag === masterTag) continue;
|
|
315
|
+
|
|
316
|
+
console.log(`Syncing tag ${masterTag} to ${migrationBranch}:${file}`);
|
|
317
|
+
migrationConfig.image.tag = masterTag;
|
|
318
|
+
fs.writeFileSync(filePath, yaml.dump(migrationConfig, { lineWidth: -1 }));
|
|
319
|
+
updated = true;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
if (updated) {
|
|
323
|
+
await $`cd ${repoPath} && git add .`;
|
|
324
|
+
await $`cd ${repoPath} && git commit -m ${commitMessage}`;
|
|
325
|
+
await $`cd ${repoPath} && git push origin ${migrationBranch}`;
|
|
326
|
+
console.log(`Tag synced to ${migrationBranch} branch.`);
|
|
327
|
+
}
|
|
328
|
+
} catch (error) {
|
|
329
|
+
console.warn(`Failed to sync to ${migrationBranch}: ${error.message}`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
281
333
|
function writeDeployConfig(deployConfigFilePath, deployConfig) {
|
|
282
334
|
try {
|
|
283
335
|
fs.writeFileSync(deployConfigFilePath, yaml.dump(deployConfig), 'utf8');
|
|
@@ -293,9 +345,10 @@ export async function writeAndPushDeployConfig(
|
|
|
293
345
|
deployConfigFilePath,
|
|
294
346
|
deployConfig,
|
|
295
347
|
commitMessage,
|
|
348
|
+
env,
|
|
296
349
|
) {
|
|
297
350
|
writeDeployConfig(deployConfigFilePath, deployConfig);
|
|
298
|
-
await pushDeployConfig(repoPath, commitMessage);
|
|
351
|
+
await pushDeployConfig(repoPath, commitMessage, env);
|
|
299
352
|
}
|
|
300
353
|
|
|
301
354
|
/**
|
|
@@ -1013,6 +1066,7 @@ export async function updateSiteVersion(
|
|
|
1013
1066
|
await pushDeployConfig(
|
|
1014
1067
|
toRepoPath,
|
|
1015
1068
|
`Update site versions for ${env}/${site}`,
|
|
1069
|
+
env,
|
|
1016
1070
|
);
|
|
1017
1071
|
|
|
1018
1072
|
if (autoDeployUpdated && env !== 'dev') {
|
|
@@ -1020,6 +1074,7 @@ export async function updateSiteVersion(
|
|
|
1020
1074
|
await pushDeployConfig(
|
|
1021
1075
|
devRepoPath,
|
|
1022
1076
|
`Update auto-deploy version for ${env}/${site}`,
|
|
1077
|
+
'dev',
|
|
1023
1078
|
);
|
|
1024
1079
|
}
|
|
1025
1080
|
|
|
@@ -1289,6 +1344,7 @@ export async function deployFromSite(
|
|
|
1289
1344
|
await pushDeployConfig(
|
|
1290
1345
|
toRepoPath,
|
|
1291
1346
|
`Updated deployment configurations from ${fromEnv}/${fromSite} to ${toEnv}/${toSite}`,
|
|
1347
|
+
toEnv,
|
|
1292
1348
|
);
|
|
1293
1349
|
// auto-deploy.yaml lives in gitops-dev; push it separately when toEnv isn't dev
|
|
1294
1350
|
if (autoDeployUpdated && toEnv !== 'dev') {
|
|
@@ -1296,6 +1352,7 @@ export async function deployFromSite(
|
|
|
1296
1352
|
await pushDeployConfig(
|
|
1297
1353
|
devRepoPath,
|
|
1298
1354
|
`Update auto-deploy version for ${toEnv}/${toSite}`,
|
|
1355
|
+
'dev',
|
|
1299
1356
|
);
|
|
1300
1357
|
}
|
|
1301
1358
|
console.log('All configurations updated and pushed successfully.');
|
package/src/next/deploy.test.js
CHANGED
|
@@ -133,7 +133,9 @@ describe('cloneEnvRepository', () => {
|
|
|
133
133
|
const result = await cloneEnvRepository(env);
|
|
134
134
|
|
|
135
135
|
expect(getRepUrl).toHaveBeenCalledWith('gitops-dev');
|
|
136
|
-
expect($.mock.calls[0][0][0]).toContain(
|
|
136
|
+
expect($.mock.calls[0][0][0]).toContain(
|
|
137
|
+
'git clone --no-single-branch --depth 10',
|
|
138
|
+
);
|
|
137
139
|
expect(result).toContain('gitops-dev');
|
|
138
140
|
});
|
|
139
141
|
|