From 16d92cebbf73a73ede9dcbd91396223edaae7255 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Fri, 14 Feb 2020 14:18:45 +0100 Subject: [PATCH] fix(gradle): only throw for timeouts --- .../gradle/__snapshots__/index.spec.ts.snap | 24 ------------ lib/manager/gradle/index.spec.ts | 9 ----- lib/manager/gradle/index.ts | 39 +++---------------- 3 files changed, 6 insertions(+), 66 deletions(-) diff --git a/lib/manager/gradle/__snapshots__/index.spec.ts.snap b/lib/manager/gradle/__snapshots__/index.spec.ts.snap index 6397934345..04646a3325 100644 --- a/lib/manager/gradle/__snapshots__/index.spec.ts.snap +++ b/lib/manager/gradle/__snapshots__/index.spec.ts.snap @@ -505,30 +505,6 @@ Array [ ] `; -exports[`manager/gradle extractPackageFile should throw registry failure if gradle execution fails 1`] = `[Error: registry-failure]`; - -exports[`manager/gradle extractPackageFile should throw registry failure if gradle execution fails 2`] = ` -Array [ - Object { - "cmd": "./gradlew --init-script renovate-plugin.gradle renovate", - "options": Object { - "cwd": "localDir", - "encoding": "utf-8", - "env": Object { - "HOME": "/home/user", - "HTTPS_PROXY": "https://example.com", - "HTTP_PROXY": "http://example.com", - "LANG": "en_US.UTF-8", - "LC_ALL": "en_US", - "NO_PROXY": "localhost", - "PATH": "/tmp/path", - }, - "timeout": 20000, - }, - }, -] -`; - exports[`manager/gradle extractPackageFile should use docker even if gradlew is available 1`] = ` Array [ Object { diff --git a/lib/manager/gradle/index.spec.ts b/lib/manager/gradle/index.spec.ts index 7478584b12..79a39ef379 100644 --- a/lib/manager/gradle/index.spec.ts +++ b/lib/manager/gradle/index.spec.ts @@ -91,15 +91,6 @@ describe('manager/gradle', () => { expect(execSnapshots).toMatchSnapshot(); }); - it('should throw registry failure if gradle execution fails', async () => { - const execSnapshots = mockExecAll(exec, new Error()); - - await expect( - manager.extractAllPackageFiles(config, ['build.gradle']) - ).rejects.toMatchSnapshot(); - expect(execSnapshots).toMatchSnapshot(); - }); - it('should return empty if there is no dependency report', async () => { const execSnapshots = mockExecAll(exec, gradleOutput); diff --git a/lib/manager/gradle/index.ts b/lib/manager/gradle/index.ts index 62dde07258..7fb0d5e3ad 100644 --- a/lib/manager/gradle/index.ts +++ b/lib/manager/gradle/index.ts @@ -78,41 +78,14 @@ async function executeGradle( try { logger.debug({ cmd }, 'Start gradle command'); ({ stdout, stderr } = await exec(cmd, execOptions)); - } catch (err) { - // istanbul ignore if + } catch (err) /* istanbul ignore next */ { if (err.code === TIMEOUT_CODE) { - logger.warn({ err }, ' Process killed. Possibly gradle timed out.'); + const error = new DatasourceError(err); + error.datasource = 'gradle'; + throw error; } - // istanbul ignore if - if (err.message.includes('Could not resolve all files for configuration')) { - logger.debug({ err }, 'Gradle error'); - logger.warn('Gradle resolution error'); - return; - } - // istanbul ignore if - if ( - err.message.includes('Could not read script') || - err.message.includes('No such file or directory') - ) { - logger.warn( - { message: err.message }, - 'Gradle extraction failed due to missing file. Gradle will be skipped.' - ); - return; - } - // istanbul ignore if - if (err.message.includes("Could not get unknown property 'classesDir'")) { - logger.warn( - { message: err.message }, - 'Gradle extraction failed due to incompatibility. Gradle will be skipped.' - ); - return; - } - logger.warn({ err, cmd }, 'Gradle run failed'); - logger.info('Aborting Renovate due to Gradle lookup errors'); - const error = new DatasourceError(err); - error.datasource = 'gradle'; - throw error; + logger.info({ errMessage: err.message }, 'Gradle extraction failed'); + return; } logger.debug(stdout + stderr); logger.info('Gradle report complete'); -- GitLab