mirror of
				https://github.com/gradle/gradle-build-action.git
				synced 2025-11-04 09:58:56 +08:00 
			
		
		
		
	Validate presense of gradle wrapper to provide better feedback
- Provide a more useful error message when no Gradle wrapper can be located, and 'gradle-version' or 'gradle-executable' is not used. - Add test for case where wrapper is missing. This isn't really a "test" per-se, but this failing build invocation makes it easy to verify the GitHub action behaviour when the build is misconfigured.
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
			
		||||
import * as path from 'path'
 | 
			
		||||
import fs from 'fs'
 | 
			
		||||
 | 
			
		||||
const IS_WINDOWS = process.platform === 'win32'
 | 
			
		||||
 | 
			
		||||
export function wrapperFilename(): string {
 | 
			
		||||
@@ -7,3 +10,15 @@ export function wrapperFilename(): string {
 | 
			
		||||
export function installScriptFilename(): string {
 | 
			
		||||
    return IS_WINDOWS ? 'gradle.bat' : 'gradle'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function validateGradleWrapper(gradlewDirectory: string): void {
 | 
			
		||||
    const wrapperProperties = path.resolve(
 | 
			
		||||
        gradlewDirectory,
 | 
			
		||||
        'gradle/wrapper/gradle-wrapper.properties'
 | 
			
		||||
    )
 | 
			
		||||
    if (!fs.existsSync(wrapperProperties)) {
 | 
			
		||||
        throw new Error(
 | 
			
		||||
            `Cannot locate a Gradle wrapper properties file at '${wrapperProperties}'. Specify 'gradle-version' or 'gradle-executable' for projects without Gradle wrapper configured.`
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,7 @@ async function resolveGradleExecutable(
 | 
			
		||||
            ? path.resolve(workspaceDirectory, wrapperDirectory)
 | 
			
		||||
            : buildRootDirectory
 | 
			
		||||
 | 
			
		||||
    gradlew.validateGradleWrapper(gradlewDirectory)
 | 
			
		||||
    await cacheWrapper.restoreCachedWrapperDist(gradlewDirectory)
 | 
			
		||||
 | 
			
		||||
    return path.resolve(gradlewDirectory, gradlew.wrapperFilename())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user