poetry: Set up environment for each project individually

This commit is contained in:
Oran Avraham 2022-10-08 13:00:06 +03:00
parent f35052820f
commit 727a4d2ef2
No known key found for this signature in database
GPG key ID: 93535690AF9131E5
2 changed files with 32 additions and 28 deletions

View file

@ -20,8 +20,17 @@ class PoetryCache extends CacheDistributor {
const paths = new Set<string>();
const globber = await glob.create(this.patterns);
const pythonLocation = await io.which('python');
if (pythonLocation) {
core.debug(`pythonLocation is ${pythonLocation}`);
} else {
logWarning('python binaries were not found in PATH');
}
for await (const file of globber.globGenerator()) {
const basedir = path.dirname(file);
core.debug(`Processing Poetry project at ${basedir}`);
const poetryConfig = await this.getPoetryConfiguration(basedir);
const cacheDir = poetryConfig['cache-dir'];
@ -35,26 +44,18 @@ class PoetryCache extends CacheDistributor {
if (poetryConfig['virtualenvs.in-project'] === true) {
paths.add(path.join(basedir, '.venv'));
}
}
const pythonLocation = await io.which('python');
if (pythonLocation) {
const {exitCode, stderr} = await exec.getExecOutput(
'poetry',
['env', 'use', pythonLocation],
{ignoreReturnCode: true, cwd: basedir}
);
if (pythonLocation) {
core.debug(`pythonLocation is ${pythonLocation}`);
const {
exitCode,
stderr
} = await exec.getExecOutput(
`poetry env use ${pythonLocation}`,
undefined,
{ignoreReturnCode: true}
);
if (exitCode) {
logWarning(stderr);
if (exitCode) {
logWarning(stderr);
}
}
} else {
logWarning('python binaries were not found in PATH');
}
return [...paths];