From eeee462f059ecaf0f7f73a13b4f0989d4cf26e7e Mon Sep 17 00:00:00 2001 From: Angela P Wen Date: Tue, 2 Aug 2022 12:27:52 +0200 Subject: [PATCH] Move debug artifact methods into separate file --- lib/actions-util.js | 137 +--------------------- lib/actions-util.js.map | 2 +- lib/actions-util.test.js | 7 -- lib/actions-util.test.js.map | 2 +- lib/analyze-action-post.js | 3 +- lib/analyze-action-post.js.map | 2 +- lib/debug-artifacts.js | 163 ++++++++++++++++++++++++++ lib/debug-artifacts.js.map | 1 + lib/debug-artifacts.test.js | 34 ++++++ lib/debug-artifacts.test.js.map | 1 + lib/init-action-post.js | 3 +- lib/init-action-post.js.map | 2 +- src/actions-util.test.ts | 12 -- src/actions-util.ts | 195 +------------------------------ src/analyze-action-post.ts | 3 +- src/debug-artifacts.test.ts | 18 +++ src/debug-artifacts.ts | 201 ++++++++++++++++++++++++++++++++ src/init-action-post.ts | 7 +- 18 files changed, 434 insertions(+), 359 deletions(-) create mode 100644 lib/debug-artifacts.js create mode 100644 lib/debug-artifacts.js.map create mode 100644 lib/debug-artifacts.test.js create mode 100644 lib/debug-artifacts.test.js.map create mode 100644 src/debug-artifacts.test.ts create mode 100644 src/debug-artifacts.ts diff --git a/lib/actions-util.js b/lib/actions-util.js index 3083f48d8..388289659 100644 --- a/lib/actions-util.js +++ b/lib/actions-util.js @@ -18,24 +18,16 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", { value: true }); -exports.uploadDatabaseBundleDebugArtifact = exports.uploadLogsDebugArtifact = exports.uploadFinalLogsDebugArtifact = exports.uploadSarifDebugArtifact = exports.uploadDebugArtifacts = exports.sanitizeArifactName = exports.isAnalyzingDefaultBranch = exports.getRelativeScriptPath = exports.isRunningLocalAction = exports.sendStatusReport = exports.createStatusReportBase = exports.getActionsStatus = exports.getRef = exports.computeAutomationID = exports.getAutomationID = exports.getAnalysisKey = exports.getWorkflowRunID = exports.getWorkflow = exports.formatWorkflowCause = exports.formatWorkflowErrors = exports.validateWorkflow = exports.getWorkflowErrors = exports.WorkflowErrors = exports.patternIsSuperset = exports.determineMergeBaseCommitOid = exports.getCommitOid = exports.getTemporaryDirectory = exports.getOptionalInput = exports.getRequiredInput = void 0; +exports.isAnalyzingDefaultBranch = exports.getRelativeScriptPath = exports.isRunningLocalAction = exports.sendStatusReport = exports.createStatusReportBase = exports.getActionsStatus = exports.getRef = exports.computeAutomationID = exports.getAutomationID = exports.getAnalysisKey = exports.getWorkflowRunID = exports.getWorkflow = exports.formatWorkflowCause = exports.formatWorkflowErrors = exports.validateWorkflow = exports.getWorkflowErrors = exports.WorkflowErrors = exports.patternIsSuperset = exports.determineMergeBaseCommitOid = exports.getCommitOid = exports.getTemporaryDirectory = exports.getOptionalInput = exports.getRequiredInput = void 0; const fs = __importStar(require("fs")); const os = __importStar(require("os")); const path = __importStar(require("path")); -const artifact = __importStar(require("@actions/artifact")); const core = __importStar(require("@actions/core")); const toolrunner = __importStar(require("@actions/exec/lib/toolrunner")); const safeWhich = __importStar(require("@chrisgavin/safe-which")); -const adm_zip_1 = __importDefault(require("adm-zip")); -const del_1 = __importDefault(require("del")); const yaml = __importStar(require("js-yaml")); -const analyze_1 = require("./analyze"); const api = __importStar(require("./api-client")); -const codeql_1 = require("./codeql"); const sharedEnv = __importStar(require("./shared-environment")); const util_1 = require("./util"); // eslint-disable-next-line import/no-commonjs @@ -685,131 +677,4 @@ async function isAnalyzingDefaultBranch() { return currentRef === defaultBranch; } exports.isAnalyzingDefaultBranch = isAnalyzingDefaultBranch; -function sanitizeArifactName(name) { - return name.replace(/[^a-zA-Z0-9_\\-]+/g, ""); -} -exports.sanitizeArifactName = sanitizeArifactName; -async function uploadDebugArtifacts(toUpload, rootDir, artifactName) { - if (toUpload.length === 0) { - return; - } - let suffix = ""; - const matrix = getRequiredInput("matrix"); - if (matrix) { - try { - for (const [, matrixVal] of Object.entries(JSON.parse(matrix)).sort()) - suffix += `-${matrixVal}`; - } - catch (e) { - core.info("Could not parse user-specified `matrix` input into JSON. The debug artifact will not be named with the user's `matrix` input."); - } - } - await artifact.create().uploadArtifact(sanitizeArifactName(`${artifactName}${suffix}`), toUpload.map((file) => path.normalize(file)), path.normalize(rootDir)); -} -exports.uploadDebugArtifacts = uploadDebugArtifacts; -async function uploadSarifDebugArtifact(config, outputDir) { - if (!(0, util_1.doesDirectoryExist)(outputDir)) { - return; - } - let toUpload = []; - for (const lang of config.languages) { - const sarifFile = path.resolve(outputDir, `${lang}.sarif`); - if (fs.existsSync(sarifFile)) { - toUpload = toUpload.concat(sarifFile); - } - } - await uploadDebugArtifacts(toUpload, outputDir, config.debugArtifactName); -} -exports.uploadSarifDebugArtifact = uploadSarifDebugArtifact; -async function uploadFinalLogsDebugArtifact(config) { - core.info("Debug mode is on. Printing CodeQL debug logs..."); - for (const language of config.languages) { - const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); - const logsDirectory = path.join(databaseDirectory, "log"); - if (!(0, util_1.doesDirectoryExist)(logsDirectory)) { - core.info(`Directory ${logsDirectory} does not exist.`); - continue; // Skip this language database. - } - const walkLogFiles = (dir) => { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - if (entries.length === 0) { - core.info(`No debug logs found at directory ${logsDirectory}.`); - } - for (const entry of entries) { - if (entry.isFile()) { - core.startGroup(`CodeQL Debug Logs - ${language} - ${entry.name}`); - process.stdout.write(fs.readFileSync(path.resolve(dir, entry.name))); - core.endGroup(); - } - else if (entry.isDirectory()) { - walkLogFiles(path.resolve(dir, entry.name)); - } - } - }; - walkLogFiles(logsDirectory); - } -} -exports.uploadFinalLogsDebugArtifact = uploadFinalLogsDebugArtifact; -async function uploadLogsDebugArtifact(config) { - const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd); - let toUpload = []; - for (const language of config.languages) { - const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); - const logsDirectory = path.resolve(databaseDirectory, "log"); - if ((0, util_1.doesDirectoryExist)(logsDirectory)) { - toUpload = toUpload.concat((0, util_1.listFolder)(logsDirectory)); - } - } - if (await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_NEW_TRACING)) { - // Multilanguage tracing: there are additional logs in the root of the cluster - const multiLanguageTracingLogsDirectory = path.resolve(config.dbLocation, "log"); - if ((0, util_1.doesDirectoryExist)(multiLanguageTracingLogsDirectory)) { - toUpload = toUpload.concat((0, util_1.listFolder)(multiLanguageTracingLogsDirectory)); - } - } - await uploadDebugArtifacts(toUpload, config.dbLocation, config.debugArtifactName); - // Before multi-language tracing, we wrote a compound-build-tracer.log in the temp dir - if (!(await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_NEW_TRACING))) { - const compoundBuildTracerLogDirectory = path.resolve(config.tempDir, "compound-build-tracer.log"); - if ((0, util_1.doesDirectoryExist)(compoundBuildTracerLogDirectory)) { - await uploadDebugArtifacts([compoundBuildTracerLogDirectory], config.tempDir, config.debugArtifactName); - } - } -} -exports.uploadLogsDebugArtifact = uploadLogsDebugArtifact; -/** - * If a database has not been finalized, we cannot run the `codeql database bundle` - * command in the CLI because it will return an error. Instead we directly zip - * all files in the database folder and upload it as an artifact. - */ -async function uploadPartialDatabaseBundle(config, language) { - const databasePath = (0, util_1.getCodeQLDatabasePath)(config, language); - const databaseBundlePath = path.resolve(config.dbLocation, `${config.debugDatabaseName}-${language}-partial.zip`); - core.info(`${config.debugDatabaseName}-${language} is not finalized. Uploading partial database bundle at ${databaseBundlePath}...`); - // See `bundleDb` for explanation behind deleting existing db bundle. - if (fs.existsSync(databaseBundlePath)) { - await (0, del_1.default)(databaseBundlePath, { force: true }); - } - const zip = new adm_zip_1.default(); - zip.addLocalFolder(databasePath); - zip.writeZip(databaseBundlePath); - await uploadDebugArtifacts([databaseBundlePath], config.dbLocation, config.debugArtifactName); -} -async function uploadDatabaseBundleDebugArtifact(config, logger) { - for (const language of config.languages) { - if (!(0, analyze_1.dbIsFinalized)(config, language, logger)) { - await uploadPartialDatabaseBundle(config, language); - continue; - } - try { - // Otherwise run `codeql database bundle` command. - const bundlePath = await (0, util_1.bundleDb)(config, language, await (0, codeql_1.getCodeQL)(config.codeQLCmd), `${config.debugDatabaseName}-${language}`); - await uploadDebugArtifacts([bundlePath], config.dbLocation, config.debugArtifactName); - } - catch (error) { - core.info(`Failed to upload database debug bundles for ${config.debugDatabaseName}-${language}: ${error}`); - } - } -} -exports.uploadDatabaseBundleDebugArtifact = uploadDatabaseBundleDebugArtifact; //# sourceMappingURL=actions-util.js.map \ No newline at end of file diff --git a/lib/actions-util.js.map b/lib/actions-util.js.map index 7a2dc2847..3e198f4e2 100644 --- a/lib/actions-util.js.map +++ b/lib/actions-util.js.map @@ -1 +1 @@ -{"version":3,"file":"actions-util.js","sourceRoot":"","sources":["../src/actions-util.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"actions-util.js","sourceRoot":"","sources":["../src/actions-util.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/actions-util.test.js b/lib/actions-util.test.js index ee36722f5..6dd7ce902 100644 --- a/lib/actions-util.test.js +++ b/lib/actions-util.test.js @@ -497,11 +497,4 @@ on: ["push"] t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false); }); }); -(0, ava_1.default)("sanitizeArifactName", (t) => { - t.deepEqual(actionsutil.sanitizeArifactName("hello-world_"), "hello-world_"); - t.deepEqual(actionsutil.sanitizeArifactName("hello`world`"), "helloworld"); - t.deepEqual(actionsutil.sanitizeArifactName("hello===123"), "hello123"); - t.deepEqual(actionsutil.sanitizeArifactName("*m)a&n^y%i££n+v!a:l[i]d"), "manyinvalid"); -}); -// TODO(angelapwen): Test uploadDebugArtifacts if toUpload is empty //# sourceMappingURL=actions-util.test.js.map \ No newline at end of file diff --git a/lib/actions-util.test.js.map b/lib/actions-util.test.js.map index c6fa01e81..f74c0dfa7 100644 --- a/lib/actions-util.test.js.map +++ b/lib/actions-util.test.js.map @@ -1 +1 @@ -{"version":3,"file":"actions-util.test.js","sourceRoot":"","sources":["../src/actions-util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"actions-util.test.js","sourceRoot":"","sources":["../src/actions-util.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,8CAAuB;AACvB,8CAAgC;AAChC,6CAA+B;AAE/B,4DAA8C;AAC9C,mDAA+D;AAC/D,iCAA0E;AAE1E,SAAS,UAAU,CACjB,MAAgC,EAChC,QAAkC;IAElC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,IAAA,0BAAU,EAAC,aAAI,CAAC,CAAC;AAEjB,IAAA,aAAI,EAAC,qCAAqC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACtD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,+DAA+D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACxC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;QAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACzD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yGAAyG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1H,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACzD,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7D,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kEAAkE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACzD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,oEAAoE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACrF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrE,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,8BAA8B;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACzD,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAErE,MAAM,CAAC,CAAC,WAAW,CACjB,KAAK,IAAI,EAAE;YACT,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC,EACD;YACE,UAAU,EAAE,KAAK;YACjB,OAAO,EACL,+DAA+D;SAClE,CACF,CAAC;QACF,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjF,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;QACzC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3E,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,CAAC,WAAW,CACjB,KAAK,IAAI,EAAE;YACT,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC,EACD;YACE,UAAU,EAAE,KAAK;YACjB,OAAO,EACL,+DAA+D;SAClE,CACF,CAAC;QACF,sBAAsB,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,CACtD,+CAA+C,EAC/C,2CAA2C,CAC5C,CAAC;IACF,CAAC,CAAC,SAAS,CACT,kBAAkB,EAClB,6EAA6E,CAC9E,CAAC;IAEF,gCAAgC;IAChC,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,CAClD,+CAA+C,EAC/C,2CAA2C,CAC5C,CAAC;IACF,CAAC,CAAC,SAAS,CACT,kBAAkB,EAClB,6EAA6E,CAC9E,CAAC;IAEF,6DAA6D;IAC7D,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,CAClD,+CAA+C,EAC/C,IAAI,CACL,CAAC;IACF,CAAC,CAAC,SAAS,CACT,kBAAkB,EAClB,gDAAgD,CACjD,CAAC;IAEF,sCAAsC;IACtC,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,CAClD,+CAA+C,EAC/C,qDAAqD,CACtD,CAAC;IACF,CAAC,CAAC,SAAS,CACT,kBAAkB,EAClB,gEAAgE,CACjE,CAAC;IAEF,8BAA8B;IAC9B,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,CAClD,+CAA+C,EAC/C,SAAS,CACV,CAAC;IACF,CAAC,CAAC,SAAS,CACT,kBAAkB,EAClB,gDAAgD,CACjD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAEzD,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,mEAAmE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE/D,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2DAA2D,EAAE,CAAC,CAAC,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAEvE,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2CAA2C,EAAE,CAAC,CAAC,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;KAC7B,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC;KACzC,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yDAAyD,EAAE,CAAC,CAAC,EAAE,EAAE;IACpE,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC/C,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;SACrC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CACnE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KAC3E,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;KACtE,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,mEAAmE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE;KACjE,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;;;CAIb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YAC5B,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE;SACxC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,oDAAoD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;YACvC,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;SACrC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,iEAAiE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YAC5B,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;SAChD;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wDAAwD,EAAE,CAAC,CAAC,EAAE,EAAE;IACnE,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE;YACF,IAAI,EAAE,CAAC;YACP,YAAY,EAAE,CAAC;SAChB;KACK,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;KACC,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,CAAC;KACD,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,CAAC,CAAC,CAAC;KACH,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;KACR,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;KACX,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KACb,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;KACtB,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,EAAE,EAAE;KACxD,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE;KACrB,CAAC,EACT,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAExE,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAAC;QAC5B,EAAE,EAAE;YACF,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC;aACZ;YACD,YAAY,EAAE;gBACZ,QAAQ,EAAE,CAAC;aACZ;SACF;KACK,CAAC,EACT,EAAE,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uFAAuF,EAAE,CAAC,CAAC,EAAE,EAAE;IAClG,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;;;;;CAMb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gEAAgE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;YACjC,YAAY,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE;SAC5C;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2EAA2E,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE;YACF,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;YACrC,YAAY,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;SACxC;KACF,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IAEhC,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC;QAC3C,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;QAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,EAAE,EAAE;KAC5D,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,CAAC;QAC/C,WAAW,CAAC,cAAc,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,0CAA0C,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IAClE,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,CAAC;QAC/C,WAAW,CAAC,cAAc,CAAC,iBAAiB;QAC5C,WAAW,CAAC,cAAc,CAAC,cAAc;KAC1C,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,4CAA4C,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEpD,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC;QAC9C,WAAW,CAAC,cAAc,CAAC,iBAAiB;QAC5C,WAAW,CAAC,cAAc,CAAC,cAAc;KAC1C,CAAC,CAAC;IAEH,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;IACzD,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAChC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,IAAI,CACJ,WAAW,CAAC,iBAAiB,CAC3B,oBAAoB,EACpB,4BAA4B,CAC7B,CACF,CAAC;IACF,CAAC,CAAC,KAAK,CACL,WAAW,CAAC,iBAAiB,CAC3B,4BAA4B,EAC5B,oBAAoB,CACrB,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;;;;;;CAOb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;;;;;;;CAQb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4EAA4E,EAAE,CAAC,CAAC,EAAE,EAAE;IACvF,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;IAEhC,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2EAA2E,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;IAEjC,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wCAAwC,EAAE,CAAC,CAAC,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAC1C,IAAI,CAAC,IAAI,CAAC;;CAEb,CAAyB,CACvB,CAAC;IAEF,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,+CAA+C,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1D,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAC3B,IAAI,CAAC,IAAI,CAAC;;;CAGjB,CAAyB,CACnB,EACD,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAC3B,IAAI,CAAC,IAAI,CAAC;;;CAGjB,CAAyB,CACnB,EACD,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAC3B,IAAI,CAAC,IAAI,CAAC;;;;CAIjB,CAAyB,CACnB,EACD,EAAE,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gFAAgF,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3F,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAC3B,IAAI,CAAC,IAAI,CAAC;;;;;CAKjB,CAAyB,CACnB,EACD,EAAE,CACH,CACF,CAAC;IAEF,CAAC,CAAC,SAAS,CACT,GAAG,UAAU,CACX,WAAW,CAAC,iBAAiB,CAC3B,IAAI,CAAC,IAAI,CAAC;;;CAGjB,CAAyB,CACnB,EACD,EAAE,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE;IAClC,IAAA,4BAAqB,EAAC,WAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,SAAS,CAAC,IAAA,cAAO,GAAE,EAAE,WAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAExD,IAAA,4BAAqB,EAAC,WAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,SAAS,CAAC,IAAA,cAAO,GAAE,EAAE,WAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7C,MAAM,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChC,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CACd,OAAO,EACP,IAAI,CAAC,SAAS,CAAC;YACb,UAAU,EAAE;gBACV,cAAc,EAAE,MAAM;aACvB;SACF,CAAC,CACH,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;QACnC,CAAC,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;QAC9C,CAAC,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,wBAAwB,EAAE,EAAE,IAAI,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,wBAAwB,EAAE,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index 529cfb246..38d687886 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const actionsUtil = __importStar(require("./actions-util")); const config_utils_1 = require("./config-utils"); +const debugArtifacts = __importStar(require("./debug-artifacts")); const logging_1 = require("./logging"); async function run(uploadSarifDebugArtifact) { const logger = (0, logging_1.getActionsLogger)(); @@ -42,7 +43,7 @@ async function run(uploadSarifDebugArtifact) { } async function runWrapper() { try { - await run(actionsUtil.uploadSarifDebugArtifact); + await run(debugArtifacts.uploadSarifDebugArtifact); } catch (error) { core.setFailed(`analyze action cleanup failed: ${error}`); diff --git a/lib/analyze-action-post.js.map b/lib/analyze-action-post.js.map index 12707b9d5..8b17935db 100644 --- a/lib/analyze-action-post.js.map +++ b/lib/analyze-action-post.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze-action-post.js","sourceRoot":"","sources":["../src/analyze-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAAC,wBAAkC;IACnD,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,+CAA+C;IAC/C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KACnD;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;KACjD;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"analyze-action-post.js","sourceRoot":"","sources":["../src/analyze-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,kEAAoD;AACpD,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAAC,wBAAkC;IACnD,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,+CAA+C;IAC/C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KACnD;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;KACpD;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/lib/debug-artifacts.js b/lib/debug-artifacts.js new file mode 100644 index 000000000..18c507ffd --- /dev/null +++ b/lib/debug-artifacts.js @@ -0,0 +1,163 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.uploadDatabaseBundleDebugArtifact = exports.uploadLogsDebugArtifact = exports.uploadFinalLogsDebugArtifact = exports.uploadSarifDebugArtifact = exports.uploadDebugArtifacts = exports.sanitizeArifactName = void 0; +const fs = __importStar(require("fs")); +const path = __importStar(require("path")); +const artifact = __importStar(require("@actions/artifact")); +const core = __importStar(require("@actions/core")); +const adm_zip_1 = __importDefault(require("adm-zip")); +const del_1 = __importDefault(require("del")); +const actions_util_1 = require("./actions-util"); +const analyze_1 = require("./analyze"); +const codeql_1 = require("./codeql"); +const util_1 = require("./util"); +function sanitizeArifactName(name) { + return name.replace(/[^a-zA-Z0-9_\\-]+/g, ""); +} +exports.sanitizeArifactName = sanitizeArifactName; +async function uploadDebugArtifacts(toUpload, rootDir, artifactName) { + if (toUpload.length === 0) { + return; + } + let suffix = ""; + const matrix = (0, actions_util_1.getRequiredInput)("matrix"); + if (matrix) { + try { + for (const [, matrixVal] of Object.entries(JSON.parse(matrix)).sort()) + suffix += `-${matrixVal}`; + } + catch (e) { + core.info("Could not parse user-specified `matrix` input into JSON. The debug artifact will not be named with the user's `matrix` input."); + } + } + await artifact.create().uploadArtifact(sanitizeArifactName(`${artifactName}${suffix}`), toUpload.map((file) => path.normalize(file)), path.normalize(rootDir)); +} +exports.uploadDebugArtifacts = uploadDebugArtifacts; +async function uploadSarifDebugArtifact(config, outputDir) { + if (!(0, util_1.doesDirectoryExist)(outputDir)) { + return; + } + let toUpload = []; + for (const lang of config.languages) { + const sarifFile = path.resolve(outputDir, `${lang}.sarif`); + if (fs.existsSync(sarifFile)) { + toUpload = toUpload.concat(sarifFile); + } + } + await uploadDebugArtifacts(toUpload, outputDir, config.debugArtifactName); +} +exports.uploadSarifDebugArtifact = uploadSarifDebugArtifact; +async function uploadFinalLogsDebugArtifact(config) { + core.info("Debug mode is on. Printing CodeQL debug logs..."); + for (const language of config.languages) { + const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); + const logsDirectory = path.join(databaseDirectory, "log"); + if (!(0, util_1.doesDirectoryExist)(logsDirectory)) { + core.info(`Directory ${logsDirectory} does not exist.`); + continue; // Skip this language database. + } + const walkLogFiles = (dir) => { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + if (entries.length === 0) { + core.info(`No debug logs found at directory ${logsDirectory}.`); + } + for (const entry of entries) { + if (entry.isFile()) { + core.startGroup(`CodeQL Debug Logs - ${language} - ${entry.name}`); + process.stdout.write(fs.readFileSync(path.resolve(dir, entry.name))); + core.endGroup(); + } + else if (entry.isDirectory()) { + walkLogFiles(path.resolve(dir, entry.name)); + } + } + }; + walkLogFiles(logsDirectory); + } +} +exports.uploadFinalLogsDebugArtifact = uploadFinalLogsDebugArtifact; +async function uploadLogsDebugArtifact(config) { + const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd); + let toUpload = []; + for (const language of config.languages) { + const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); + const logsDirectory = path.resolve(databaseDirectory, "log"); + if ((0, util_1.doesDirectoryExist)(logsDirectory)) { + toUpload = toUpload.concat((0, util_1.listFolder)(logsDirectory)); + } + } + if (await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_NEW_TRACING)) { + // Multilanguage tracing: there are additional logs in the root of the cluster + const multiLanguageTracingLogsDirectory = path.resolve(config.dbLocation, "log"); + if ((0, util_1.doesDirectoryExist)(multiLanguageTracingLogsDirectory)) { + toUpload = toUpload.concat((0, util_1.listFolder)(multiLanguageTracingLogsDirectory)); + } + } + await uploadDebugArtifacts(toUpload, config.dbLocation, config.debugArtifactName); + // Before multi-language tracing, we wrote a compound-build-tracer.log in the temp dir + if (!(await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_NEW_TRACING))) { + const compoundBuildTracerLogDirectory = path.resolve(config.tempDir, "compound-build-tracer.log"); + if ((0, util_1.doesDirectoryExist)(compoundBuildTracerLogDirectory)) { + await uploadDebugArtifacts([compoundBuildTracerLogDirectory], config.tempDir, config.debugArtifactName); + } + } +} +exports.uploadLogsDebugArtifact = uploadLogsDebugArtifact; +/** + * If a database has not been finalized, we cannot run the `codeql database bundle` + * command in the CLI because it will return an error. Instead we directly zip + * all files in the database folder and upload it as an artifact. + */ +async function uploadPartialDatabaseBundle(config, language) { + const databasePath = (0, util_1.getCodeQLDatabasePath)(config, language); + const databaseBundlePath = path.resolve(config.dbLocation, `${config.debugDatabaseName}-${language}-partial.zip`); + core.info(`${config.debugDatabaseName}-${language} is not finalized. Uploading partial database bundle at ${databaseBundlePath}...`); + // See `bundleDb` for explanation behind deleting existing db bundle. + if (fs.existsSync(databaseBundlePath)) { + await (0, del_1.default)(databaseBundlePath, { force: true }); + } + const zip = new adm_zip_1.default(); + zip.addLocalFolder(databasePath); + zip.writeZip(databaseBundlePath); + await uploadDebugArtifacts([databaseBundlePath], config.dbLocation, config.debugArtifactName); +} +async function uploadDatabaseBundleDebugArtifact(config, logger) { + for (const language of config.languages) { + if (!(0, analyze_1.dbIsFinalized)(config, language, logger)) { + await uploadPartialDatabaseBundle(config, language); + continue; + } + try { + // Otherwise run `codeql database bundle` command. + const bundlePath = await (0, util_1.bundleDb)(config, language, await (0, codeql_1.getCodeQL)(config.codeQLCmd), `${config.debugDatabaseName}-${language}`); + await uploadDebugArtifacts([bundlePath], config.dbLocation, config.debugArtifactName); + } + catch (error) { + core.info(`Failed to upload database debug bundles for ${config.debugDatabaseName}-${language}: ${error}`); + } + } +} +exports.uploadDatabaseBundleDebugArtifact = uploadDatabaseBundleDebugArtifact; +//# sourceMappingURL=debug-artifacts.js.map \ No newline at end of file diff --git a/lib/debug-artifacts.js.map b/lib/debug-artifacts.js.map new file mode 100644 index 000000000..430642959 --- /dev/null +++ b/lib/debug-artifacts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debug-artifacts.js","sourceRoot":"","sources":["../src/debug-artifacts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,4DAA8C;AAC9C,oDAAsC;AACtC,sDAA6B;AAC7B,8CAAsB;AAEtB,iDAAkD;AAClD,uCAA0C;AAC1C,qCAAiE;AAIjE,iCAMgB;AAEhB,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAFD,kDAEC;AAEM,KAAK,UAAU,oBAAoB,CACxC,QAAkB,EAClB,OAAe,EACf,YAAoB;IAEpB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO;KACR;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,IAAA,+BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE;QACV,IAAI;YACF,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;gBACnE,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,CACP,+HAA+H,CAChI,CAAC;SACH;KACF;IACD,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,cAAc,CACpC,mBAAmB,CAAC,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC,EAC/C,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;AACJ,CAAC;AAzBD,oDAyBC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,MAAc,EACd,SAAiB;IAEjB,IAAI,CAAC,IAAA,yBAAkB,EAAC,SAAS,CAAC,EAAE;QAClC,OAAO;KACR;IAED,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC5B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACvC;KACF;IACD,MAAM,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5E,CAAC;AAhBD,4DAgBC;AAEM,KAAK,UAAU,4BAA4B,CAAC,MAAc;IAC/D,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC7D,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;QACvC,MAAM,iBAAiB,GAAG,IAAA,4BAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAA,yBAAkB,EAAC,aAAa,CAAC,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,aAAa,kBAAkB,CAAC,CAAC;YACxD,SAAS,CAAC,+BAA+B;SAC1C;QAED,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,oCAAoC,aAAa,GAAG,CAAC,CAAC;aACjE;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;oBAClB,IAAI,CAAC,UAAU,CAAC,uBAAuB,QAAQ,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;iBACjB;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;oBAC9B,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC7C;aACF;QACH,CAAC,CAAC;QACF,YAAY,CAAC,aAAa,CAAC,CAAC;KAC7B;AACH,CAAC;AA3BD,oEA2BC;AAEM,KAAK,UAAU,uBAAuB,CAAC,MAAc;IAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;QACvC,MAAM,iBAAiB,GAAG,IAAA,4BAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC7D,IAAI,IAAA,yBAAkB,EAAC,aAAa,CAAC,EAAE;YACrC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAA,iBAAU,EAAC,aAAa,CAAC,CAAC,CAAC;SACvD;KACF;IAED,IAAI,MAAM,IAAA,yBAAkB,EAAC,MAAM,EAAE,mCAA0B,CAAC,EAAE;QAChE,8EAA8E;QAC9E,MAAM,iCAAiC,GAAG,IAAI,CAAC,OAAO,CACpD,MAAM,CAAC,UAAU,EACjB,KAAK,CACN,CAAC;QACF,IAAI,IAAA,yBAAkB,EAAC,iCAAiC,CAAC,EAAE;YACzD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAA,iBAAU,EAAC,iCAAiC,CAAC,CAAC,CAAC;SAC3E;KACF;IACD,MAAM,oBAAoB,CACxB,QAAQ,EACR,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,iBAAiB,CACzB,CAAC;IAEF,sFAAsF;IACtF,IAAI,CAAC,CAAC,MAAM,IAAA,yBAAkB,EAAC,MAAM,EAAE,mCAA0B,CAAC,CAAC,EAAE;QACnE,MAAM,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAClD,MAAM,CAAC,OAAO,EACd,2BAA2B,CAC5B,CAAC;QACF,IAAI,IAAA,yBAAkB,EAAC,+BAA+B,CAAC,EAAE;YACvD,MAAM,oBAAoB,CACxB,CAAC,+BAA+B,CAAC,EACjC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,iBAAiB,CACzB,CAAC;SACH;KACF;AACH,CAAC;AA1CD,0DA0CC;AAED;;;;GAIG;AACH,KAAK,UAAU,2BAA2B,CAAC,MAAc,EAAE,QAAkB;IAC3E,MAAM,YAAY,GAAG,IAAA,4BAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CACrC,MAAM,CAAC,UAAU,EACjB,GAAG,MAAM,CAAC,iBAAiB,IAAI,QAAQ,cAAc,CACtD,CAAC;IACF,IAAI,CAAC,IAAI,CACP,GAAG,MAAM,CAAC,iBAAiB,IAAI,QAAQ,2DAA2D,kBAAkB,KAAK,CAC1H,CAAC;IACF,qEAAqE;IACrE,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;QACrC,MAAM,IAAA,aAAG,EAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KAChD;IACD,MAAM,GAAG,GAAG,IAAI,iBAAM,EAAE,CAAC;IACzB,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACjC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACjC,MAAM,oBAAoB,CACxB,CAAC,kBAAkB,CAAC,EACpB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,iBAAiB,CACzB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,iCAAiC,CACrD,MAAc,EACd,MAAc;IAEd,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;QACvC,IAAI,CAAC,IAAA,uBAAa,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC5C,MAAM,2BAA2B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpD,SAAS;SACV;QACD,IAAI;YACF,kDAAkD;YAClD,MAAM,UAAU,GAAG,MAAM,IAAA,eAAQ,EAC/B,MAAM,EACN,QAAQ,EACR,MAAM,IAAA,kBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,EACjC,GAAG,MAAM,CAAC,iBAAiB,IAAI,QAAQ,EAAE,CAC1C,CAAC;YACF,MAAM,oBAAoB,CACxB,CAAC,UAAU,CAAC,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,iBAAiB,CACzB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,IAAI,CACP,+CAA+C,MAAM,CAAC,iBAAiB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAChG,CAAC;SACH;KACF;AACH,CAAC;AA5BD,8EA4BC"} \ No newline at end of file diff --git a/lib/debug-artifacts.test.js b/lib/debug-artifacts.test.js new file mode 100644 index 000000000..c70df2692 --- /dev/null +++ b/lib/debug-artifacts.test.js @@ -0,0 +1,34 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ava_1 = __importDefault(require("ava")); +const debugArtifacts = __importStar(require("./debug-artifacts")); +(0, ava_1.default)("sanitizeArifactName", (t) => { + t.deepEqual(debugArtifacts.sanitizeArifactName("hello-world_"), "hello-world_"); + t.deepEqual(debugArtifacts.sanitizeArifactName("hello`world`"), "helloworld"); + t.deepEqual(debugArtifacts.sanitizeArifactName("hello===123"), "hello123"); + t.deepEqual(debugArtifacts.sanitizeArifactName("*m)a&n^y%i££n+v!a:l[i]d"), "manyinvalid"); +}); +// TODO(angelapwen): Test uploadDebugArtifacts if toUpload is empty +//# sourceMappingURL=debug-artifacts.test.js.map \ No newline at end of file diff --git a/lib/debug-artifacts.test.js.map b/lib/debug-artifacts.test.js.map new file mode 100644 index 000000000..20e4c6d10 --- /dev/null +++ b/lib/debug-artifacts.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"debug-artifacts.test.js","sourceRoot":"","sources":["../src/debug-artifacts.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAEvB,kEAAoD;AAEpD,IAAA,aAAI,EAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE;IAChC,CAAC,CAAC,SAAS,CACT,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAClD,cAAc,CACf,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC,CAAC,SAAS,CACT,cAAc,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,EAC7D,aAAa,CACd,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mEAAmE"} \ No newline at end of file diff --git a/lib/init-action-post.js b/lib/init-action-post.js index e6a3e1dd2..4e204dde5 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -27,6 +27,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const actionsUtil = __importStar(require("./actions-util")); const config_utils_1 = require("./config-utils"); +const debugArtifacts = __importStar(require("./debug-artifacts")); const logging_1 = require("./logging"); async function run(uploadDatabaseBundleDebugArtifact, uploadLogsDebugArtifact, uploadFinalLogsDebugArtifact) { const logger = (0, logging_1.getActionsLogger)(); @@ -43,7 +44,7 @@ async function run(uploadDatabaseBundleDebugArtifact, uploadLogsDebugArtifact, u } async function runWrapper() { try { - await run(actionsUtil.uploadDatabaseBundleDebugArtifact, actionsUtil.uploadLogsDebugArtifact, actionsUtil.uploadFinalLogsDebugArtifact); + await run(debugArtifacts.uploadDatabaseBundleDebugArtifact, debugArtifacts.uploadLogsDebugArtifact, debugArtifacts.uploadFinalLogsDebugArtifact); } catch (error) { core.setFailed(`init action cleanup failed: ${error}`); diff --git a/lib/init-action-post.js.map b/lib/init-action-post.js.map index d98fc42df..5b9b0c11a 100644 --- a/lib/init-action-post.js.map +++ b/lib/init-action-post.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAChB,iCAA2C,EAC3C,uBAAiC,EACjC,4BAAsC;IAEtC,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,qDAAqD;IACrD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,MAAM,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;KAC5C;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CACP,WAAW,CAAC,iCAAiC,EAC7C,WAAW,CAAC,uBAAuB,EACnC,WAAW,CAAC,4BAA4B,CACzC,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAA2C;AAC3C,kEAAoD;AACpD,uCAA6C;AAE7C,KAAK,UAAU,GAAG,CAChB,iCAA2C,EAC3C,uBAAiC,EACjC,4BAAsC;IAEtC,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;KACH;IAED,qDAAqD;IACrD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE;QACrB,MAAM,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,4BAA4B,CAAC,MAAM,CAAC,CAAC;KAC5C;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI;QACF,MAAM,GAAG,CACP,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,cAAc,CAAC,4BAA4B,CAC5C,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACpB;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/src/actions-util.test.ts b/src/actions-util.test.ts index 36f447ff2..710b715f9 100644 --- a/src/actions-util.test.ts +++ b/src/actions-util.test.ts @@ -753,15 +753,3 @@ test("isAnalyzingDefaultBranch()", async (t) => { t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false); }); }); - -test("sanitizeArifactName", (t) => { - t.deepEqual(actionsutil.sanitizeArifactName("hello-world_"), "hello-world_"); - t.deepEqual(actionsutil.sanitizeArifactName("hello`world`"), "helloworld"); - t.deepEqual(actionsutil.sanitizeArifactName("hello===123"), "hello123"); - t.deepEqual( - actionsutil.sanitizeArifactName("*m)a&n^y%i££n+v!a:l[i]d"), - "manyinvalid" - ); -}); - -// TODO(angelapwen): Test uploadDebugArtifacts if toUpload is empty diff --git a/src/actions-util.ts b/src/actions-util.ts index dbdddb5c0..01ecbebc3 100644 --- a/src/actions-util.ts +++ b/src/actions-util.ts @@ -2,35 +2,22 @@ import * as fs from "fs"; import * as os from "os"; import * as path from "path"; -import * as artifact from "@actions/artifact"; import * as core from "@actions/core"; import * as toolrunner from "@actions/exec/lib/toolrunner"; import * as safeWhich from "@chrisgavin/safe-which"; -import AdmZip from "adm-zip"; -import del from "del"; import * as yaml from "js-yaml"; -import { dbIsFinalized } from "./analyze"; import * as api from "./api-client"; -import { CODEQL_VERSION_NEW_TRACING, getCodeQL } from "./codeql"; -import { Config } from "./config-utils"; -import { Logger } from "./logging"; import * as sharedEnv from "./shared-environment"; import { - bundleDb, - codeQlVersionAbove, - doesDirectoryExist, getCachedCodeQlVersion, - getCodeQLDatabasePath, getRequiredEnvParam, GITHUB_DOTCOM_URL, isGitHubGhesVersionBelow, isHTTPError, isInTestMode, - listFolder, UserError, } from "./util"; -import { Language } from "./languages"; // eslint-disable-next-line import/no-commonjs const pkg = require("../package.json"); @@ -883,184 +870,4 @@ export async function isAnalyzingDefaultBranch(): Promise { const defaultBranch = event?.repository?.default_branch; return currentRef === defaultBranch; -} - -export function sanitizeArifactName(name: string): string { - return name.replace(/[^a-zA-Z0-9_\\-]+/g, ""); -} - -export async function uploadDebugArtifacts( - toUpload: string[], - rootDir: string, - artifactName: string -) { - if (toUpload.length === 0) { - return; - } - let suffix = ""; - const matrix = getRequiredInput("matrix"); - if (matrix) { - try { - for (const [, matrixVal] of Object.entries(JSON.parse(matrix)).sort()) - suffix += `-${matrixVal}`; - } catch (e) { - core.info( - "Could not parse user-specified `matrix` input into JSON. The debug artifact will not be named with the user's `matrix` input." - ); - } - } - await artifact.create().uploadArtifact( - sanitizeArifactName(`${artifactName}${suffix}`), - toUpload.map((file) => path.normalize(file)), - path.normalize(rootDir) - ); -} - -export async function uploadSarifDebugArtifact( - config: Config, - outputDir: string -) { - if (!doesDirectoryExist(outputDir)) { - return; - } - - let toUpload: string[] = []; - for (const lang of config.languages) { - const sarifFile = path.resolve(outputDir, `${lang}.sarif`); - if (fs.existsSync(sarifFile)) { - toUpload = toUpload.concat(sarifFile); - } - } - await uploadDebugArtifacts(toUpload, outputDir, config.debugArtifactName); -} - -export async function uploadFinalLogsDebugArtifact(config: Config) { - core.info("Debug mode is on. Printing CodeQL debug logs..."); - for (const language of config.languages) { - const databaseDirectory = getCodeQLDatabasePath(config, language); - const logsDirectory = path.join(databaseDirectory, "log"); - if (!doesDirectoryExist(logsDirectory)) { - core.info(`Directory ${logsDirectory} does not exist.`); - continue; // Skip this language database. - } - - const walkLogFiles = (dir: string) => { - const entries = fs.readdirSync(dir, { withFileTypes: true }); - if (entries.length === 0) { - core.info(`No debug logs found at directory ${logsDirectory}.`); - } - for (const entry of entries) { - if (entry.isFile()) { - core.startGroup(`CodeQL Debug Logs - ${language} - ${entry.name}`); - process.stdout.write(fs.readFileSync(path.resolve(dir, entry.name))); - core.endGroup(); - } else if (entry.isDirectory()) { - walkLogFiles(path.resolve(dir, entry.name)); - } - } - }; - walkLogFiles(logsDirectory); - } -} - -export async function uploadLogsDebugArtifact(config: Config) { - const codeql = await getCodeQL(config.codeQLCmd); - - let toUpload: string[] = []; - for (const language of config.languages) { - const databaseDirectory = getCodeQLDatabasePath(config, language); - const logsDirectory = path.resolve(databaseDirectory, "log"); - if (doesDirectoryExist(logsDirectory)) { - toUpload = toUpload.concat(listFolder(logsDirectory)); - } - } - - if (await codeQlVersionAbove(codeql, CODEQL_VERSION_NEW_TRACING)) { - // Multilanguage tracing: there are additional logs in the root of the cluster - const multiLanguageTracingLogsDirectory = path.resolve( - config.dbLocation, - "log" - ); - if (doesDirectoryExist(multiLanguageTracingLogsDirectory)) { - toUpload = toUpload.concat(listFolder(multiLanguageTracingLogsDirectory)); - } - } - await uploadDebugArtifacts( - toUpload, - config.dbLocation, - config.debugArtifactName - ); - - // Before multi-language tracing, we wrote a compound-build-tracer.log in the temp dir - if (!(await codeQlVersionAbove(codeql, CODEQL_VERSION_NEW_TRACING))) { - const compoundBuildTracerLogDirectory = path.resolve( - config.tempDir, - "compound-build-tracer.log" - ); - if (doesDirectoryExist(compoundBuildTracerLogDirectory)) { - await uploadDebugArtifacts( - [compoundBuildTracerLogDirectory], - config.tempDir, - config.debugArtifactName - ); - } - } -} - -/** - * If a database has not been finalized, we cannot run the `codeql database bundle` - * command in the CLI because it will return an error. Instead we directly zip - * all files in the database folder and upload it as an artifact. - */ -async function uploadPartialDatabaseBundle(config: Config, language: Language) { - const databasePath = getCodeQLDatabasePath(config, language); - const databaseBundlePath = path.resolve( - config.dbLocation, - `${config.debugDatabaseName}-${language}-partial.zip` - ); - core.info( - `${config.debugDatabaseName}-${language} is not finalized. Uploading partial database bundle at ${databaseBundlePath}...` - ); - // See `bundleDb` for explanation behind deleting existing db bundle. - if (fs.existsSync(databaseBundlePath)) { - await del(databaseBundlePath, { force: true }); - } - const zip = new AdmZip(); - zip.addLocalFolder(databasePath); - zip.writeZip(databaseBundlePath); - await uploadDebugArtifacts( - [databaseBundlePath], - config.dbLocation, - config.debugArtifactName - ); -} - -export async function uploadDatabaseBundleDebugArtifact( - config: Config, - logger: Logger -) { - for (const language of config.languages) { - if (!dbIsFinalized(config, language, logger)) { - await uploadPartialDatabaseBundle(config, language); - continue; - } - try { - // Otherwise run `codeql database bundle` command. - const bundlePath = await bundleDb( - config, - language, - await getCodeQL(config.codeQLCmd), - `${config.debugDatabaseName}-${language}` - ); - await uploadDebugArtifacts( - [bundlePath], - config.dbLocation, - config.debugArtifactName - ); - } catch (error) { - core.info( - `Failed to upload database debug bundles for ${config.debugDatabaseName}-${language}: ${error}` - ); - } - } -} +} \ No newline at end of file diff --git a/src/analyze-action-post.ts b/src/analyze-action-post.ts index 453cf16d6..fc2175ee5 100644 --- a/src/analyze-action-post.ts +++ b/src/analyze-action-post.ts @@ -7,6 +7,7 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { getConfig } from "./config-utils"; +import * as debugArtifacts from "./debug-artifacts"; import { getActionsLogger } from "./logging"; async function run(uploadSarifDebugArtifact: Function) { @@ -28,7 +29,7 @@ async function run(uploadSarifDebugArtifact: Function) { async function runWrapper() { try { - await run(actionsUtil.uploadSarifDebugArtifact); + await run(debugArtifacts.uploadSarifDebugArtifact); } catch (error) { core.setFailed(`analyze action cleanup failed: ${error}`); console.log(error); diff --git a/src/debug-artifacts.test.ts b/src/debug-artifacts.test.ts new file mode 100644 index 000000000..ac6527e6b --- /dev/null +++ b/src/debug-artifacts.test.ts @@ -0,0 +1,18 @@ +import test from "ava"; + +import * as debugArtifacts from "./debug-artifacts"; + +test("sanitizeArifactName", (t) => { + t.deepEqual( + debugArtifacts.sanitizeArifactName("hello-world_"), + "hello-world_" + ); + t.deepEqual(debugArtifacts.sanitizeArifactName("hello`world`"), "helloworld"); + t.deepEqual(debugArtifacts.sanitizeArifactName("hello===123"), "hello123"); + t.deepEqual( + debugArtifacts.sanitizeArifactName("*m)a&n^y%i££n+v!a:l[i]d"), + "manyinvalid" + ); +}); + +// TODO(angelapwen): Test uploadDebugArtifacts if toUpload is empty diff --git a/src/debug-artifacts.ts b/src/debug-artifacts.ts new file mode 100644 index 000000000..74fe7f472 --- /dev/null +++ b/src/debug-artifacts.ts @@ -0,0 +1,201 @@ +import * as fs from "fs"; +import * as path from "path"; + +import * as artifact from "@actions/artifact"; +import * as core from "@actions/core"; +import AdmZip from "adm-zip"; +import del from "del"; + +import { getRequiredInput } from "./actions-util"; +import { dbIsFinalized } from "./analyze"; +import { CODEQL_VERSION_NEW_TRACING, getCodeQL } from "./codeql"; +import { Config } from "./config-utils"; +import { Language } from "./languages"; +import { Logger } from "./logging"; +import { + bundleDb, + codeQlVersionAbove, + doesDirectoryExist, + getCodeQLDatabasePath, + listFolder, +} from "./util"; + +export function sanitizeArifactName(name: string): string { + return name.replace(/[^a-zA-Z0-9_\\-]+/g, ""); +} + +export async function uploadDebugArtifacts( + toUpload: string[], + rootDir: string, + artifactName: string +) { + if (toUpload.length === 0) { + return; + } + let suffix = ""; + const matrix = getRequiredInput("matrix"); + if (matrix) { + try { + for (const [, matrixVal] of Object.entries(JSON.parse(matrix)).sort()) + suffix += `-${matrixVal}`; + } catch (e) { + core.info( + "Could not parse user-specified `matrix` input into JSON. The debug artifact will not be named with the user's `matrix` input." + ); + } + } + await artifact.create().uploadArtifact( + sanitizeArifactName(`${artifactName}${suffix}`), + toUpload.map((file) => path.normalize(file)), + path.normalize(rootDir) + ); +} + +export async function uploadSarifDebugArtifact( + config: Config, + outputDir: string +) { + if (!doesDirectoryExist(outputDir)) { + return; + } + + let toUpload: string[] = []; + for (const lang of config.languages) { + const sarifFile = path.resolve(outputDir, `${lang}.sarif`); + if (fs.existsSync(sarifFile)) { + toUpload = toUpload.concat(sarifFile); + } + } + await uploadDebugArtifacts(toUpload, outputDir, config.debugArtifactName); +} + +export async function uploadFinalLogsDebugArtifact(config: Config) { + core.info("Debug mode is on. Printing CodeQL debug logs..."); + for (const language of config.languages) { + const databaseDirectory = getCodeQLDatabasePath(config, language); + const logsDirectory = path.join(databaseDirectory, "log"); + if (!doesDirectoryExist(logsDirectory)) { + core.info(`Directory ${logsDirectory} does not exist.`); + continue; // Skip this language database. + } + + const walkLogFiles = (dir: string) => { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + if (entries.length === 0) { + core.info(`No debug logs found at directory ${logsDirectory}.`); + } + for (const entry of entries) { + if (entry.isFile()) { + core.startGroup(`CodeQL Debug Logs - ${language} - ${entry.name}`); + process.stdout.write(fs.readFileSync(path.resolve(dir, entry.name))); + core.endGroup(); + } else if (entry.isDirectory()) { + walkLogFiles(path.resolve(dir, entry.name)); + } + } + }; + walkLogFiles(logsDirectory); + } +} + +export async function uploadLogsDebugArtifact(config: Config) { + const codeql = await getCodeQL(config.codeQLCmd); + + let toUpload: string[] = []; + for (const language of config.languages) { + const databaseDirectory = getCodeQLDatabasePath(config, language); + const logsDirectory = path.resolve(databaseDirectory, "log"); + if (doesDirectoryExist(logsDirectory)) { + toUpload = toUpload.concat(listFolder(logsDirectory)); + } + } + + if (await codeQlVersionAbove(codeql, CODEQL_VERSION_NEW_TRACING)) { + // Multilanguage tracing: there are additional logs in the root of the cluster + const multiLanguageTracingLogsDirectory = path.resolve( + config.dbLocation, + "log" + ); + if (doesDirectoryExist(multiLanguageTracingLogsDirectory)) { + toUpload = toUpload.concat(listFolder(multiLanguageTracingLogsDirectory)); + } + } + await uploadDebugArtifacts( + toUpload, + config.dbLocation, + config.debugArtifactName + ); + + // Before multi-language tracing, we wrote a compound-build-tracer.log in the temp dir + if (!(await codeQlVersionAbove(codeql, CODEQL_VERSION_NEW_TRACING))) { + const compoundBuildTracerLogDirectory = path.resolve( + config.tempDir, + "compound-build-tracer.log" + ); + if (doesDirectoryExist(compoundBuildTracerLogDirectory)) { + await uploadDebugArtifacts( + [compoundBuildTracerLogDirectory], + config.tempDir, + config.debugArtifactName + ); + } + } +} + +/** + * If a database has not been finalized, we cannot run the `codeql database bundle` + * command in the CLI because it will return an error. Instead we directly zip + * all files in the database folder and upload it as an artifact. + */ +async function uploadPartialDatabaseBundle(config: Config, language: Language) { + const databasePath = getCodeQLDatabasePath(config, language); + const databaseBundlePath = path.resolve( + config.dbLocation, + `${config.debugDatabaseName}-${language}-partial.zip` + ); + core.info( + `${config.debugDatabaseName}-${language} is not finalized. Uploading partial database bundle at ${databaseBundlePath}...` + ); + // See `bundleDb` for explanation behind deleting existing db bundle. + if (fs.existsSync(databaseBundlePath)) { + await del(databaseBundlePath, { force: true }); + } + const zip = new AdmZip(); + zip.addLocalFolder(databasePath); + zip.writeZip(databaseBundlePath); + await uploadDebugArtifacts( + [databaseBundlePath], + config.dbLocation, + config.debugArtifactName + ); +} + +export async function uploadDatabaseBundleDebugArtifact( + config: Config, + logger: Logger +) { + for (const language of config.languages) { + if (!dbIsFinalized(config, language, logger)) { + await uploadPartialDatabaseBundle(config, language); + continue; + } + try { + // Otherwise run `codeql database bundle` command. + const bundlePath = await bundleDb( + config, + language, + await getCodeQL(config.codeQLCmd), + `${config.debugDatabaseName}-${language}` + ); + await uploadDebugArtifacts( + [bundlePath], + config.dbLocation, + config.debugArtifactName + ); + } catch (error) { + core.info( + `Failed to upload database debug bundles for ${config.debugDatabaseName}-${language}: ${error}` + ); + } + } +} diff --git a/src/init-action-post.ts b/src/init-action-post.ts index 0620f79e9..d8d3b9140 100644 --- a/src/init-action-post.ts +++ b/src/init-action-post.ts @@ -8,6 +8,7 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { getConfig } from "./config-utils"; +import * as debugArtifacts from "./debug-artifacts"; import { getActionsLogger } from "./logging"; async function run( @@ -35,9 +36,9 @@ async function run( async function runWrapper() { try { await run( - actionsUtil.uploadDatabaseBundleDebugArtifact, - actionsUtil.uploadLogsDebugArtifact, - actionsUtil.uploadFinalLogsDebugArtifact + debugArtifacts.uploadDatabaseBundleDebugArtifact, + debugArtifacts.uploadLogsDebugArtifact, + debugArtifacts.uploadFinalLogsDebugArtifact ); } catch (error) { core.setFailed(`init action cleanup failed: ${error}`);