Inject LD_LIBRARY_PATH library path into Python manifest install and setup (#144)

* Adding LD_LIBRARY_PATH env var to both setup and install tasks

* Rebuild dist/index.js

* Fixed some typos in contributors.md Markdown
This commit is contained in:
Peter Mescalchin
2020-10-05 23:51:21 +11:00
committed by GitHub
parent c181ffa198
commit 878156f1de
4 changed files with 33 additions and 2 deletions

View File

@ -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));

View File

@ -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) => {