Skip to content

Commit 00df173

Browse files
author
Tom Lienard
authored
feat(changesets-renovate): ignore changes in workspace's root package.json (#1232)
1 parent 93fe800 commit 00df173

File tree

3 files changed

+54
-2
lines changed

3 files changed

+54
-2
lines changed

.changeset/happy-items-look.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@scaleway/changesets-renovate': minor
3+
---
4+
5+
Ignore changes in workspace's root package.json

packages/changesets-renovate/src/__tests__/generate-changeset.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,37 @@ describe('generate changeset file', () => {
118118
})
119119
expect(push).toHaveBeenCalledWith(['--force'])
120120
})
121+
122+
it('should ignore workspace package.json', async () => {
123+
const file = 'package.json'
124+
125+
// @ts-expect-error we mock at the top
126+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
127+
simpleGit.mockReturnValue({
128+
branch: () => ({
129+
current: 'renovate/test',
130+
}),
131+
diffSummary: () => ({
132+
files: [
133+
{
134+
file,
135+
},
136+
],
137+
}),
138+
show: () => `
139+
+ "package": "version"
140+
+ "package2": "version2"
141+
`,
142+
})
143+
144+
fs.readFile = jest
145+
.fn()
146+
.mockResolvedValue(`{"name":"packageName","workspaces":[]}`)
147+
fs.writeFile = jest.fn()
148+
149+
await run()
150+
151+
expect(fs.readFile).toHaveBeenCalledWith(file, 'utf8')
152+
expect(console.log).toHaveBeenCalledWith('No packages modified, skipping')
153+
})
121154
})

packages/changesets-renovate/src/index.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,22 @@ import fs from 'node:fs/promises'
44
import { simpleGit } from 'simple-git'
55

66
async function getPackagesNames(files: string[]): Promise<string[]> {
7+
const packages: string[] = []
8+
79
const promises = files.map(async file => {
810
const data = JSON.parse(await fs.readFile(file, 'utf8')) as {
911
name: string
12+
workspaces?: string[]
1013
}
1114

12-
return data.name
15+
if (!data.workspaces) {
16+
packages.push(data.name)
17+
}
1318
})
1419

15-
return Promise.all(promises)
20+
await Promise.all(promises)
21+
22+
return packages
1623
}
1724

1825
async function createChangeset(
@@ -84,6 +91,13 @@ export async function run() {
8491
}
8592

8693
const packageNames = await getPackagesNames(files)
94+
95+
if (packageNames.length === 0) {
96+
console.log('No packages modified, skipping')
97+
98+
return
99+
}
100+
87101
const shortHash = await simpleGit().revparse(['--short', 'HEAD'])
88102
const fileName = `.changeset/renovate-${shortHash.trim()}.md`
89103
const packageBumps = await getBumps(files)

0 commit comments

Comments
 (0)