mirror of
https://github.com/actions/setup-java.git
synced 2026-06-23 08:10:30 +03:00
Add set-default option
This option allows to install an additional JDK without making it the default one. I have wanted this for quite a long time as I'm running custom GitHub Actions with Java, which might require a specific JDK and I don't want to pollute the JDK that is used by the overall workflow calling the action. And I'm apparently not alone as there was a preexisting issue. Fixes #560
This commit is contained in:
@@ -545,6 +545,107 @@ describe('setupJava', () => {
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalled();
|
||||
expect(spyCoreSetOutput).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not set JAVA_HOME and PATH when setDefault is false', async () => {
|
||||
mockJavaBase = new EmptyJavaBase({
|
||||
version: '11',
|
||||
architecture: 'x86',
|
||||
packageType: 'jdk',
|
||||
checkLatest: false,
|
||||
setDefault: false
|
||||
});
|
||||
await expect(mockJavaBase.setupJava()).resolves.toEqual({
|
||||
version: installedJavaVersion,
|
||||
path: javaPath
|
||||
});
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalledWith(
|
||||
'JAVA_HOME',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreAddPath).not.toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'JAVA_HOME_11_X86',
|
||||
javaPath
|
||||
);
|
||||
expect(spyCoreSetOutput).toHaveBeenCalledWith('version', installedJavaVersion);
|
||||
expect(spyCoreSetOutput).toHaveBeenCalledWith('path', javaPath);
|
||||
expect(spyCoreSetOutput).toHaveBeenCalledWith('distribution', 'Empty');
|
||||
expect(spyCoreInfo).toHaveBeenCalledWith(
|
||||
`Installing Java ${installedJavaVersion} (not setting as default)`
|
||||
);
|
||||
});
|
||||
|
||||
it('should set JAVA_HOME and PATH when setDefault is true', async () => {
|
||||
mockJavaBase = new EmptyJavaBase({
|
||||
version: '11',
|
||||
architecture: 'x86',
|
||||
packageType: 'jdk',
|
||||
checkLatest: false,
|
||||
setDefault: true
|
||||
});
|
||||
await expect(mockJavaBase.setupJava()).resolves.toEqual({
|
||||
version: installedJavaVersion,
|
||||
path: javaPath
|
||||
});
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith('JAVA_HOME', javaPath);
|
||||
expect(spyCoreAddPath).toHaveBeenCalledWith(path.join(javaPath, 'bin'));
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'JAVA_HOME_11_X86',
|
||||
javaPath
|
||||
);
|
||||
expect(spyCoreInfo).toHaveBeenCalledWith(
|
||||
`Setting Java ${installedJavaVersion} as the default`
|
||||
);
|
||||
});
|
||||
|
||||
it('should default to setting as default when setDefault is not specified', async () => {
|
||||
mockJavaBase = new EmptyJavaBase({
|
||||
version: '11',
|
||||
architecture: 'x86',
|
||||
packageType: 'jdk',
|
||||
checkLatest: false
|
||||
});
|
||||
await expect(mockJavaBase.setupJava()).resolves.toEqual({
|
||||
version: installedJavaVersion,
|
||||
path: javaPath
|
||||
});
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith('JAVA_HOME', javaPath);
|
||||
expect(spyCoreAddPath).toHaveBeenCalledWith(path.join(javaPath, 'bin'));
|
||||
expect(spyCoreInfo).toHaveBeenCalledWith(
|
||||
`Setting Java ${installedJavaVersion} as the default`
|
||||
);
|
||||
});
|
||||
|
||||
it('should download and not set default when setDefault is false', async () => {
|
||||
mockJavaBase = new EmptyJavaBase({
|
||||
version: '11',
|
||||
architecture: 'x64',
|
||||
packageType: 'jdk',
|
||||
checkLatest: false,
|
||||
setDefault: false
|
||||
});
|
||||
await expect(mockJavaBase.setupJava()).resolves.toEqual({
|
||||
version: '11.0.9',
|
||||
path: path.join('toolcache', 'Java_Empty_jdk', '11.0.9', 'x64')
|
||||
});
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalledWith(
|
||||
'JAVA_HOME',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreAddPath).not.toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'JAVA_HOME_11_X64',
|
||||
path.join('toolcache', 'Java_Empty_jdk', '11.0.9', 'x64')
|
||||
);
|
||||
expect(spyCoreSetOutput).toHaveBeenCalledWith('version', '11.0.9');
|
||||
expect(spyCoreSetOutput).toHaveBeenCalledWith(
|
||||
'path',
|
||||
path.join('toolcache', 'Java_Empty_jdk', '11.0.9', 'x64')
|
||||
);
|
||||
expect(spyCoreInfo).toHaveBeenCalledWith(
|
||||
'Installing Java 11.0.9 (not setting as default)'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('normalizeVersion', () => {
|
||||
|
||||
Reference in New Issue
Block a user