@payfit/nx-core 5.21.4 → 5.21.5-ephemeral-featsync-agents-release-docs.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/dist/src/executors/release/executor.js +62 -32
- package/dist/src/executors/release/executor.js.map +1 -1
- package/dist/src/generators/sync/sync-agents.d.ts +4 -0
- package/dist/src/generators/sync/sync-agents.js +90 -0
- package/dist/src/generators/sync/sync-agents.js.map +1 -0
- package/generators.json +5 -0
- package/package.json +1 -1
|
@@ -8,6 +8,43 @@ const github_1 = require("../../utils/common/github");
|
|
|
8
8
|
const logger_1 = require("../../utils/common/logger");
|
|
9
9
|
const octokit_1 = require("../../utils/common/octokit");
|
|
10
10
|
const tsh_1 = require("../../utils/common/tsh");
|
|
11
|
+
const getTagForProject = (projectName, newVersion, releaseConfig) => {
|
|
12
|
+
const groupPattern = Object.values(releaseConfig?.groups || {}).find(group => group.projects?.includes(projectName))?.releaseTag?.pattern ||
|
|
13
|
+
Object.values(releaseConfig?.groups || {}).find(group => group.projects?.includes('*'))?.releaseTag?.pattern ||
|
|
14
|
+
releaseConfig?.groups?.[projectName]?.releaseTag?.pattern;
|
|
15
|
+
const pattern = groupPattern ||
|
|
16
|
+
releaseConfig?.releaseTag?.pattern ||
|
|
17
|
+
'{projectName}@{version}';
|
|
18
|
+
return pattern
|
|
19
|
+
.replace('{projectName}', projectName)
|
|
20
|
+
.replace('{version}', newVersion);
|
|
21
|
+
};
|
|
22
|
+
const cleanupProjectsRelease = async (projects, context) => {
|
|
23
|
+
const nxJson = JSON.parse(fs.readFileSync(path.join(context.root, 'nx.json'), 'utf-8'));
|
|
24
|
+
const releaseConfig = nxJson?.release;
|
|
25
|
+
const octokit = (0, octokit_1.OctokitAuth)();
|
|
26
|
+
let repositoryName;
|
|
27
|
+
try {
|
|
28
|
+
repositoryName = await (0, github_1.getGitRepositoryName)();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
logger_1.consola.error(`Error while retrieving repository name, skipping release removal: ${error}`);
|
|
32
|
+
}
|
|
33
|
+
for (const { projectName, newVersion } of projects) {
|
|
34
|
+
const tag = getTagForProject(projectName, newVersion, releaseConfig);
|
|
35
|
+
try {
|
|
36
|
+
if (repositoryName) {
|
|
37
|
+
await (0, github_1.removeRelease)(octokit, 'PayFit', repositoryName, tag);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
logger_1.consola.error(`Error while removing release for ${projectName}, skipping release removal: ${error}`);
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
await (0, github_1.removeTag)(tag);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
11
48
|
const runExecutor = async (options, context) => {
|
|
12
49
|
let startTime = Date.now();
|
|
13
50
|
const dryRun = process.env.NX_DRY_RUN === 'true' || options.dryRun || false;
|
|
@@ -58,15 +95,29 @@ const runExecutor = async (options, context) => {
|
|
|
58
95
|
startTime = Date.now();
|
|
59
96
|
// Step 2: Changelog Release
|
|
60
97
|
logger_1.consola.start('Generating & pushing changelogs');
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
98
|
+
try {
|
|
99
|
+
await (0, release_1.releaseChangelog)({
|
|
100
|
+
versionData: projectsVersionData,
|
|
101
|
+
projects: changedProjects,
|
|
102
|
+
version: workspaceVersion,
|
|
103
|
+
dryRun,
|
|
104
|
+
verbose: options.verbose,
|
|
105
|
+
groups: options.groups,
|
|
106
|
+
createRelease: isPreRelease ? false : 'github',
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
logger_1.consola.info(`Failed to generate changelogs: ${error}`);
|
|
111
|
+
logger_1.consola.start('Cleaning up created tags and releases');
|
|
112
|
+
if (!dryRun) {
|
|
113
|
+
const projectsToCleanup = changedProjects.flatMap(projectName => {
|
|
114
|
+
const newVersion = projectsVersionData[projectName]?.newVersion;
|
|
115
|
+
return newVersion ? [{ projectName, newVersion }] : [];
|
|
116
|
+
});
|
|
117
|
+
await cleanupProjectsRelease(projectsToCleanup, context);
|
|
118
|
+
}
|
|
119
|
+
return { success: false };
|
|
120
|
+
}
|
|
70
121
|
logger_1.consola.success('Generated & pushed changelogs successfully!');
|
|
71
122
|
if (options.skipPublish) {
|
|
72
123
|
logger_1.consola.warn('Skipping publishing step as skipPublish = true');
|
|
@@ -98,30 +149,9 @@ const runExecutor = async (options, context) => {
|
|
|
98
149
|
logger_1.consola.success(`Published ${projectName} in version ${newVersion} successfully!`);
|
|
99
150
|
}
|
|
100
151
|
else {
|
|
101
|
-
logger_1.consola.
|
|
152
|
+
logger_1.consola.error(`Failed to publish ${projectName} with exit code ${result.code}`);
|
|
102
153
|
if (newVersion && !dryRun) {
|
|
103
|
-
|
|
104
|
-
const nxJson = JSON.parse(fs.readFileSync(path.join(context.root, 'nx.json'), 'utf-8'));
|
|
105
|
-
const releaseConfig = nxJson?.release;
|
|
106
|
-
// Get the tag pattern - check group-specific config first, then fall back to global
|
|
107
|
-
const groupPattern = Object.values(releaseConfig?.groups || {}).find(group => group.projects?.includes(projectName))?.releaseTag?.pattern ||
|
|
108
|
-
Object.values(releaseConfig?.groups || {}).find(group => group.projects?.includes('*'))?.releaseTag?.pattern ||
|
|
109
|
-
releaseConfig?.groups?.[projectName]?.releaseTag?.pattern;
|
|
110
|
-
const pattern = groupPattern ||
|
|
111
|
-
releaseConfig?.releaseTag?.pattern ||
|
|
112
|
-
'{projectName}@{version}';
|
|
113
|
-
const tag = pattern
|
|
114
|
-
.replace('{projectName}', projectName)
|
|
115
|
-
.replace('{version}', newVersion);
|
|
116
|
-
const octokit = (0, octokit_1.OctokitAuth)();
|
|
117
|
-
const repositoryName = await (0, github_1.getGitRepositoryName)();
|
|
118
|
-
if (repositoryName) {
|
|
119
|
-
await (0, github_1.removeRelease)(octokit, 'PayFit', repositoryName, tag);
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
logger_1.consola.error(`Error while retrieving repository name for ${projectName}, skipping release removal`);
|
|
123
|
-
}
|
|
124
|
-
await (0, github_1.removeTag)(tag);
|
|
154
|
+
await cleanupProjectsRelease([{ projectName, newVersion: newVersion }], context);
|
|
125
155
|
}
|
|
126
156
|
success = false;
|
|
127
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncAgents = syncAgents;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const nx_1 = require("../../utils/common/nx");
|
|
6
|
+
const AGENTS_FILE_PATH = 'AGENTS.md';
|
|
7
|
+
const NX_CORE_START_MARKER = '<!-- nx-core start -->';
|
|
8
|
+
const NX_CORE_END_MARKER = '<!-- nx-core end -->';
|
|
9
|
+
const NX_CORE_RULES_REGEX = new RegExp(`${NX_CORE_START_MARKER}[\\s\\S]*?${NX_CORE_END_MARKER}`, 'm');
|
|
10
|
+
function getWrappedReleaseDocs(content) {
|
|
11
|
+
const trimmedContent = content.trim();
|
|
12
|
+
if (!trimmedContent) {
|
|
13
|
+
return `${NX_CORE_START_MARKER}\n${NX_CORE_END_MARKER}`;
|
|
14
|
+
}
|
|
15
|
+
return `${NX_CORE_START_MARKER}\n\n${trimmedContent}\n\n${NX_CORE_END_MARKER}`;
|
|
16
|
+
}
|
|
17
|
+
function contentOnly(content) {
|
|
18
|
+
return content
|
|
19
|
+
.replace(NX_CORE_START_MARKER, '')
|
|
20
|
+
.replace(NX_CORE_END_MARKER, '')
|
|
21
|
+
.replace(/\s/g, '');
|
|
22
|
+
}
|
|
23
|
+
function buildReleaseDocsContent(projects) {
|
|
24
|
+
if (projects.length === 0) {
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
const sortedProjects = [...projects].sort((a, b) => a.name.localeCompare(b.name));
|
|
28
|
+
const projectLines = sortedProjects.map(project => {
|
|
29
|
+
const sortedArtifactTypes = [...project.artifactTypes].sort((a, b) => a.localeCompare(b));
|
|
30
|
+
return `- \`${project.name}\` (\`${project.root}\`): ${sortedArtifactTypes.join(', ')}`;
|
|
31
|
+
});
|
|
32
|
+
return [
|
|
33
|
+
'## nx-core release-managed artifacts',
|
|
34
|
+
'',
|
|
35
|
+
'Projects with artifact metadata detected by `@payfit/nx-core`:',
|
|
36
|
+
'',
|
|
37
|
+
...projectLines,
|
|
38
|
+
].join('\n');
|
|
39
|
+
}
|
|
40
|
+
function syncReleaseDocsInAgents(tree, releaseDocsContent) {
|
|
41
|
+
const expectedRules = getWrappedReleaseDocs(releaseDocsContent);
|
|
42
|
+
if (!tree.exists(AGENTS_FILE_PATH)) {
|
|
43
|
+
tree.write(AGENTS_FILE_PATH, expectedRules);
|
|
44
|
+
return {
|
|
45
|
+
outOfSyncMessage: '/AGENTS.md file needs to be created',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const existingContent = tree.read(AGENTS_FILE_PATH, 'utf-8');
|
|
49
|
+
if (!existingContent) {
|
|
50
|
+
tree.write(AGENTS_FILE_PATH, expectedRules);
|
|
51
|
+
return {
|
|
52
|
+
outOfSyncMessage: '/AGENTS.md file needs to be updated',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const existingNxCoreBlock = existingContent.match(NX_CORE_RULES_REGEX);
|
|
56
|
+
if (existingNxCoreBlock) {
|
|
57
|
+
if (contentOnly(existingNxCoreBlock[0]) === contentOnly(expectedRules)) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const updatedContent = existingContent.replace(NX_CORE_RULES_REGEX, expectedRules);
|
|
61
|
+
tree.write(AGENTS_FILE_PATH, updatedContent);
|
|
62
|
+
return {
|
|
63
|
+
outOfSyncMessage: '/AGENTS.md file needs to be updated',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const updatedContent = `${existingContent}\n\n${expectedRules}`;
|
|
67
|
+
tree.write(AGENTS_FILE_PATH, updatedContent);
|
|
68
|
+
return {
|
|
69
|
+
outOfSyncMessage: '/AGENTS.md file needs to be updated',
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async function syncAgents(tree) {
|
|
73
|
+
const projectGraph = await (0, devkit_1.createProjectGraphAsync)();
|
|
74
|
+
const artifactProjects = [];
|
|
75
|
+
for (const [projectName, node] of Object.entries(projectGraph.nodes)) {
|
|
76
|
+
const projectConfiguration = node.data;
|
|
77
|
+
const artifactTypes = (0, nx_1.getProjectArtifactTypes)(projectConfiguration.root, projectConfiguration);
|
|
78
|
+
if (artifactTypes.length > 0) {
|
|
79
|
+
artifactProjects.push({
|
|
80
|
+
name: projectName,
|
|
81
|
+
root: projectConfiguration.root,
|
|
82
|
+
artifactTypes,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const releaseDocsContent = buildReleaseDocsContent(artifactProjects);
|
|
87
|
+
return syncReleaseDocsInAgents(tree, releaseDocsContent);
|
|
88
|
+
}
|
|
89
|
+
exports.default = syncAgents;
|
|
90
|
+
//# sourceMappingURL=sync-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-agents.js","sourceRoot":"","sources":["../../../../src/generators/sync/sync-agents.ts"],"names":[],"mappings":"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"}
|
package/generators.json
CHANGED
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"schema": "./dist/src/generators/sync/schema.json",
|
|
11
11
|
"description": "sync-list-lambda-functions generator"
|
|
12
12
|
},
|
|
13
|
+
"sync-agents": {
|
|
14
|
+
"factory": "./dist/src/generators/sync/sync-agents",
|
|
15
|
+
"schema": "./dist/src/generators/sync/schema.json",
|
|
16
|
+
"description": "sync-agents generator"
|
|
17
|
+
},
|
|
13
18
|
"local-lambda-setup": {
|
|
14
19
|
"factory": "./dist/src/generators/local-lambda-setup/local-lambda-setup",
|
|
15
20
|
"schema": "./dist/src/generators/local-lambda-setup/schema.json",
|