diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 54a5fc894b..447bf21ac6 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -121,7 +121,6 @@ jobs: languages: javascript # TODO: this can be removed when cli v2.5.6 is released and available in the tool cache tools: https://github.com/dsp-testing/aeisenberg-codeql-action-packaging/releases/download/codeql-bundle-20210615/codeql-bundle-linux64.tar.gz - - name: Build code shell: bash run: ./build.sh @@ -234,6 +233,59 @@ jobs: exit 1 fi + # Tests a split workflow where database construction and query execution happen in different steps + test-split-workflow: + needs: [check-js, check-node-modules] + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Move codeql-action + shell: bash + run: | + mkdir ../action + mv * .github ../action/ + mv ../action/tests/multi-language-repo/{*,.github} . + mv ../action/.github/workflows .github + - uses: ./../action/init + with: + config-file: ".github/codeql/codeql-config-packaging3.yml" + packs: +dsp-testing/codeql-pack1@0.0.4 + languages: javascript + tools: latest + - name: Build code + shell: bash + run: ./build.sh + - uses: ./../action/analyze + with: + skip-queries: true + output: "${{ runner.temp }}/results" + env: + TEST_MODE: true + - name: Assert No Results + run: | + if [ "$(ls -A $RUNNER_TEMP/results)" ]; then + echo "Expected results directory to be empty after skipping query execution!" + exit 1 + fi + - uses: ./../action/analyze + with: + output: "${{ runner.temp }}/results" + env: + TEST_MODE: true + - name: Assert Results + run: | + cd "$RUNNER_TEMP/results" + # We should have 3 hits from these rules + EXPECTED_RULES="javascript/example/empty-or-one-block javascript/example/empty-or-one-block javascript/example/two-block" + + # use tr to replace newlines with spaces and xargs to trim leading and trailing whitespace + RULES="$(cat javascript.sarif | jq -r '.runs[0].results[].ruleId' | sort | tr "\n" " " | xargs)" + echo "Found matching rules '$RULES'" + if [ "$RULES" != "$EXPECTED_RULES" ]; then + echo "Did not match expected rules '$EXPECTED_RULES'." + exit 1 + fi # Identify the CodeQL tool versions to integration test against. check-codeql-versions: diff --git a/CHANGELOG.md b/CHANGELOG.md index b0fc6b1456..07e8ab4774 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## [UNRELEASED] -No user facing changes. +- The `analyze` step of the Action now supports a `skip-queries` option to merely build the CodeQL database without analyzing. This functionality is not present in the runner. Additionally, the step will no longer fail if it encounters a finalized database, and will instead continue with query execution. [#602](https://github.com/github/codeql-action/pull/602) ## 1.0.4 - 28 Jun 2021 diff --git a/analyze/action.yml b/analyze/action.yml index 7e74529204..1191fe2d71 100644 --- a/analyze/action.yml +++ b/analyze/action.yml @@ -24,6 +24,10 @@ inputs: description: Specify whether or not to add code snippets to the output sarif file. required: false default: "false" + skip-queries: + description: If this option is set, the CodeQL database will be built but no queries will be run on it. Thus, no results will be produced. + required: false + default: "false" threads: description: The number of threads to be used by CodeQL. required: false diff --git a/lib/analyze-action.js b/lib/analyze-action.js index dad027d8e0..2acd4a1155 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -34,7 +34,8 @@ async function sendStatusReport(startedAt, stats, error) { } async function run() { const startedAt = new Date(); - let stats = undefined; + let uploadStats = undefined; + let runStats = undefined; let config = undefined; util.initializeEnvironment(util.Mode.actions, pkg.version); try { @@ -51,7 +52,11 @@ async function run() { url: util.getRequiredEnvParam("GITHUB_SERVER_URL"), }; const outputDir = actionsUtil.getRequiredInput("output"); - const queriesStats = await analyze_1.runAnalyze(outputDir, util.getMemoryFlag(actionsUtil.getOptionalInput("ram")), util.getAddSnippetsFlag(actionsUtil.getRequiredInput("add-snippets")), util.getThreadsFlag(actionsUtil.getOptionalInput("threads"), logger), actionsUtil.getOptionalInput("category"), config, logger); + const threads = util.getThreadsFlag(actionsUtil.getOptionalInput("threads"), logger); + await analyze_1.runFinalize(outputDir, threads, config, logger); + if (actionsUtil.getRequiredInput("skip-queries") !== "true") { + runStats = await analyze_1.runQueries(outputDir, util.getMemoryFlag(actionsUtil.getOptionalInput("ram")), util.getAddSnippetsFlag(actionsUtil.getRequiredInput("add-snippets")), threads, actionsUtil.getOptionalInput("category"), config, logger); + } if (actionsUtil.getOptionalInput("cleanup-level") !== "none") { await analyze_1.runCleanup(config, actionsUtil.getOptionalInput("cleanup-level") || "brutal", logger); } @@ -60,13 +65,11 @@ async function run() { dbLocations[language] = util.getCodeQLDatabasePath(config, language); } core.setOutput("db-locations", dbLocations); - if (actionsUtil.getRequiredInput("upload") === "true") { - const uploadStats = await upload_lib.uploadFromActions(outputDir, config.gitHubVersion, apiDetails, logger); - stats = { ...queriesStats, ...uploadStats }; + if (runStats && actionsUtil.getRequiredInput("upload") === "true") { + uploadStats = await upload_lib.uploadFromActions(outputDir, config.gitHubVersion, apiDetails, logger); } else { logger.info("Not uploading results"); - stats = { ...queriesStats }; } const repositoryNwo = repository_1.parseRepositoryNwo(util.getRequiredEnvParam("GITHUB_REPOSITORY")); await database_upload_1.uploadDatabases(repositoryNwo, config, apiDetails, logger); @@ -75,9 +78,12 @@ async function run() { core.setFailed(error.message); console.log(error); if (error instanceof analyze_1.CodeQLAnalysisError) { - stats = { ...error.queriesStatusReport }; + const stats = { ...error.queriesStatusReport }; + await sendStatusReport(startedAt, stats, error); + } + else { + await sendStatusReport(startedAt, undefined, error); } - await sendStatusReport(startedAt, stats, error); return; } finally { @@ -103,7 +109,15 @@ async function run() { } } } - await sendStatusReport(startedAt, stats); + if (runStats && uploadStats) { + await sendStatusReport(startedAt, { ...runStats, ...uploadStats }); + } + else if (runStats) { + await sendStatusReport(startedAt, { ...runStats }); + } + else { + await sendStatusReport(startedAt, undefined); + } } async function runWrapper() { try { diff --git a/lib/analyze-action.js.map b/lib/analyze-action.js.map index 5925279168..bbf8563537 100644 --- a/lib/analyze-action.js.map +++ b/lib/analyze-action.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze-action.js","sourceRoot":"","sources":["../src/analyze-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"analyze-action.js","sourceRoot":"","sources":["../src/analyze-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/analyze.js b/lib/analyze.js index f4237a5b3f..cf3549d1fd 100644 --- a/lib/analyze.js +++ b/lib/analyze.js @@ -10,6 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const fs = __importStar(require("fs")); const path = __importStar(require("path")); const toolrunner = __importStar(require("@actions/exec/lib/toolrunner")); +const yaml = __importStar(require("js-yaml")); const analysisPaths = __importStar(require("./analysis-paths")); const codeql_1 = require("./codeql"); const count_loc_1 = require("./count-loc"); @@ -55,7 +56,8 @@ async function createdDBForScannedLanguages(config, logger) { analysisPaths.includeAndExcludeAnalysisPaths(config); const codeql = codeql_1.getCodeQL(config.codeQLCmd); for (const language of config.languages) { - if (languages_1.isScannedLanguage(language)) { + if (languages_1.isScannedLanguage(language) && + !dbIsFinalized(config, language, logger)) { logger.startGroup(`Extracting ${language}`); if (language === languages_1.Language.python) { await setupPythonExtractor(logger); @@ -65,13 +67,29 @@ async function createdDBForScannedLanguages(config, logger) { } } } +function dbIsFinalized(config, language, logger) { + const dbPath = util.getCodeQLDatabasePath(config, language); + try { + const dbInfo = yaml.load(fs.readFileSync(path.resolve(dbPath, "codeql-database.yml"), "utf8")); + return !("inProgress" in dbInfo); + } + catch (e) { + logger.warning(`Could not check whether database for ${language} was finalized. Assuming it is not.`); + return false; + } +} async function finalizeDatabaseCreation(config, threadsFlag, logger) { await createdDBForScannedLanguages(config, logger); const codeql = codeql_1.getCodeQL(config.codeQLCmd); for (const language of config.languages) { - logger.startGroup(`Finalizing ${language}`); - await codeql.finalizeDatabase(util.getCodeQLDatabasePath(config, language), threadsFlag); - logger.endGroup(); + if (dbIsFinalized(config, language, logger)) { + logger.info(`There is already a finalized database for ${language} at the location where the CodeQL Action places databases, so we did not create one.`); + } + else { + logger.startGroup(`Finalizing ${language}`); + await codeql.finalizeDatabase(util.getCodeQLDatabasePath(config, language), threadsFlag); + logger.endGroup(); + } } } // Runs queries and creates sarif files in the given folder @@ -183,15 +201,13 @@ function packWithVersionToQuerySuiteEntry(pack) { } return text; } -async function runAnalyze(outputDir, memoryFlag, addSnippetsFlag, threadsFlag, automationDetailsId, config, logger) { +async function runFinalize(outputDir, threadsFlag, config, logger) { // Delete the tracer config env var to avoid tracing ourselves delete process.env[sharedEnv.ODASA_TRACER_CONFIGURATION]; fs.mkdirSync(outputDir, { recursive: true }); await finalizeDatabaseCreation(config, threadsFlag, logger); - const queriesStats = await runQueries(outputDir, memoryFlag, addSnippetsFlag, threadsFlag, automationDetailsId, config, logger); - return { ...queriesStats }; } -exports.runAnalyze = runAnalyze; +exports.runFinalize = runFinalize; async function runCleanup(config, cleanupLevel, logger) { logger.startGroup("Cleaning up databases"); for (const language of config.languages) { diff --git a/lib/analyze.js.map b/lib/analyze.js.map index 750d18c49c..a053dce843 100644 --- a/lib/analyze.js.map +++ b/lib/analyze.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/runner.js b/lib/runner.js index d58b230dd9..32b20388fa 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -243,7 +243,9 @@ program url: util_1.parseGitHubUrl(cmd.githubUrl), }; const outputDir = cmd.outputDir || path.join(config.tempDir, "codeql-sarif"); - await analyze_1.runAnalyze(outputDir, util_1.getMemoryFlag(cmd.ram), util_1.getAddSnippetsFlag(cmd.addSnippets), util_1.getThreadsFlag(cmd.threads, logger), cmd.category, config, logger); + const threads = util_1.getThreadsFlag(cmd.threads, logger); + await analyze_1.runFinalize(outputDir, threads, config, logger); + await analyze_1.runQueries(outputDir, util_1.getMemoryFlag(cmd.ram), util_1.getAddSnippetsFlag(cmd.addSnippets), threads, cmd.category, config, logger); if (!cmd.upload) { logger.info("Not uploading results"); return; diff --git a/lib/runner.js.map b/lib/runner.js.map index 18f7298031..e01061d859 100644 --- a/lib/runner.js.map +++ b/lib/runner.js.map @@ -1 +1 @@ -{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/analyze-action.ts b/src/analyze-action.ts index a571175172..69e6b212a8 100644 --- a/src/analyze-action.ts +++ b/src/analyze-action.ts @@ -5,16 +5,18 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { - runAnalyze, CodeQLAnalysisError, QueriesStatusReport, runCleanup, + runQueries, + runFinalize, } from "./analyze"; import { Config, getConfig } from "./config-utils"; import { uploadDatabases } from "./database-upload"; import { getActionsLogger } from "./logging"; import { parseRepositoryNwo } from "./repository"; import * as upload_lib from "./upload-lib"; +import { UploadStatusReport } from "./upload-lib"; import * as util from "./util"; // eslint-disable-next-line import/no-commonjs @@ -53,7 +55,8 @@ async function sendStatusReport( async function run() { const startedAt = new Date(); - let stats: AnalysisStatusReport | undefined = undefined; + let uploadStats: UploadStatusReport | undefined = undefined; + let runStats: QueriesStatusReport | undefined = undefined; let config: Config | undefined = undefined; util.initializeEnvironment(util.Mode.actions, pkg.version); @@ -82,15 +85,22 @@ async function run() { url: util.getRequiredEnvParam("GITHUB_SERVER_URL"), }; const outputDir = actionsUtil.getRequiredInput("output"); - const queriesStats = await runAnalyze( - outputDir, - util.getMemoryFlag(actionsUtil.getOptionalInput("ram")), - util.getAddSnippetsFlag(actionsUtil.getRequiredInput("add-snippets")), - util.getThreadsFlag(actionsUtil.getOptionalInput("threads"), logger), - actionsUtil.getOptionalInput("category"), - config, + const threads = util.getThreadsFlag( + actionsUtil.getOptionalInput("threads"), logger ); + await runFinalize(outputDir, threads, config, logger); + if (actionsUtil.getRequiredInput("skip-queries") !== "true") { + runStats = await runQueries( + outputDir, + util.getMemoryFlag(actionsUtil.getOptionalInput("ram")), + util.getAddSnippetsFlag(actionsUtil.getRequiredInput("add-snippets")), + threads, + actionsUtil.getOptionalInput("category"), + config, + logger + ); + } if (actionsUtil.getOptionalInput("cleanup-level") !== "none") { await runCleanup( @@ -106,17 +116,15 @@ async function run() { } core.setOutput("db-locations", dbLocations); - if (actionsUtil.getRequiredInput("upload") === "true") { - const uploadStats = await upload_lib.uploadFromActions( + if (runStats && actionsUtil.getRequiredInput("upload") === "true") { + uploadStats = await upload_lib.uploadFromActions( outputDir, config.gitHubVersion, apiDetails, logger ); - stats = { ...queriesStats, ...uploadStats }; } else { logger.info("Not uploading results"); - stats = { ...queriesStats }; } const repositoryNwo = parseRepositoryNwo( @@ -128,10 +136,12 @@ async function run() { console.log(error); if (error instanceof CodeQLAnalysisError) { - stats = { ...error.queriesStatusReport }; + const stats = { ...error.queriesStatusReport }; + await sendStatusReport(startedAt, stats, error); + } else { + await sendStatusReport(startedAt, undefined, error); } - await sendStatusReport(startedAt, stats, error); return; } finally { if (core.isDebug() && config !== undefined) { @@ -161,7 +171,13 @@ async function run() { } } - await sendStatusReport(startedAt, stats); + if (runStats && uploadStats) { + await sendStatusReport(startedAt, { ...runStats, ...uploadStats }); + } else if (runStats) { + await sendStatusReport(startedAt, { ...runStats }); + } else { + await sendStatusReport(startedAt, undefined); + } } async function runWrapper() { diff --git a/src/analyze.ts b/src/analyze.ts index 3e4a577dd3..b84ed65bb7 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -2,6 +2,7 @@ import * as fs from "fs"; import * as path from "path"; import * as toolrunner from "@actions/exec/lib/toolrunner"; +import * as yaml from "js-yaml"; import * as analysisPaths from "./analysis-paths"; import { getCodeQL } from "./codeql"; @@ -117,7 +118,10 @@ async function createdDBForScannedLanguages( const codeql = getCodeQL(config.codeQLCmd); for (const language of config.languages) { - if (isScannedLanguage(language)) { + if ( + isScannedLanguage(language) && + !dbIsFinalized(config, language, logger) + ) { logger.startGroup(`Extracting ${language}`); if (language === Language.python) { @@ -133,6 +137,25 @@ async function createdDBForScannedLanguages( } } +function dbIsFinalized( + config: configUtils.Config, + language: Language, + logger: Logger +) { + const dbPath = util.getCodeQLDatabasePath(config, language); + try { + const dbInfo = yaml.load( + fs.readFileSync(path.resolve(dbPath, "codeql-database.yml"), "utf8") + ); + return !("inProgress" in dbInfo); + } catch (e) { + logger.warning( + `Could not check whether database for ${language} was finalized. Assuming it is not.` + ); + return false; + } +} + async function finalizeDatabaseCreation( config: configUtils.Config, threadsFlag: string, @@ -142,12 +165,18 @@ async function finalizeDatabaseCreation( const codeql = getCodeQL(config.codeQLCmd); for (const language of config.languages) { - logger.startGroup(`Finalizing ${language}`); - await codeql.finalizeDatabase( - util.getCodeQLDatabasePath(config, language), - threadsFlag - ); - logger.endGroup(); + if (dbIsFinalized(config, language, logger)) { + logger.info( + `There is already a finalized database for ${language} at the location where the CodeQL Action places databases, so we did not create one.` + ); + } else { + logger.startGroup(`Finalizing ${language}`); + await codeql.finalizeDatabase( + util.getCodeQLDatabasePath(config, language), + threadsFlag + ); + logger.endGroup(); + } } } @@ -349,33 +378,18 @@ function packWithVersionToQuerySuiteEntry( return text; } -export async function runAnalyze( +export async function runFinalize( outputDir: string, - memoryFlag: string, - addSnippetsFlag: string, threadsFlag: string, - automationDetailsId: string | undefined, config: configUtils.Config, logger: Logger -): Promise { +) { // Delete the tracer config env var to avoid tracing ourselves delete process.env[sharedEnv.ODASA_TRACER_CONFIGURATION]; fs.mkdirSync(outputDir, { recursive: true }); await finalizeDatabaseCreation(config, threadsFlag, logger); - - const queriesStats = await runQueries( - outputDir, - memoryFlag, - addSnippetsFlag, - threadsFlag, - automationDetailsId, - config, - logger - ); - - return { ...queriesStats }; } export async function runCleanup( diff --git a/src/runner.ts b/src/runner.ts index 199e23474b..2c6d276139 100644 --- a/src/runner.ts +++ b/src/runner.ts @@ -4,7 +4,7 @@ import * as path from "path"; import { Command } from "commander"; -import { runAnalyze } from "./analyze"; +import { runFinalize, runQueries } from "./analyze"; import { determineAutobuildLanguage, runAutobuild } from "./autobuild"; import { CodeQL, getCodeQL } from "./codeql"; import { Config, getConfig } from "./config-utils"; @@ -431,11 +431,13 @@ program const outputDir = cmd.outputDir || path.join(config.tempDir, "codeql-sarif"); - await runAnalyze( + const threads = getThreadsFlag(cmd.threads, logger); + await runFinalize(outputDir, threads, config, logger); + await runQueries( outputDir, getMemoryFlag(cmd.ram), getAddSnippetsFlag(cmd.addSnippets), - getThreadsFlag(cmd.threads, logger), + threads, cmd.category, config, logger