Install python deps on init

This commit is contained in:
David Verdeguer
2020-09-11 10:53:41 +02:00
parent 75af0bf309
commit 8cea21575c
7 changed files with 70 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ import * as core from '@actions/core';
import { CodeQL } from './codeql';
import * as configUtils from './config-utils';
import { initCodeQL, initConfig, injectWindowsTracer, runInit } from './init';
import { initCodeQL, initConfig, injectWindowsTracer, installPythonDeps, runInit} from './init';
import { getActionsLogger } from './logging';
import { parseRepositoryNwo } from './repository';
import * as util from './util';
@@ -66,6 +66,13 @@ async function run() {
util.getRequiredEnvParam('RUNNER_TOOL_CACHE'),
'actions',
logger);
try {
await installPythonDeps(codeql, logger);
} catch (err) {
logger.warning(err.message + 'You can call this action with "setup-python-dependencies: false" to disable this process');
}
config = await initConfig(
core.getInput('languages'),
core.getInput('queries'),

View File

@@ -167,3 +167,29 @@ export async function injectWindowsTracer(
],
{ env: { 'ODASA_TRACER_CONFIGURATION': tracerConfig.spec } }).exec();
}
export async function installPythonDeps(codeql: CodeQL, logger: Logger) {
logger.startGroup('Setup Python dependencies');
const scriptsFolder = path.resolve(__dirname, '../python-setup');
// Setup tools
try {
await new toolrunnner.ToolRunner(path.join(scriptsFolder, 'install_tools.sh')).exec();
} catch (e) {
// This script tries to install some needed tools in the runner. It should not fail, but if it does
// we just abort the process without failing the action
logger.endGroup();
throw new Error('Unable to download and extract the scripts needed for installing the python dependecies');
}
// Install dependencies
try {
await new toolrunnner.ToolRunner(
path.join(scriptsFolder, 'auto_install_packages.py'),
[path.dirname(codeql.getPath())]).exec();
} catch (e) {
logger.endGroup();
throw new Error('We were unable to install your python dependencies.');
}
logger.endGroup();
}