@payfit/nx-core 5.21.4 → 5.21.5-ephemeral-featsync-agents-release-docs.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/dist/src/executors/release/executor.js +62 -32
- package/dist/src/executors/release/executor.js.map +1 -1
- package/dist/src/generators/sync/files/nx-core-agents.md.template +7 -0
- package/dist/src/generators/sync/sync-agents.d.ts +4 -0
- package/dist/src/generators/sync/sync-agents.js +83 -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":";;AAAA,yBAAwB;AACxB,6BAA4B;AAG5B,wCAA6E;AAE7E,0DAGoC;AACpC,sDAOkC;AAClC,sDAAmD;AACnD,wDAAwD;AACxD,gDAAmE;AAGnE,MAAM,WAAW,GAGqB,KAAK,EACzC,OAA+B,EAC/B,OAAwB,EACxB,EAAE;IACF,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;IAE3E,IAAI,IAAA,2BAAgB,GAAE,EAAE,CAAC;QACvB,gBAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACzD,MAAM,IAAA,8BAAmB,GAAE,CAAA;QAC3B,MAAM,IAAA,gCAA0B,EAC9B,UAAU,EACV,oBAAoB,EACpB,eAAe,CAChB,CAAA;QACD,gBAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,IAAA,8BAAqB,GAAE,EAAE,CAAC;QACnC,gBAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC/D,MAAM,IAAA,gCAA0B,EAC9B,QAAQ,EACR,gBAAgB,EAChB,eAAe,CAChB,CAAA;QACD,gBAAO,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,qCAA4B,GAAE,CAAA;IAEvD,MAAM,YAAY,GAChB,OAAO,EAAE,UAAU,IAAI,IAAI;QACzB,CAAC,CAAC,OAAO,CAAC,UAAU;QACpB,CAAC,CAAC,UAAU,IAAI,MAAM,IAAI,UAAU,IAAI,QAAQ,CAAA;IAEpD,IAAI,YAAY;QAAE,gBAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAE9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAA,oCAA2B,GAAE,CAAA;IACrC,CAAC;IAED,0BAA0B;IAC1B,gBAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACzC,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,MAAM,IAAA,wBAAc,EAAC;QACrE,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,YAAY;YACjB,CAAC,CAAC,aAAa,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YAC7C,CAAC,CAAC,SAAS;KACd,CAAC,CAAA;IACF,gBAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;IAExD,iEAAiE;IACjE,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;SACxD,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;IAEtC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,gBAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACrC,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3D,gBAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAA;IACrD,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAEtB,4BAA4B;IAC5B,gBAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;IAChD,MAAM,IAAA,0BAAgB,EAAC;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## nx-core
|
|
2
|
+
|
|
3
|
+
Release and publishing are handled by the `@payfit/nx-core` plugin.
|
|
4
|
+
|
|
5
|
+
CI should run Nx commands only (`nx run`, `nx run-many`, `nx affected`) rather than invoking underlying tooling directly.
|
|
6
|
+
|
|
7
|
+
Be careful when defining Nx targets: optimize `inputs`/`outputs` for Nx Cloud caching and validate with `npx nx-cloud conformance`.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncAgents = syncAgents;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const nx_1 = require("../../utils/common/nx");
|
|
8
|
+
const AGENTS_FILE_PATH = 'AGENTS.md';
|
|
9
|
+
const NX_CORE_START_MARKER = '<!-- nx-core start -->';
|
|
10
|
+
const NX_CORE_MARKER_DESCRIPTION = '<!-- Leave the start & end comments to automatically receive updates. -->';
|
|
11
|
+
const NX_CORE_END_MARKER = '<!-- nx-core end -->';
|
|
12
|
+
const NX_CORE_RULES_REGEX = new RegExp(`${NX_CORE_START_MARKER}[\\s\\S]*?${NX_CORE_END_MARKER}`, 'm');
|
|
13
|
+
function getReleaseManagedArtifactsTemplate() {
|
|
14
|
+
return (0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, 'files', 'nx-core-agents.md.template'), 'utf-8');
|
|
15
|
+
}
|
|
16
|
+
function getWrappedReleaseDocs(content) {
|
|
17
|
+
const trimmedContent = content.trim();
|
|
18
|
+
if (!trimmedContent) {
|
|
19
|
+
return `${NX_CORE_START_MARKER}\n${NX_CORE_MARKER_DESCRIPTION}\n${NX_CORE_END_MARKER}`;
|
|
20
|
+
}
|
|
21
|
+
return `${NX_CORE_START_MARKER}\n${NX_CORE_MARKER_DESCRIPTION}\n\n${trimmedContent}\n\n${NX_CORE_END_MARKER}`;
|
|
22
|
+
}
|
|
23
|
+
function contentOnly(content) {
|
|
24
|
+
return content
|
|
25
|
+
.replace(NX_CORE_START_MARKER, '')
|
|
26
|
+
.replace(NX_CORE_MARKER_DESCRIPTION, '')
|
|
27
|
+
.replace(NX_CORE_END_MARKER, '')
|
|
28
|
+
.replace(/\s/g, '');
|
|
29
|
+
}
|
|
30
|
+
function buildReleaseDocsContent(hasArtifactProjects) {
|
|
31
|
+
if (!hasArtifactProjects) {
|
|
32
|
+
return '';
|
|
33
|
+
}
|
|
34
|
+
return getReleaseManagedArtifactsTemplate();
|
|
35
|
+
}
|
|
36
|
+
function syncReleaseDocsInAgents(tree, releaseDocsContent) {
|
|
37
|
+
const expectedRules = getWrappedReleaseDocs(releaseDocsContent);
|
|
38
|
+
if (!tree.exists(AGENTS_FILE_PATH)) {
|
|
39
|
+
tree.write(AGENTS_FILE_PATH, expectedRules);
|
|
40
|
+
return {
|
|
41
|
+
outOfSyncMessage: '/AGENTS.md file needs to be created',
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const existingContent = tree.read(AGENTS_FILE_PATH, 'utf-8');
|
|
45
|
+
if (!existingContent) {
|
|
46
|
+
tree.write(AGENTS_FILE_PATH, expectedRules);
|
|
47
|
+
return {
|
|
48
|
+
outOfSyncMessage: '/AGENTS.md file needs to be updated',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const existingNxCoreBlock = existingContent.match(NX_CORE_RULES_REGEX);
|
|
52
|
+
if (existingNxCoreBlock) {
|
|
53
|
+
if (contentOnly(existingNxCoreBlock[0]) === contentOnly(expectedRules)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const updatedContent = existingContent.replace(NX_CORE_RULES_REGEX, expectedRules);
|
|
57
|
+
tree.write(AGENTS_FILE_PATH, updatedContent);
|
|
58
|
+
return {
|
|
59
|
+
outOfSyncMessage: '/AGENTS.md file needs to be updated',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const updatedContent = `${existingContent}\n\n${expectedRules}`;
|
|
63
|
+
tree.write(AGENTS_FILE_PATH, updatedContent);
|
|
64
|
+
return {
|
|
65
|
+
outOfSyncMessage: '/AGENTS.md file needs to be updated',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async function syncAgents(tree) {
|
|
69
|
+
const projectGraph = await (0, devkit_1.createProjectGraphAsync)();
|
|
70
|
+
let hasArtifactProjects = false;
|
|
71
|
+
for (const node of Object.values(projectGraph.nodes)) {
|
|
72
|
+
const projectConfiguration = node.data;
|
|
73
|
+
const artifactTypes = (0, nx_1.getProjectArtifactTypes)(projectConfiguration.root, projectConfiguration);
|
|
74
|
+
if (artifactTypes.length > 0) {
|
|
75
|
+
hasArtifactProjects = true;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const releaseDocsContent = buildReleaseDocsContent(hasArtifactProjects);
|
|
80
|
+
return syncReleaseDocsInAgents(tree, releaseDocsContent);
|
|
81
|
+
}
|
|
82
|
+
exports.default = syncAgents;
|
|
83
|
+
//# 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",
|