From 41b646921723c5be476bd12f7f7d9977ab187ed4 Mon Sep 17 00:00:00 2001 From: Damian Date: Mon, 9 Aug 2021 10:35:36 +0200 Subject: [PATCH] add virtual env parameter --- __tests__/main.test.ts | 2 +- action.yml | 5 +++++ src/restore.ts | 5 ++++- src/utils.ts | 6 ++++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index b0d9d197..f2a1f00f 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -19,7 +19,7 @@ test('get python version', async () => { }) test('get virtualenv directory', async () => { - expect(await utils.virtualenv_directory()).toContain('.venv') + expect(await utils.virtualenv_directory('venv-custom')).toContain('venv-custom') }) test('get hash for file glob', async () => { diff --git a/action.yml b/action.yml index 7b3bb1ff..535fd022 100644 --- a/action.yml +++ b/action.yml @@ -23,6 +23,11 @@ inputs: **/Pipfile.lock **/poetry.lock + custom_virtualenv_dir: + required: false + description: "custom directory for the virtual environment" + default: ".venv" + outputs: cache-hit: description: "A boolean value to indicate if a cache was restored" diff --git a/src/restore.ts b/src/restore.ts index a457205e..250672e8 100644 --- a/src/restore.ts +++ b/src/restore.ts @@ -12,8 +12,11 @@ async function run(): Promise { const custom_cache_key = core.getInput('custom_cache_key_element', { required: true }) + const custom_virtualenv_dir = core.getInput('custom_virtualenv_dir', { + required: true + }) - const virtualenv_dir = await utils.virtualenv_directory() + const virtualenv_dir = await utils.virtualenv_directory(custom_virtualenv_dir) core.saveState('VIRTUALENV_DIRECTORY', virtualenv_dir) core.setOutput('virtualenv-directory', virtualenv_dir) diff --git a/src/utils.ts b/src/utils.ts index 863370a2..186d7124 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -38,7 +38,9 @@ export async function cache_key( return `${base}-${hash}` } -export async function virtualenv_directory(): Promise { +export async function virtualenv_directory( + custom_virtualenv_dir: string +): Promise { let home = '' if (process.platform === 'win32') { home = `${process.env['HOMEDRIVE']}${process.env['HOMEPATH']}` @@ -49,7 +51,7 @@ export async function virtualenv_directory(): Promise { const virtualenv_base = `${home}${path.sep}.virtualenvs` await io.mkdirP(virtualenv_base) - return `${virtualenv_base}${path.sep}.venv` + return `${virtualenv_base}${path.sep}${custom_virtualenv_dir}` } export function logWarning(message: string): void {