diff --git a/packages/nx/src/command-line/release/config/config.spec.ts b/packages/nx/src/command-line/release/config/config.spec.ts index cb1378f901..d836a457ff 100644 --- a/packages/nx/src/command-line/release/config/config.spec.ts +++ b/packages/nx/src/command-line/release/config/config.spec.ts @@ -251,6 +251,93 @@ describe('createNxReleaseConfig()', () => { } `); }); + + it('should filter out app and e2e projects', async () => { + projectGraph.nodes['app-1'] = { + name: 'app-1', + type: 'app', + data: { + root: 'apps/app-1', + targets: {}, + } as any, + }; + + projectGraph.nodes['e2e-1'] = { + name: 'e2e-1', + type: 'e2e', + data: { + root: 'apps/e2e-1', + targets: {}, + } as any, + }; + + expect(await createNxReleaseConfig(projectGraph, undefined)) + .toMatchInlineSnapshot(` + { + "error": null, + "nxReleaseConfig": { + "changelog": { + "git": { + "commit": false, + "commitArgs": "", + "commitMessage": "", + "tag": false, + "tagArgs": "", + "tagMessage": "", + }, + "projectChangelogs": false, + "workspaceChangelog": { + "createRelease": false, + "entryWhenNoChanges": "This was a version bump only, there were no code changes.", + "file": "{workspaceRoot}/CHANGELOG.md", + "renderOptions": { + "includeAuthors": true, + }, + "renderer": "nx/changelog-renderer", + }, + }, + "git": { + "commit": false, + "commitArgs": "", + "commitMessage": "", + "tag": false, + "tagArgs": "", + "tagMessage": "", + }, + "groups": { + "__default__": { + "changelog": false, + "projects": [ + "lib-a", + "lib-b", + "nx", + ], + "projectsRelationship": "fixed", + "releaseTagPattern": "v{version}", + "version": { + "generator": "@nx/js:release-version", + "generatorOptions": {}, + }, + }, + }, + "projectsRelationship": "fixed", + "releaseTagPattern": "v{version}", + "version": { + "generator": "@nx/js:release-version", + "generatorOptions": {}, + "git": { + "commit": false, + "commitArgs": "", + "commitMessage": "", + "tag": false, + "tagArgs": "", + "tagMessage": "", + }, + }, + }, + } + `); + }); }); describe('user specified groups', () => { diff --git a/packages/nx/src/command-line/release/config/config.ts b/packages/nx/src/command-line/release/config/config.ts index 8098e4c856..43c5cce164 100644 --- a/packages/nx/src/command-line/release/config/config.ts +++ b/packages/nx/src/command-line/release/config/config.ts @@ -179,7 +179,12 @@ export async function createNxReleaseConfig( const rootVersionWithoutGit = { ...rootVersionConfig }; delete rootVersionWithoutGit.git; - const allProjects = findMatchingProjects(['*'], projectGraph.nodes); + const allProjects = findMatchingProjects(['*'], projectGraph.nodes).filter( + // only include libs by default when the user has no groups config, + // because the default implementation assumes npm js packages + // and these will usually be libs + (project) => projectGraph.nodes[project].type === 'lib' + ); const groups: NxReleaseConfig['groups'] = userConfig.groups && Object.keys(userConfig.groups).length ? ensureProjectsConfigIsArray(userConfig.groups)