mirror of
https://github.com/gradle/actions.git
synced 2025-04-23 03:09:20 +08:00
Add a test for merging existing toolchains.xml
This commit is contained in:
parent
30a2ee13f2
commit
864fa80f2e
@ -9,7 +9,7 @@ import {CacheListener} from './cache-reporting'
|
|||||||
import {saveCache, restoreCache, cacheDebug, isCacheDebuggingEnabled, tryDelete} from './cache-utils'
|
import {saveCache, restoreCache, cacheDebug, isCacheDebuggingEnabled, tryDelete} from './cache-utils'
|
||||||
import {CacheConfig} from '../configuration'
|
import {CacheConfig} from '../configuration'
|
||||||
import {GradleHomeEntryExtractor, ConfigurationCacheEntryExtractor} from './gradle-home-extry-extractor'
|
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'
|
const RESTORED_CACHE_KEY_KEY = 'restored-cache-key'
|
||||||
|
|
||||||
@ -233,8 +233,7 @@ export class GradleUserHomeCache {
|
|||||||
} else {
|
} else {
|
||||||
// Merge into an existing toolchains.xml file
|
// Merge into an existing toolchains.xml file
|
||||||
const existingToolchainContent = fs.readFileSync(toolchainXmlTarget, 'utf8')
|
const existingToolchainContent = fs.readFileSync(toolchainXmlTarget, 'utf8')
|
||||||
const appendedContent = preInstalledToolchains.split('<toolchains>').pop()!
|
const mergedContent = mergeToolchainContent(existingToolchainContent, preInstalledToolchains)
|
||||||
const mergedContent = existingToolchainContent.replace('</toolchains>', appendedContent)
|
|
||||||
|
|
||||||
fs.writeFileSync(toolchainXmlTarget, mergedContent)
|
fs.writeFileSync(toolchainXmlTarget, mergedContent)
|
||||||
core.info(`Merged default JDK locations into ${toolchainXmlTarget}`)
|
core.info(`Merged default JDK locations into ${toolchainXmlTarget}`)
|
||||||
|
@ -42,3 +42,8 @@ export function getPredefinedToolchains(): string | null {
|
|||||||
toolchainsXml += `</toolchains>\n`
|
toolchainsXml += `</toolchains>\n`
|
||||||
return toolchainsXml
|
return toolchainsXml
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function mergeToolchainContent(existingToolchainContent: string, preInstalledToolchains: string): string {
|
||||||
|
const appendedContent = preInstalledToolchains.split('<toolchains>').pop()!
|
||||||
|
return existingToolchainContent.replace('</toolchains>', appendedContent)
|
||||||
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import {getPredefinedToolchains} from "../../src/caching/gradle-user-home-utils";
|
import {getPredefinedToolchains, mergeToolchainContent} from "../../src/caching/gradle-user-home-utils";
|
||||||
|
|
||||||
describe('predefined-toolchains', () => {
|
describe('predefined-toolchains', () => {
|
||||||
const OLD_ENV = process.env
|
const OLD_ENV = process.env
|
||||||
@ -62,4 +62,56 @@ describe('predefined-toolchains', () => {
|
|||||||
`)
|
`)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("merges with existing toolchains", async () => {
|
||||||
|
jest.resetModules()
|
||||||
|
process.env = {
|
||||||
|
"JAVA_HOME_11_X64": "/jdks/foo_11",
|
||||||
|
}
|
||||||
|
|
||||||
|
// language=XML
|
||||||
|
const existingToolchains =
|
||||||
|
`<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<toolchains>
|
||||||
|
<toolchain>
|
||||||
|
<type>jdk</type>
|
||||||
|
<provides>
|
||||||
|
<version>8</version>
|
||||||
|
</provides>
|
||||||
|
<configuration>
|
||||||
|
<jdkHome>\${env.JAVA_HOME_8_X64}</jdkHome>
|
||||||
|
</configuration>
|
||||||
|
</toolchain>
|
||||||
|
</toolchains>
|
||||||
|
`
|
||||||
|
|
||||||
|
const mergedContent = mergeToolchainContent(existingToolchains, getPredefinedToolchains()!)
|
||||||
|
expect(mergedContent).toBe(
|
||||||
|
// language=XML
|
||||||
|
`<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<toolchains>
|
||||||
|
<toolchain>
|
||||||
|
<type>jdk</type>
|
||||||
|
<provides>
|
||||||
|
<version>8</version>
|
||||||
|
</provides>
|
||||||
|
<configuration>
|
||||||
|
<jdkHome>\${env.JAVA_HOME_8_X64}</jdkHome>
|
||||||
|
</configuration>
|
||||||
|
</toolchain>
|
||||||
|
|
||||||
|
<!-- JDK Toolchains installed by default on GitHub-hosted runners -->
|
||||||
|
<toolchain>
|
||||||
|
<type>jdk</type>
|
||||||
|
<provides>
|
||||||
|
<version>11</version>
|
||||||
|
</provides>
|
||||||
|
<configuration>
|
||||||
|
<jdkHome>\${env.JAVA_HOME_11_X64}</jdkHome>
|
||||||
|
</configuration>
|
||||||
|
</toolchain>
|
||||||
|
</toolchains>
|
||||||
|
|
||||||
|
`)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user