mirror of https://github.com/actions/setup-go.git
feat: auto-detect go.mod when no version inputs specified
- Add unit tests for auto-detection behavior - Implement go.mod auto-detection in resolveVersionInput() - Explicit inputs still take precedence over auto-detection Related issue: #523
This commit is contained in:
parent
c0137caad7
commit
612cee1af9
|
@ -1090,4 +1090,29 @@ use .
|
||||||
expect(vars).toStrictEqual({GOTOOLCHAIN: 'local'});
|
expect(vars).toStrictEqual({GOTOOLCHAIN: 'local'});
|
||||||
expect(process.env).toHaveProperty('GOTOOLCHAIN', 'local');
|
expect(process.env).toHaveProperty('GOTOOLCHAIN', 'local');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('auto-detect go.mod', () => {
|
||||||
|
it('uses go.mod from workspace root when no inputs provided', async () => {
|
||||||
|
existsSpy.mockImplementation((filePath: string) => {
|
||||||
|
return filePath === 'go.mod';
|
||||||
|
});
|
||||||
|
readFileSpy.mockImplementation(() =>
|
||||||
|
Buffer.from('module test\n\ngo 1.20')
|
||||||
|
);
|
||||||
|
|
||||||
|
await main.run();
|
||||||
|
|
||||||
|
expect(logSpy).toHaveBeenCalledWith('Setup go version spec 1.20');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('uses pre-installed Go when no inputs and no go.mod exists', async () => {
|
||||||
|
existsSpy.mockImplementation(() => false);
|
||||||
|
|
||||||
|
await main.run();
|
||||||
|
|
||||||
|
expect(logSpy).toHaveBeenCalledWith(
|
||||||
|
'[warning]go-version input was not specified. The action will try to use pre-installed version.'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -94902,6 +94902,9 @@ function resolveVersionInput() {
|
||||||
}
|
}
|
||||||
version = installer.parseGoVersionFile(versionFilePath);
|
version = installer.parseGoVersionFile(versionFilePath);
|
||||||
}
|
}
|
||||||
|
if (!version && fs_1.default.existsSync('go.mod')) {
|
||||||
|
version = installer.parseGoVersionFile('go.mod');
|
||||||
|
}
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
function setGoToolchain() {
|
function setGoToolchain() {
|
||||||
|
|
|
@ -160,6 +160,10 @@ function resolveVersionInput(): string {
|
||||||
version = installer.parseGoVersionFile(versionFilePath);
|
version = installer.parseGoVersionFile(versionFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!version && fs.existsSync('go.mod')) {
|
||||||
|
version = installer.parseGoVersionFile('go.mod');
|
||||||
|
}
|
||||||
|
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue