mirror of
https://gitea.com/actions/setup-java.git
synced 2026-08-05 02:31:18 +00:00
Fix JDK cache CI validation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -168,6 +168,8 @@ steps:
|
|||||||
| `mvn-toolchain-vendor` | Maven Toolchain vendor value. | `${distribution}` |
|
| `mvn-toolchain-vendor` | Maven Toolchain vendor value. | `${distribution}` |
|
||||||
| `show-download-progress` | Keep Maven artifact download and transfer progress in logs. When `false`, the action adds `-ntp` to `MAVEN_ARGS`. | `false` |
|
| `show-download-progress` | Keep Maven artifact download and transfer progress in logs. When `false`, the action adds `-ntp` to `MAVEN_ARGS`. | `false` |
|
||||||
|
|
||||||
|
- `java-package`: Supported package types are `jdk`, `jre`, `jdk+fx`, `jre+fx`, `jdk+crac`, `jre+crac`, `jdk+jmods`, `jdk+jcef`, `jre+jcef`, `jdk+ft`, and `jre+ft`. Availability varies by distribution.
|
||||||
|
|
||||||
Deprecated aliases `jdkFile`, `server-username`, `server-password`, and `gpg-passphrase` remain accepted for compatibility, but should be replaced with the current input names.
|
Deprecated aliases `jdkFile`, `server-username`, `server-password`, and `gpg-passphrase` remain accepted for compatibility, but should be replaced with the current input names.
|
||||||
|
|
||||||
## Outputs
|
## Outputs
|
||||||
|
|||||||
@@ -493,6 +493,11 @@ describe('setupJava', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('restores the exact resolved JDK before downloading', async () => {
|
it('restores the exact resolved JDK before downloading', async () => {
|
||||||
|
const toolCachePath = path.join('toolcache');
|
||||||
|
jest.replaceProperty(process, 'env', {
|
||||||
|
...process.env,
|
||||||
|
RUNNER_TOOL_CACHE: toolCachePath
|
||||||
|
});
|
||||||
mockJavaBase = new EmptyJavaBase({
|
mockJavaBase = new EmptyJavaBase({
|
||||||
version: '11',
|
version: '11',
|
||||||
architecture: 'x86',
|
architecture: 'x86',
|
||||||
@@ -517,7 +522,7 @@ describe('setupJava', () => {
|
|||||||
architecture: 'x86',
|
architecture: 'x86',
|
||||||
version: actualJavaVersion,
|
version: actualJavaVersion,
|
||||||
source: `some/random_url/java/${actualJavaVersion}`,
|
source: `some/random_url/java/${actualJavaVersion}`,
|
||||||
path: path.join('Java_Empty_jdk', actualJavaVersion)
|
path: path.join(toolCachePath, 'Java_Empty_jdk', actualJavaVersion)
|
||||||
});
|
});
|
||||||
expect(downloadTool).not.toHaveBeenCalled();
|
expect(downloadTool).not.toHaveBeenCalled();
|
||||||
expect(spyCoreInfo).not.toHaveBeenCalledWith('Trying to download...');
|
expect(spyCoreInfo).not.toHaveBeenCalledWith('Trying to download...');
|
||||||
|
|||||||
Vendored
+5
-3
@@ -113,18 +113,20 @@ async function saveJdkCaches() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function buildJdkCacheKey(jdk) {
|
function buildJdkCacheKey(jdk) {
|
||||||
|
const runnerOs = process.env['RUNNER_OS'] ?? process.platform;
|
||||||
|
const normalizedArchitecture = jdk.architecture.toLowerCase();
|
||||||
const identity = JSON.stringify({
|
const identity = JSON.stringify({
|
||||||
keyVersion: JDK_CACHE_KEY_VERSION,
|
keyVersion: JDK_CACHE_KEY_VERSION,
|
||||||
runnerOs: process.env['RUNNER_OS'] ?? process.platform,
|
runnerOs,
|
||||||
platform: process.platform,
|
platform: process.platform,
|
||||||
distribution: jdk.distribution.toLowerCase(),
|
distribution: jdk.distribution.toLowerCase(),
|
||||||
packageType: jdk.packageType.toLowerCase(),
|
packageType: jdk.packageType.toLowerCase(),
|
||||||
architecture: jdk.architecture.toLowerCase(),
|
architecture: normalizedArchitecture,
|
||||||
version: jdk.version,
|
version: jdk.version,
|
||||||
source: jdk.source
|
source: jdk.source
|
||||||
});
|
});
|
||||||
const digest = createHash('sha256').update(identity).digest('hex');
|
const digest = createHash('sha256').update(identity).digest('hex');
|
||||||
return `setup-java-jdk-v${JDK_CACHE_KEY_VERSION}-${process.env['RUNNER_OS'] ?? process.platform}-${jdk.architecture}-${digest}`;
|
return `setup-java-jdk-v${JDK_CACHE_KEY_VERSION}-${runnerOs}-${normalizedArchitecture}-${digest}`;
|
||||||
}
|
}
|
||||||
function parseJdkCacheState(state) {
|
function parseJdkCacheState(state) {
|
||||||
const value = JSON.parse(state);
|
const value = JSON.parse(state);
|
||||||
|
|||||||
Vendored
+10
-2
@@ -460,10 +460,18 @@ class JavaBase {
|
|||||||
return version.replace('+', '-');
|
return version.replace('+', '-');
|
||||||
}
|
}
|
||||||
getJdkCachePath(version) {
|
getJdkCachePath(version) {
|
||||||
return external_path_default().join(process.env['RUNNER_TOOL_CACHE'] ?? '', this.toolcacheFolderName, this.getToolcacheVersionName(version));
|
const toolCache = process.env['RUNNER_TOOL_CACHE'];
|
||||||
|
if (!toolCache) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return external_path_default().join(toolCache, this.toolcacheFolderName, this.getToolcacheVersionName(version));
|
||||||
}
|
}
|
||||||
getRestoredJdkPath(version) {
|
getRestoredJdkPath(version) {
|
||||||
const architecturePath = external_path_default().join(this.getJdkCachePath(version), this.architecture);
|
const basePath = this.getJdkCachePath(version);
|
||||||
|
if (!basePath) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const architecturePath = external_path_default().join(basePath, this.architecture);
|
||||||
return external_fs_.existsSync(architecturePath) &&
|
return external_fs_.existsSync(architecturePath) &&
|
||||||
external_fs_.existsSync(`${architecturePath}.complete`)
|
external_fs_.existsSync(`${architecturePath}.complete`)
|
||||||
? architecturePath
|
? architecturePath
|
||||||
|
|||||||
Vendored
+5
-3
@@ -117,18 +117,20 @@ async function saveJdkCaches() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
function buildJdkCacheKey(jdk) {
|
function buildJdkCacheKey(jdk) {
|
||||||
|
const runnerOs = process.env['RUNNER_OS'] ?? process.platform;
|
||||||
|
const normalizedArchitecture = jdk.architecture.toLowerCase();
|
||||||
const identity = JSON.stringify({
|
const identity = JSON.stringify({
|
||||||
keyVersion: JDK_CACHE_KEY_VERSION,
|
keyVersion: JDK_CACHE_KEY_VERSION,
|
||||||
runnerOs: process.env['RUNNER_OS'] ?? process.platform,
|
runnerOs,
|
||||||
platform: process.platform,
|
platform: process.platform,
|
||||||
distribution: jdk.distribution.toLowerCase(),
|
distribution: jdk.distribution.toLowerCase(),
|
||||||
packageType: jdk.packageType.toLowerCase(),
|
packageType: jdk.packageType.toLowerCase(),
|
||||||
architecture: jdk.architecture.toLowerCase(),
|
architecture: normalizedArchitecture,
|
||||||
version: jdk.version,
|
version: jdk.version,
|
||||||
source: jdk.source
|
source: jdk.source
|
||||||
});
|
});
|
||||||
const digest = (0,crypto__WEBPACK_IMPORTED_MODULE_0__.createHash)('sha256').update(identity).digest('hex');
|
const digest = (0,crypto__WEBPACK_IMPORTED_MODULE_0__.createHash)('sha256').update(identity).digest('hex');
|
||||||
return `setup-java-jdk-v${JDK_CACHE_KEY_VERSION}-${process.env['RUNNER_OS'] ?? process.platform}-${jdk.architecture}-${digest}`;
|
return `setup-java-jdk-v${JDK_CACHE_KEY_VERSION}-${runnerOs}-${normalizedArchitecture}-${digest}`;
|
||||||
}
|
}
|
||||||
function parseJdkCacheState(state) {
|
function parseJdkCacheState(state) {
|
||||||
const value = JSON.parse(state);
|
const value = JSON.parse(state);
|
||||||
|
|||||||
Reference in New Issue
Block a user