check environment before running autobuild or analyze

This commit is contained in:
Robert Brignull 2020-08-27 14:22:16 +01:00
parent a542021200
commit f80d660e33
3 changed files with 22 additions and 3 deletions

9
lib/runner.js generated
View file

@ -60,6 +60,13 @@ function getToolsDir(userInput) {
} }
return toolsDir; return toolsDir;
} }
function checkEnvironmentSetup(config) {
if (config.languages.some(languages_1.isTracedLanguage) && !('ODASA_TRACER_CONFIGURATION' in process.env)) {
throw new Error("Could not detect 'ODASA_TRACER_CONFIGURATION' in environment. " +
"Make sure that environment variables were correctly exported to future processes. " +
"See end out output from 'init' command for instructions.");
}
}
const logger = logging_1.getRunnerLogger(); const logger = logging_1.getRunnerLogger();
program program
.command('init') .command('init')
@ -135,6 +142,7 @@ program
.action(async (cmd) => { .action(async (cmd) => {
try { try {
const config = await config_utils_1.getConfig(getTempDir(cmd.tempDir), logger); const config = await config_utils_1.getConfig(getTempDir(cmd.tempDir), logger);
checkEnvironmentSetup(config);
let language = undefined; let language = undefined;
if (cmd.language !== undefined) { if (cmd.language !== undefined) {
language = languages_1.parseLanguage(cmd.language); language = languages_1.parseLanguage(cmd.language);
@ -173,6 +181,7 @@ program
const tempDir = getTempDir(cmd.tempDir); const tempDir = getTempDir(cmd.tempDir);
const outputDir = cmd.outputDir || path.join(tempDir, 'codeql-sarif'); const outputDir = cmd.outputDir || path.join(tempDir, 'codeql-sarif');
const config = await config_utils_1.getConfig(getTempDir(cmd.tempDir), logger); const config = await config_utils_1.getConfig(getTempDir(cmd.tempDir), logger);
checkEnvironmentSetup(config);
await analyze_1.runAnalyze(repository_1.parseRepositoryNwo(cmd.repository), cmd.commit, cmd.ref, undefined, undefined, undefined, cmd.checkoutPath || process.cwd(), undefined, cmd.githubAuth, parseGithubUrl(cmd.githubUrl), cmd.upload, 'runner', outputDir, config, logger); await analyze_1.runAnalyze(repository_1.parseRepositoryNwo(cmd.repository), cmd.commit, cmd.ref, undefined, undefined, undefined, cmd.checkoutPath || process.cwd(), undefined, cmd.githubAuth, parseGithubUrl(cmd.githubUrl), cmd.upload, 'runner', outputDir, config, logger);
} }
catch (e) { catch (e) {

File diff suppressed because one or more lines are too long

View file

@ -7,9 +7,9 @@ import * as path from 'path';
import { runAnalyze } from './analyze'; import { runAnalyze } from './analyze';
import { determineAutobuildLanguage, runAutobuild } from './autobuild'; import { determineAutobuildLanguage, runAutobuild } from './autobuild';
import { CodeQL, getCodeQL } from './codeql'; import { CodeQL, getCodeQL } from './codeql';
import { getConfig} from './config-utils'; import { Config, getConfig } from './config-utils';
import { initCodeQL, initConfig, runInit } from './init'; import { initCodeQL, initConfig, runInit } from './init';
import { Language, parseLanguage } from './languages'; import { isTracedLanguage, Language, parseLanguage } from './languages';
import { getRunnerLogger } from './logging'; import { getRunnerLogger } from './logging';
import { parseRepositoryNwo } from './repository'; import { parseRepositoryNwo } from './repository';
import * as upload_lib from './upload-lib'; import * as upload_lib from './upload-lib';
@ -57,6 +57,14 @@ function getToolsDir(userInput: string | undefined): string {
return toolsDir; return toolsDir;
} }
function checkEnvironmentSetup(config: Config) {
if (config.languages.some(isTracedLanguage) && !('ODASA_TRACER_CONFIGURATION' in process.env)) {
throw new Error("Could not detect 'ODASA_TRACER_CONFIGURATION' in environment. " +
"Make sure that environment variables were correctly exported to future processes. " +
"See end out output from 'init' command for instructions.");
}
}
const logger = getRunnerLogger(); const logger = getRunnerLogger();
interface InitArgs { interface InitArgs {
@ -176,6 +184,7 @@ program
.action(async (cmd: AutobuildArgs) => { .action(async (cmd: AutobuildArgs) => {
try { try {
const config = await getConfig(getTempDir(cmd.tempDir), logger); const config = await getConfig(getTempDir(cmd.tempDir), logger);
checkEnvironmentSetup(config);
let language: Language | undefined = undefined; let language: Language | undefined = undefined;
if (cmd.language !== undefined) { if (cmd.language !== undefined) {
language = parseLanguage(cmd.language); language = parseLanguage(cmd.language);
@ -225,6 +234,7 @@ program
const tempDir = getTempDir(cmd.tempDir); const tempDir = getTempDir(cmd.tempDir);
const outputDir = cmd.outputDir || path.join(tempDir, 'codeql-sarif'); const outputDir = cmd.outputDir || path.join(tempDir, 'codeql-sarif');
const config = await getConfig(getTempDir(cmd.tempDir), logger); const config = await getConfig(getTempDir(cmd.tempDir), logger);
checkEnvironmentSetup(config);
await runAnalyze( await runAnalyze(
parseRepositoryNwo(cmd.repository), parseRepositoryNwo(cmd.repository),
cmd.commit, cmd.commit,