Run autobuild script via direct tracing when feature enabled
This commit is contained in:
parent
8f057a3d8e
commit
cbe29f55df
15 changed files with 68 additions and 25 deletions
|
|
@ -181,7 +181,7 @@ async function runAutobuildIfLegacyGoWorkflow(
|
|||
logger.debug(
|
||||
"Running Go autobuild because extraction output (TRAP files) for Go code has not been found.",
|
||||
);
|
||||
await runAutobuild(Language.go, config, features, logger);
|
||||
await runAutobuild(config, Language.go, features, logger);
|
||||
}
|
||||
|
||||
async function run() {
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ async function run() {
|
|||
}
|
||||
for (const language of languages) {
|
||||
currentLanguage = language;
|
||||
await runAutobuild(language, config, features, logger);
|
||||
await runAutobuild(config, language, features, logger);
|
||||
}
|
||||
}
|
||||
} catch (unwrappedError) {
|
||||
|
|
|
|||
|
|
@ -157,8 +157,8 @@ export async function setupCppAutobuild(codeql: CodeQL, logger: Logger) {
|
|||
}
|
||||
|
||||
export async function runAutobuild(
|
||||
language: Language,
|
||||
config: configUtils.Config,
|
||||
language: Language,
|
||||
features: FeatureEnablement,
|
||||
logger: Logger,
|
||||
) {
|
||||
|
|
@ -173,7 +173,7 @@ export async function runAutobuild(
|
|||
) {
|
||||
await codeQL.extractUsingBuildMode(config, language);
|
||||
} else {
|
||||
await codeQL.runAutobuild(language, config.debugMode);
|
||||
await codeQL.runAutobuild(config, language, features);
|
||||
}
|
||||
if (language === Language.go) {
|
||||
core.exportVariable(EnvVar.DID_AUTOBUILD_GOLANG, "true");
|
||||
|
|
|
|||
|
|
@ -910,7 +910,12 @@ test("runTool summarizes autobuilder errors", async (t) => {
|
|||
sinon.stub(safeWhich, "safeWhich").resolves("");
|
||||
|
||||
await t.throwsAsync(
|
||||
async () => await codeqlObject.runAutobuild(Language.java, false),
|
||||
async () =>
|
||||
await codeqlObject.runAutobuild(
|
||||
stubConfig,
|
||||
Language.java,
|
||||
createFeatures([]),
|
||||
),
|
||||
{
|
||||
instanceOf: CommandInvocationError,
|
||||
message:
|
||||
|
|
@ -938,7 +943,12 @@ test("runTool truncates long autobuilder errors", async (t) => {
|
|||
sinon.stub(safeWhich, "safeWhich").resolves("");
|
||||
|
||||
await t.throwsAsync(
|
||||
async () => await codeqlObject.runAutobuild(Language.java, false),
|
||||
async () =>
|
||||
await codeqlObject.runAutobuild(
|
||||
stubConfig,
|
||||
Language.java,
|
||||
createFeatures([]),
|
||||
),
|
||||
{
|
||||
instanceOf: CommandInvocationError,
|
||||
message:
|
||||
|
|
|
|||
|
|
@ -88,7 +88,11 @@ export interface CodeQL {
|
|||
/**
|
||||
* Runs the autobuilder for the given language.
|
||||
*/
|
||||
runAutobuild(language: Language, enableDebugLogging: boolean): Promise<void>;
|
||||
runAutobuild(
|
||||
config: Config,
|
||||
language: Language,
|
||||
features: FeatureEnablement,
|
||||
): Promise<void>;
|
||||
/**
|
||||
* Extract code for a scanned language using 'codeql database trace-command'
|
||||
* and running the language extractor.
|
||||
|
|
@ -628,17 +632,35 @@ export async function getCodeQLForCmd(
|
|||
{ stdin: externalRepositoryToken },
|
||||
);
|
||||
},
|
||||
async runAutobuild(language: Language, enableDebugLogging: boolean) {
|
||||
async runAutobuild(
|
||||
config: Config,
|
||||
language: Language,
|
||||
features: FeatureEnablement,
|
||||
) {
|
||||
applyAutobuildAzurePipelinesTimeoutFix();
|
||||
|
||||
if (
|
||||
await features.getValue(Feature.AutobuildDirectTracingEnabled, this)
|
||||
) {
|
||||
await runTool(cmd, [
|
||||
"database",
|
||||
"trace-command",
|
||||
...(await getTrapCachingExtractorConfigArgsForLang(config, language)),
|
||||
...getExtractionVerbosityArguments(config.debugMode),
|
||||
...getExtraOptionsFromEnv(["database", "trace-command"]),
|
||||
util.getCodeQLDatabasePath(config, language),
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
const autobuildCmd = path.join(
|
||||
await this.resolveExtractor(language),
|
||||
"tools",
|
||||
process.platform === "win32" ? "autobuild.cmd" : "autobuild.sh",
|
||||
);
|
||||
|
||||
applyAutobuildAzurePipelinesTimeoutFix();
|
||||
|
||||
// Bump the verbosity of the autobuild command if we're in debug mode
|
||||
if (enableDebugLogging) {
|
||||
if (config.debugMode) {
|
||||
process.env[EnvVar.CLI_VERBOSITY] =
|
||||
process.env[EnvVar.CLI_VERBOSITY] || EXTRACTION_DEBUG_MODE_VERBOSITY;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue