diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index b55699ecf49e9c66e38af524aee1ab46b4b0b0cf..71a441107d0861851a426a9249322d5aeced7d33 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -1283,6 +1283,39 @@ describe('modules/manager/gomod/artifacts', () => { ]); }); + it('returns go.mod if only go.mod changes', async () => { + fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); + fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename + const execSnapshots = mockExecAll(); + git.getRepoStatus.mockResolvedValueOnce( + partial<StatusResult>({ + modified: ['go.mod'], + }) + ); + fs.readLocalFile.mockResolvedValueOnce('New go.mod'); + expect( + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [{ depName: 'github.com/google/go-github/v24' }], + newPackageFileContent: gomod1, + config: { + ...config, + updateType: 'major', + newMajor: 28, + postUpdateOptions: [], + }, + }) + ).toEqual([ + { file: { type: 'addition', path: 'go.mod', contents: 'New go.mod' } }, + ]); + expect(execSnapshots).toMatchObject([ + { + cmd: 'go get -d -t ./...', + options: { cwd: '/tmp/github/some/repo' }, + }, + ]); + }); + it('skips updating import paths with gomodUpdateImportPaths on v0 to v1', async () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename diff --git a/lib/modules/manager/gomod/artifacts.ts b/lib/modules/manager/gomod/artifacts.ts index 102d85d03c17043f0338eaecf100b33711e84b23..512178edc60397b143f2b7648e19bf1714c6245a 100644 --- a/lib/modules/manager/gomod/artifacts.ts +++ b/lib/modules/manager/gomod/artifacts.ts @@ -337,20 +337,24 @@ export async function updateArtifacts({ await exec(execCommands, execOptions); const status = await getRepoStatus(); - if (!status.modified.includes(sumFileName)) { + if ( + !status.modified.includes(sumFileName) && + !status.modified.includes(goModFileName) + ) { return null; } - logger.debug('Returning updated go.sum'); - const res: UpdateArtifactsResult[] = [ - { + const res: UpdateArtifactsResult[] = []; + if (status.modified.includes(sumFileName)) { + logger.debug('Returning updated go.sum'); + res.push({ file: { type: 'addition', path: sumFileName, contents: await readLocalFile(sumFileName), }, - }, - ]; + }); + } // Include all the .go file import changes if (isImportPathUpdateRequired) {