diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index c9d790f9a1..57043b26ff 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -31,13 +31,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const debugArtifacts = __importStar(require("./debug-artifacts")); const environment_1 = require("./environment"); +const logging_1 = require("./logging"); const util_1 = require("./util"); async function runWrapper() { try { + const logger = (0, logging_1.getActionsLogger)(); // Upload SARIF artifacts if we determine that this is a first-party analysis run. // For third-party runs, this artifact will be uploaded in the `upload-sarif-post` step. if (process.env[environment_1.EnvVar.INIT_ACTION_HAS_RUN] === "true") { - await debugArtifacts.uploadCombinedSarifArtifacts(); + await (0, logging_1.withGroup)("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts(logger)); } } catch (error) { diff --git a/lib/analyze-action-post.js.map b/lib/analyze-action-post.js.map index 2e08953e44..e7a2c10ad6 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,kEAAoD;AACpD,+CAAuC;AACvC,iCAAyC;AAEzC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,kFAAkF;QAClF,wFAAwF;QACxF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,cAAc,CAAC,4BAA4B,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,oCAAoC,IAAA,sBAAe,EAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;IACJ,CAAC;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,kEAAoD;AACpD,+CAAuC;AACvC,uCAAwD;AACxD,iCAAyC;AAEzC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAElC,kFAAkF;QAClF,wFAAwF;QACxF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,IAAA,mBAAS,EAAC,yCAAyC,EAAE,GAAG,EAAE,CAC9D,cAAc,CAAC,4BAA4B,CAAC,MAAM,CAAC,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,oCAAoC,IAAA,sBAAe,EAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;IACJ,CAAC;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 index 4f182750e2..b3669d6267 100644 --- a/lib/debug-artifacts.js +++ b/lib/debug-artifacts.js @@ -40,6 +40,7 @@ const actions_util_1 = require("./actions-util"); const analyze_1 = require("./analyze"); const codeql_1 = require("./codeql"); const environment_1 = require("./environment"); +const logging_1 = require("./logging"); const util_1 = require("./util"); function sanitizeArtifactName(name) { return name.replace(/[^a-zA-Z0-9_\\-]+/g, ""); @@ -48,11 +49,11 @@ function sanitizeArtifactName(name) { * Upload Actions SARIF artifacts for debugging when CODEQL_ACTION_DEBUG_COMBINED_SARIF * environment variable is set */ -async function uploadCombinedSarifArtifacts() { +async function uploadCombinedSarifArtifacts(logger) { const tempDir = (0, actions_util_1.getTemporaryDirectory)(); // Upload Actions SARIF artifacts for debugging when environment variable is set if (process.env["CODEQL_ACTION_DEBUG_COMBINED_SARIF"] === "true") { - core.info("Uploading available combined SARIF files as Actions debugging artifact..."); + logger.info("Uploading available combined SARIF files as Actions debugging artifact..."); const baseTempDir = path.resolve(tempDir, "combined-sarif"); const toUpload = []; if (fs.existsSync(baseTempDir)) { @@ -66,17 +67,20 @@ async function uploadCombinedSarifArtifacts() { } } } - if (toUpload.length > 0) { + try { await uploadDebugArtifacts(toUpload, baseTempDir, "combined-sarif-artifacts"); } + catch (e) { + logger.warning(`Failed to upload combined SARIF files as Actions debugging artifact. Reason: ${(0, util_1.getErrorMessage)(e)}`); + } } } /** - * Try to get the SARIF result path for the given language. + * Try to prepare a SARIF result debug artifact for the given language. * - * If an error occurs, log it and return an empty list. + * @return The path to that debug artifact, or undefined if an error occurs. */ -function tryGetSarifResultPath(config, language, logger) { +function tryPrepareSarifDebugArtifact(config, language, logger) { try { const analyzeActionOutputDir = process.env[environment_1.EnvVar.SARIF_RESULTS_OUTPUT_DIR]; if (analyzeActionOutputDir !== undefined && @@ -87,37 +91,36 @@ function tryGetSarifResultPath(config, language, logger) { if (fs.existsSync(sarifFile)) { const sarifInDbLocation = path.resolve(config.dbLocation, `${language}.sarif`); fs.copyFileSync(sarifFile, sarifInDbLocation); - return [sarifInDbLocation]; + return sarifInDbLocation; } } } catch (e) { logger.warning(`Failed to find SARIF results path for ${language}. Reason: ${(0, util_1.getErrorMessage)(e)}`); } - return []; + return undefined; } /** - * Try to bundle the database for the given language. Return a list containing - * the path to the database bundle. + * Try to bundle the database for the given language. * - * If an error occurs, log it and return an empty list. + * @return The path to the database bundle, or undefined if an error occurs. */ async function tryBundleDatabase(config, language, logger) { try { if ((0, analyze_1.dbIsFinalized)(config, language, logger)) { try { - return [await createDatabaseBundleCli(config, language)]; + return await createDatabaseBundleCli(config, language); } catch (e) { logger.warning(`Failed to bundle database for ${language} using the CLI. ` + `Falling back to a partial bundle. Reason: ${(0, util_1.getErrorMessage)(e)}`); } } - return [await createPartialDatabaseBundle(config, language)]; + return await createPartialDatabaseBundle(config, language); } catch (e) { logger.warning(`Failed to bundle database for ${language}. Reason: ${(0, util_1.getErrorMessage)(e)}`); - return []; + return undefined; } } /** @@ -126,25 +129,46 @@ async function tryBundleDatabase(config, language, logger) { * Logs and suppresses any errors that occur. */ async function tryUploadAllAvailableDebugArtifacts(config, logger) { + const filesToUpload = []; try { - const filesToUpload = []; for (const language of config.languages) { - filesToUpload.push(...tryGetSarifResultPath(config, language, logger)); - // Add any log files - const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); - const logsDirectory = path.resolve(databaseDirectory, "log"); - if ((0, util_1.doesDirectoryExist)(logsDirectory)) { - filesToUpload.push(...(0, util_1.listFolder)(logsDirectory)); - } - // 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)) { - filesToUpload.push(...(0, util_1.listFolder)(multiLanguageTracingLogsDirectory)); - } - // Add database bundle - filesToUpload.push(...(await tryBundleDatabase(config, language, logger))); + await (0, logging_1.withGroup)(`Uploading debug artifacts for ${language}`, async () => { + logger.info("Preparing SARIF result debug artifact..."); + const sarifResultDebugArtifact = tryPrepareSarifDebugArtifact(config, language, logger); + if (sarifResultDebugArtifact) { + filesToUpload.push(sarifResultDebugArtifact); + logger.info("SARIF result debug artifact ready for upload."); + } + logger.info("Preparing database logs debug artifact..."); + const databaseDirectory = (0, util_1.getCodeQLDatabasePath)(config, language); + const logsDirectory = path.resolve(databaseDirectory, "log"); + if ((0, util_1.doesDirectoryExist)(logsDirectory)) { + filesToUpload.push(...(0, util_1.listFolder)(logsDirectory)); + logger.info("Database logs debug artifact ready for upload."); + } + // Multilanguage tracing: there are additional logs in the root of the cluster + logger.info("Preparing database cluster logs debug artifact..."); + const multiLanguageTracingLogsDirectory = path.resolve(config.dbLocation, "log"); + if ((0, util_1.doesDirectoryExist)(multiLanguageTracingLogsDirectory)) { + filesToUpload.push(...(0, util_1.listFolder)(multiLanguageTracingLogsDirectory)); + logger.info("Database cluster logs debug artifact ready for upload."); + } + // Add database bundle + logger.info("Preparing database bundle debug artifact..."); + const databaseBundle = await tryBundleDatabase(config, language, logger); + if (databaseBundle) { + filesToUpload.push(databaseBundle); + logger.info("Database bundle debug artifact ready for upload."); + } + }); } - await uploadDebugArtifacts(filesToUpload, config.dbLocation, config.debugArtifactName); + } + catch (e) { + logger.warning(`Failed to prepare debug artifacts. Reason: ${(0, util_1.getErrorMessage)(e)}`); + return; + } + try { + await (0, logging_1.withGroup)("Uploading debug artifacts", async () => uploadDebugArtifacts(filesToUpload, config.dbLocation, config.debugArtifactName)); } catch (e) { logger.warning(`Failed to upload debug artifacts. Reason: ${(0, util_1.getErrorMessage)(e)}`); @@ -165,17 +189,11 @@ async function uploadDebugArtifacts(toUpload, rootDir, artifactName) { core.info("Could not parse user-specified `matrix` input into JSON. The debug artifact will not be named with the user's `matrix` input."); } } - try { - await artifact.create().uploadArtifact(sanitizeArtifactName(`${artifactName}${suffix}`), toUpload.map((file) => path.normalize(file)), path.normalize(rootDir), { - continueOnError: true, - // ensure we don't keep the debug artifacts around for too long since they can be large. - retentionDays: 7, - }); - } - catch (e) { - // A failure to upload debug artifacts should not fail the entire action. - core.warning(`Failed to upload debug artifacts. Reason: ${(0, util_1.getErrorMessage)(e)}`); - } + await artifact.create().uploadArtifact(sanitizeArtifactName(`${artifactName}${suffix}`), toUpload.map((file) => path.normalize(file)), path.normalize(rootDir), { + continueOnError: true, + // ensure we don't keep the debug artifacts around for too long since they can be large. + retentionDays: 7, + }); } /** * If a database has not been finalized, we cannot run the `codeql database bundle` diff --git a/lib/debug-artifacts.js.map b/lib/debug-artifacts.js.map index 5785bd50f4..6740248177 100644 --- a/lib/debug-artifacts.js.map +++ b/lib/debug-artifacts.js.map @@ -1 +1 @@ -{"version":3,"file":"debug-artifacts.js","sourceRoot":"","sources":["../src/debug-artifacts.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"debug-artifacts.js","sourceRoot":"","sources":["../src/debug-artifacts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/logging.js b/lib/logging.js index 250c356739..ce99866176 100644 --- a/lib/logging.js +++ b/lib/logging.js @@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.getActionsLogger = getActionsLogger; exports.getRunnerLogger = getRunnerLogger; +exports.withGroup = withGroup; const core = __importStar(require("@actions/core")); function getActionsLogger() { return core; @@ -44,4 +45,13 @@ function getRunnerLogger(debugMode) { endGroup: () => undefined, }; } +function withGroup(groupName, f) { + core.startGroup(groupName); + try { + return f(); + } + finally { + core.endGroup(); + } +} //# sourceMappingURL=logging.js.map \ No newline at end of file diff --git a/lib/logging.js.map b/lib/logging.js.map index 30bc1567a3..ef8515a9da 100644 --- a/lib/logging.js.map +++ b/lib/logging.js.map @@ -1 +1 @@ -{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcA,4CAEC;AAED,0CAcC;AAhCD,oDAAsC;AActC,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,SAAkB;IAChD,OAAO;QACL,sCAAsC;QACtC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS;QAClD,sCAAsC;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,sCAAsC;QACtC,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,sCAAsC;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;QACxB,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;QAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcA,4CAEC;AAED,0CAcC;AAED,8BAOC;AAzCD,oDAAsC;AActC,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,SAAkB;IAChD,OAAO;QACL,sCAAsC;QACtC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS;QAClD,sCAAsC;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,sCAAsC;QACtC,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,sCAAsC;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;QACxB,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;QAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAI,SAAiB,EAAE,CAAU;IACxD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,EAAE,CAAC;IACb,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index e6495a91e4..dcc49e5cdc 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -31,13 +31,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const debugArtifacts = __importStar(require("./debug-artifacts")); const environment_1 = require("./environment"); +const logging_1 = require("./logging"); const util_1 = require("./util"); async function runWrapper() { try { + const logger = (0, logging_1.getActionsLogger)(); // Upload SARIF artifacts if we determine that this is a third-party analysis run. // For first-party runs, this artifact will be uploaded in the `analyze-post` step. if (process.env[environment_1.EnvVar.INIT_ACTION_HAS_RUN] !== "true") { - await debugArtifacts.uploadCombinedSarifArtifacts(); + await (0, logging_1.withGroup)("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts(logger)); } } catch (error) { diff --git a/lib/upload-sarif-action-post.js.map b/lib/upload-sarif-action-post.js.map index 52a1926bbc..3f3dfbf501 100644 --- a/lib/upload-sarif-action-post.js.map +++ b/lib/upload-sarif-action-post.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-sarif-action-post.js","sourceRoot":"","sources":["../src/upload-sarif-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,kEAAoD;AACpD,+CAAuC;AACvC,iCAAyC;AAEzC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,kFAAkF;QAClF,mFAAmF;QACnF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,cAAc,CAAC,4BAA4B,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,yCAAyC,IAAA,sBAAe,EAAC,KAAK,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"upload-sarif-action-post.js","sourceRoot":"","sources":["../src/upload-sarif-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,kEAAoD;AACpD,+CAAuC;AACvC,uCAAwD;AACxD,iCAAyC;AAEzC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAClC,kFAAkF;QAClF,mFAAmF;QACnF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,IAAA,mBAAS,EAAC,yCAAyC,EAAE,GAAG,EAAE,CAC9D,cAAc,CAAC,4BAA4B,CAAC,MAAM,CAAC,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,yCAAyC,IAAA,sBAAe,EAAC,KAAK,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/src/analyze-action-post.ts b/src/analyze-action-post.ts index a202583246..6e456236d9 100644 --- a/src/analyze-action-post.ts +++ b/src/analyze-action-post.ts @@ -7,14 +7,19 @@ import * as core from "@actions/core"; import * as debugArtifacts from "./debug-artifacts"; import { EnvVar } from "./environment"; +import { getActionsLogger, withGroup } from "./logging"; import { getErrorMessage } from "./util"; async function runWrapper() { try { + const logger = getActionsLogger(); + // Upload SARIF artifacts if we determine that this is a first-party analysis run. // For third-party runs, this artifact will be uploaded in the `upload-sarif-post` step. if (process.env[EnvVar.INIT_ACTION_HAS_RUN] === "true") { - await debugArtifacts.uploadCombinedSarifArtifacts(); + await withGroup("Uploading combined SARIF debug artifact", () => + debugArtifacts.uploadCombinedSarifArtifacts(logger), + ); } } catch (error) { core.setFailed( diff --git a/src/debug-artifacts.ts b/src/debug-artifacts.ts index 51088b77be..d48322cbb5 100644 --- a/src/debug-artifacts.ts +++ b/src/debug-artifacts.ts @@ -12,7 +12,7 @@ import { getCodeQL } from "./codeql"; import { Config } from "./config-utils"; import { EnvVar } from "./environment"; import { Language } from "./languages"; -import { Logger } from "./logging"; +import { Logger, withGroup } from "./logging"; import { bundleDb, doesDirectoryExist, @@ -29,12 +29,12 @@ export function sanitizeArtifactName(name: string): string { * Upload Actions SARIF artifacts for debugging when CODEQL_ACTION_DEBUG_COMBINED_SARIF * environment variable is set */ -export async function uploadCombinedSarifArtifacts() { +export async function uploadCombinedSarifArtifacts(logger: Logger) { const tempDir = getTemporaryDirectory(); // Upload Actions SARIF artifacts for debugging when environment variable is set if (process.env["CODEQL_ACTION_DEBUG_COMBINED_SARIF"] === "true") { - core.info( + logger.info( "Uploading available combined SARIF files as Actions debugging artifact...", ); @@ -56,26 +56,32 @@ export async function uploadCombinedSarifArtifacts() { } } - if (toUpload.length > 0) { + try { await uploadDebugArtifacts( toUpload, baseTempDir, "combined-sarif-artifacts", ); + } catch (e) { + logger.warning( + `Failed to upload combined SARIF files as Actions debugging artifact. Reason: ${getErrorMessage( + e, + )}`, + ); } } } /** - * Try to get the SARIF result path for the given language. + * Try to prepare a SARIF result debug artifact for the given language. * - * If an error occurs, log it and return an empty list. + * @return The path to that debug artifact, or undefined if an error occurs. */ -function tryGetSarifResultPath( +function tryPrepareSarifDebugArtifact( config: Config, language: Language, logger: Logger, -): string[] { +): string | undefined { try { const analyzeActionOutputDir = process.env[EnvVar.SARIF_RESULTS_OUTPUT_DIR]; if ( @@ -94,7 +100,7 @@ function tryGetSarifResultPath( `${language}.sarif`, ); fs.copyFileSync(sarifFile, sarifInDbLocation); - return [sarifInDbLocation]; + return sarifInDbLocation; } } } catch (e) { @@ -104,24 +110,23 @@ function tryGetSarifResultPath( )}`, ); } - return []; + return undefined; } /** - * Try to bundle the database for the given language. Return a list containing - * the path to the database bundle. + * Try to bundle the database for the given language. * - * If an error occurs, log it and return an empty list. + * @return The path to the database bundle, or undefined if an error occurs. */ async function tryBundleDatabase( config: Config, language: Language, logger: Logger, -): Promise { +): Promise { try { if (dbIsFinalized(config, language, logger)) { try { - return [await createDatabaseBundleCli(config, language)]; + return await createDatabaseBundleCli(config, language); } catch (e) { logger.warning( `Failed to bundle database for ${language} using the CLI. ` + @@ -129,14 +134,14 @@ async function tryBundleDatabase( ); } } - return [await createPartialDatabaseBundle(config, language)]; + return await createPartialDatabaseBundle(config, language); } catch (e) { logger.warning( `Failed to bundle database for ${language}. Reason: ${getErrorMessage( e, )}`, ); - return []; + return undefined; } } @@ -149,38 +154,67 @@ export async function tryUploadAllAvailableDebugArtifacts( config: Config, logger: Logger, ) { + const filesToUpload: string[] = []; try { - const filesToUpload: string[] = []; - for (const language of config.languages) { - filesToUpload.push(...tryGetSarifResultPath(config, language, logger)); + await withGroup(`Uploading debug artifacts for ${language}`, async () => { + logger.info("Preparing SARIF result debug artifact..."); + const sarifResultDebugArtifact = tryPrepareSarifDebugArtifact( + config, + language, + logger, + ); + if (sarifResultDebugArtifact) { + filesToUpload.push(sarifResultDebugArtifact); + logger.info("SARIF result debug artifact ready for upload."); + } - // Add any log files - const databaseDirectory = getCodeQLDatabasePath(config, language); - const logsDirectory = path.resolve(databaseDirectory, "log"); - if (doesDirectoryExist(logsDirectory)) { - filesToUpload.push(...listFolder(logsDirectory)); - } + logger.info("Preparing database logs debug artifact..."); + const databaseDirectory = getCodeQLDatabasePath(config, language); + const logsDirectory = path.resolve(databaseDirectory, "log"); + if (doesDirectoryExist(logsDirectory)) { + filesToUpload.push(...listFolder(logsDirectory)); + logger.info("Database logs debug artifact ready for upload."); + } - // Multilanguage tracing: there are additional logs in the root of the cluster - const multiLanguageTracingLogsDirectory = path.resolve( - config.dbLocation, - "log", - ); - if (doesDirectoryExist(multiLanguageTracingLogsDirectory)) { - filesToUpload.push(...listFolder(multiLanguageTracingLogsDirectory)); - } + // Multilanguage tracing: there are additional logs in the root of the cluster + logger.info("Preparing database cluster logs debug artifact..."); + const multiLanguageTracingLogsDirectory = path.resolve( + config.dbLocation, + "log", + ); + if (doesDirectoryExist(multiLanguageTracingLogsDirectory)) { + filesToUpload.push(...listFolder(multiLanguageTracingLogsDirectory)); + logger.info("Database cluster logs debug artifact ready for upload."); + } - // Add database bundle - filesToUpload.push( - ...(await tryBundleDatabase(config, language, logger)), - ); + // Add database bundle + logger.info("Preparing database bundle debug artifact..."); + const databaseBundle = await tryBundleDatabase( + config, + language, + logger, + ); + if (databaseBundle) { + filesToUpload.push(databaseBundle); + logger.info("Database bundle debug artifact ready for upload."); + } + }); } + } catch (e) { + logger.warning( + `Failed to prepare debug artifacts. Reason: ${getErrorMessage(e)}`, + ); + return; + } - await uploadDebugArtifacts( - filesToUpload, - config.dbLocation, - config.debugArtifactName, + try { + await withGroup("Uploading debug artifacts", async () => + uploadDebugArtifacts( + filesToUpload, + config.dbLocation, + config.debugArtifactName, + ), ); } catch (e) { logger.warning( @@ -212,23 +246,16 @@ export async function uploadDebugArtifacts( } } - try { - await artifact.create().uploadArtifact( - sanitizeArtifactName(`${artifactName}${suffix}`), - toUpload.map((file) => path.normalize(file)), - path.normalize(rootDir), - { - continueOnError: true, - // ensure we don't keep the debug artifacts around for too long since they can be large. - retentionDays: 7, - }, - ); - } catch (e) { - // A failure to upload debug artifacts should not fail the entire action. - core.warning( - `Failed to upload debug artifacts. Reason: ${getErrorMessage(e)}`, - ); - } + await artifact.create().uploadArtifact( + sanitizeArtifactName(`${artifactName}${suffix}`), + toUpload.map((file) => path.normalize(file)), + path.normalize(rootDir), + { + continueOnError: true, + // ensure we don't keep the debug artifacts around for too long since they can be large. + retentionDays: 7, + }, + ); } /** diff --git a/src/logging.ts b/src/logging.ts index a9d7fc2ba9..c6d769bc58 100644 --- a/src/logging.ts +++ b/src/logging.ts @@ -31,3 +31,12 @@ export function getRunnerLogger(debugMode: boolean): Logger { endGroup: () => undefined, }; } + +export function withGroup(groupName: string, f: () => T): T { + core.startGroup(groupName); + try { + return f(); + } finally { + core.endGroup(); + } +} diff --git a/src/upload-sarif-action-post.ts b/src/upload-sarif-action-post.ts index f2db87fd01..1871997437 100644 --- a/src/upload-sarif-action-post.ts +++ b/src/upload-sarif-action-post.ts @@ -7,14 +7,18 @@ import * as core from "@actions/core"; import * as debugArtifacts from "./debug-artifacts"; import { EnvVar } from "./environment"; +import { getActionsLogger, withGroup } from "./logging"; import { getErrorMessage } from "./util"; async function runWrapper() { try { + const logger = getActionsLogger(); // Upload SARIF artifacts if we determine that this is a third-party analysis run. // For first-party runs, this artifact will be uploaded in the `analyze-post` step. if (process.env[EnvVar.INIT_ACTION_HAS_RUN] !== "true") { - await debugArtifacts.uploadCombinedSarifArtifacts(); + await withGroup("Uploading combined SARIF debug artifact", () => + debugArtifacts.uploadCombinedSarifArtifacts(logger), + ); } } catch (error) { core.setFailed( pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy