From b53e5e408da2439162f73f1f8bac570f3b207f1d Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Thu, 24 Jun 2021 13:11:30 +0400
Subject: [PATCH] refactor(bundler): Use util function for cache dir creation
 (#10586)

---
 lib/manager/bundler/artifacts.spec.ts |  4 ++++
 lib/manager/bundler/artifacts.ts      |  7 +++++--
 lib/manager/bundler/utils.ts          | 15 ---------------
 3 files changed, 9 insertions(+), 17 deletions(-)
 delete mode 100644 lib/manager/bundler/utils.ts

diff --git a/lib/manager/bundler/artifacts.spec.ts b/lib/manager/bundler/artifacts.spec.ts
index f9abf89ec0..e2dfa337ce 100644
--- a/lib/manager/bundler/artifacts.spec.ts
+++ b/lib/manager/bundler/artifacts.spec.ts
@@ -46,6 +46,10 @@ describe('bundler.updateArtifacts()', () => {
     docker.resetPrefetchedImages();
 
     setAdminConfig(adminConfig);
+
+    fs.ensureCacheDir.mockResolvedValueOnce(
+      join(adminConfig.cacheDir, './others/gem')
+    );
   });
   afterEach(() => {
     setAdminConfig();
diff --git a/lib/manager/bundler/artifacts.ts b/lib/manager/bundler/artifacts.ts
index 12594a749b..a5fc426078 100644
--- a/lib/manager/bundler/artifacts.ts
+++ b/lib/manager/bundler/artifacts.ts
@@ -10,6 +10,7 @@ import * as memCache from '../../util/cache/memory';
 import { ExecOptions, exec } from '../../util/exec';
 import {
   deleteLocalFile,
+  ensureCacheDir,
   getSiblingFileName,
   readLocalFile,
   writeLocalFile,
@@ -22,7 +23,6 @@ import {
   findAllAuthenticatable,
   getAuthenticationHeaderValue,
 } from './host-rules';
-import { getGemHome } from './utils';
 
 const hostConfigVariablePrefix = 'BUNDLE_';
 
@@ -169,11 +169,14 @@ export async function updateArtifacts(
       );
     }
 
+    const cacheDir = await ensureCacheDir('./others/gem', 'GEM_HOME');
+    logger.debug(`Using gem home ${cacheDir}`);
+
     const execOptions: ExecOptions = {
       cwdFile: packageFileName,
       extraEnv: {
         ...bundlerHostRulesVariables,
-        GEM_HOME: await getGemHome(config),
+        GEM_HOME: cacheDir,
       },
       docker: {
         image: 'ruby',
diff --git a/lib/manager/bundler/utils.ts b/lib/manager/bundler/utils.ts
deleted file mode 100644
index 4c40aecceb..0000000000
--- a/lib/manager/bundler/utils.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { join } from 'upath';
-import { getAdminConfig } from '../../config/admin';
-import { logger } from '../../logger';
-import { ensureDir } from '../../util/fs';
-import type { UpdateArtifactsConfig } from '../types';
-
-export async function getGemHome(
-  config: UpdateArtifactsConfig
-): Promise<string> {
-  const cacheDir =
-    process.env.GEM_HOME || join(getAdminConfig().cacheDir, './others/gem');
-  await ensureDir(cacheDir);
-  logger.debug(`Using gem home ${cacheDir}`);
-  return cacheDir;
-}
-- 
GitLab