Skip to content

Commit

Permalink
Merge into existing toolchains.xml
Browse files Browse the repository at this point in the history
  • Loading branch information
bigdaz committed Jan 4, 2024
1 parent 76f88a5 commit 813809e
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
10 changes: 9 additions & 1 deletion .github/workflows/integ-test-detect-java-toolchains.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,17 @@ jobs:
run: |
gradle --info javaToolchains > output.txt
cat output.txt
- name: Verify detected toolchains
- name: Verify setup JDKs are detected
shell: bash
working-directory: .github/workflow-samples/groovy-dsl
run: |
grep -q 'Eclipse Temurin JDK 16' output.txt || (echo "::error::Did not detect setup-java installed JDK 16" && exit 1)
grep -q 'Eclipse Temurin JDK 20' output.txt || (echo "::error::Did not detect setup-java installed JDK 20" && exit 1)
- name: Verify pre-installed toolchains are detected
shell: bash
working-directory: .github/workflow-samples/groovy-dsl
run: |
grep -q 'Eclipse Temurin JDK 1.8' output.txt || (echo "::error::Did not detect preinstalled JDK 1.8" && exit 1)
grep -q 'Eclipse Temurin JDK 11' output.txt || (echo "::error::Did not detect preinstalled JDK 11" && exit 1)
grep -q 'Eclipse Temurin JDK 17' output.txt || (echo "::error::Did not detect preinstalled JDK 17" && exit 1)
grep -q 'Eclipse Temurin JDK 21' output.txt || (echo "::error::Did not detect preinstalled JDK 21" && exit 1)
16 changes: 14 additions & 2 deletions src/cache-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -204,15 +204,27 @@ export class GradleStateCache {
fs.writeFileSync(initScriptPath, initScriptContent)
}

// Copy the toolchain definitions file to `~/.m2/toolchains.xml` (if the file doesn't already exist)
// Copy the default toolchain definitions to `~/.m2/toolchains.xml`
const toolchainContent = this.readResourceFileAsString('toolchains.xml')
const m2dir = path.resolve(this.userHome, '.m2')
const toolchainXmlTarget = path.resolve(m2dir, 'toolchains.xml')
if (!fs.existsSync(toolchainXmlTarget)) {
// Write a new toolchains.xml file if it doesn't exist
fs.mkdirSync(m2dir, {recursive: true})
const toolchainContent = this.readResourceFileAsString('toolchains.xml')
fs.writeFileSync(toolchainXmlTarget, toolchainContent)

core.info(`Wrote default JDK locations to ${toolchainXmlTarget}`)
} else {
// Merge into an existing toolchains.xml file
const existingToolchainContent = fs.readFileSync(toolchainXmlTarget, 'utf8')
const appendedContent = toolchainContent.split("<toolchains>").pop()!
const mergedContent = existingToolchainContent.replace('</toolchains>', appendedContent)

core.info(`Merged toolchains.xml`)
core.info(mergedContent)

fs.writeFileSync(toolchainXmlTarget, mergedContent)
core.info(`Merged default JDK locations into ${toolchainXmlTarget}`)
}
}

Expand Down

0 comments on commit 813809e

Please sign in to comment.