Autobuild Go in analyze step

This commit is contained in:
Angela P Wen 2022-08-26 15:06:09 -07:00 committed by Henry Mercer
parent d92a91c5c4
commit 215c3cb4bb
9 changed files with 67 additions and 4 deletions

22
lib/analyze-action.js generated
View file

@ -21,15 +21,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.runPromise = exports.sendStatusReport = void 0;
// We need to import `performance` on Node 12
const fs = __importStar(require("fs"));
const perf_hooks_1 = require("perf_hooks");
const core = __importStar(require("@actions/core"));
const actionsUtil = __importStar(require("./actions-util"));
const analyze_1 = require("./analyze");
const api_client_1 = require("./api-client");
const autobuild_1 = require("./autobuild");
const codeql_1 = require("./codeql");
const config_utils_1 = require("./config-utils");
const database_upload_1 = require("./database-upload");
const feature_flags_1 = require("./feature-flags");
const languages_1 = require("./languages");
const logging_1 = require("./logging");
const repository_1 = require("./repository");
const trap_caching_1 = require("./trap-caching");
@ -68,6 +71,17 @@ function hasBadExpectErrorInput() {
return (actionsUtil.getOptionalInput("expect-error") !== "false" &&
!util.isInTestMode());
}
// Check for any .trap[.gz] files under the db-go/ folder
function didGolangExtraction(config) {
const golangDbDirectory = util.getCodeQLDatabasePath(config, languages_1.Language.go);
const extractedFiles = fs
.readdirSync(golangDbDirectory)
.filter((fileName) => fileName.endsWith(".trap") || fileName.endsWith(".trap.gz"));
if (extractedFiles.length !== 0) {
return true;
}
return false;
}
async function run() {
const startedAt = new Date();
let uploadResult = undefined;
@ -102,6 +116,14 @@ async function run() {
const repositoryNwo = (0, repository_1.parseRepositoryNwo)(util.getRequiredEnvParam("GITHUB_REPOSITORY"));
const gitHubVersion = await (0, api_client_1.getGitHubVersionActionsOnly)();
const featureFlags = new feature_flags_1.GitHubFeatureFlags(gitHubVersion, apiDetails, repositoryNwo, logger);
if (await featureFlags.getValue(feature_flags_1.FeatureFlag.GolangExtractionReconciliationEnabled)) {
// Run autobuilder for Go, unless it's already been run or user built manually
if (languages_1.Language.go in config.languages &&
process.env["CODEQL_ACTION_DID_AUTOBUILD_GOLANG"] !== "true" &&
!didGolangExtraction(config)) {
await (0, autobuild_1.runAutobuild)(languages_1.Language.go, config, logger);
}
}
dbCreationTimings = await (0, analyze_1.runFinalize)(outputDir, threads, memory, config, logger, featureFlags);
if (actionsUtil.getRequiredInput("skip-queries") !== "true") {
runStats = await (0, analyze_1.runQueries)(outputDir, memory, util.getAddSnippetsFlag(actionsUtil.getRequiredInput("add-snippets")), threads, actionsUtil.getOptionalInput("category"), config, logger);