Add a test for merging existing toolchains.xml (#151)

This commit is contained in:
Philip Wedemann
2024-04-11 01:20:36 +02:00
committed by GitHub
parent 30a2ee13f2
commit 0f427bc07b
4 changed files with 61 additions and 5 deletions

View File

@@ -9,7 +9,7 @@ import {CacheListener} from './cache-reporting'
import {saveCache, restoreCache, cacheDebug, isCacheDebuggingEnabled, tryDelete} from './cache-utils'
import {CacheConfig} from '../configuration'
import {GradleHomeEntryExtractor, ConfigurationCacheEntryExtractor} from './gradle-home-extry-extractor'
import {getPredefinedToolchains, readResourceFileAsString} from './gradle-user-home-utils'
import {getPredefinedToolchains, mergeToolchainContent, readResourceFileAsString} from './gradle-user-home-utils'
const RESTORED_CACHE_KEY_KEY = 'restored-cache-key'
@@ -233,8 +233,7 @@ export class GradleUserHomeCache {
} else {
// Merge into an existing toolchains.xml file
const existingToolchainContent = fs.readFileSync(toolchainXmlTarget, 'utf8')
const appendedContent = preInstalledToolchains.split('<toolchains>').pop()!
const mergedContent = existingToolchainContent.replace('</toolchains>', appendedContent)
const mergedContent = mergeToolchainContent(existingToolchainContent, preInstalledToolchains)
fs.writeFileSync(toolchainXmlTarget, mergedContent)
core.info(`Merged default JDK locations into ${toolchainXmlTarget}`)

View File

@@ -42,3 +42,8 @@ export function getPredefinedToolchains(): string | null {
toolchainsXml += `</toolchains>\n`
return toolchainsXml
}
export function mergeToolchainContent(existingToolchainContent: string, preInstalledToolchains: string): string {
const appendedContent = preInstalledToolchains.split('<toolchains>').pop()!
return existingToolchainContent.replace('</toolchains>', appendedContent)
}