From 2513d89ee391c0e79cc1fa0a7a12432533430674 Mon Sep 17 00:00:00 2001 From: Peter Mescalchin Date: Thu, 1 Oct 2020 12:24:03 +1000 Subject: [PATCH] Adding LD_LIBRARY_PATH env var to both setup and install tasks --- src/find-python.ts | 13 +++++++++++++ src/install-python.ts | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/src/find-python.ts b/src/find-python.ts index db06230d..8bc8d5bc 100644 --- a/src/find-python.ts +++ b/src/find-python.ts @@ -9,6 +9,7 @@ import * as core from '@actions/core'; import * as tc from '@actions/tool-cache'; const IS_WINDOWS = process.platform === 'win32'; +const IS_LINUX = process.platform === 'linux'; // Python has "scripts" or "bin" directories where command-line tools that come with packages are installed. // This is where pip is, along with anything that pip installs. @@ -109,6 +110,18 @@ async function useCpythonVersion( } core.exportVariable('pythonLocation', installDir); + + if (IS_LINUX) { + const libPath = process.env.LD_LIBRARY_PATH + ? `:${process.env.LD_LIBRARY_PATH}` + : ''; + const pyLibPath = path.join(installDir, 'lib'); + + if (!libPath.split(':').includes(pyLibPath)) { + core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath); + } + } + core.addPath(installDir); core.addPath(binDir(installDir)); diff --git a/src/install-python.ts b/src/install-python.ts index 36d88781..8fcfe68e 100644 --- a/src/install-python.ts +++ b/src/install-python.ts @@ -13,6 +13,7 @@ const MANIFEST_REPO_BRANCH = 'main'; export const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`; const IS_WINDOWS = process.platform === 'win32'; +const IS_LINUX = process.platform === 'linux'; export async function findReleaseFromManifest( semanticVersionSpec: string, @@ -35,6 +36,10 @@ export async function findReleaseFromManifest( async function installPython(workingDirectory: string) { const options: ExecOptions = { cwd: workingDirectory, + env: { + ...process.env, + ...(IS_LINUX && {LD_LIBRARY_PATH: path.join(workingDirectory, 'lib')}) + }, silent: true, listeners: { stdout: (data: Buffer) => {