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