diff --git a/.github/workflows/debug-artifacts-failure.yml b/.github/workflows/debug-artifacts-failure-safe.yml similarity index 68% rename from .github/workflows/debug-artifacts-failure.yml rename to .github/workflows/debug-artifacts-failure-safe.yml index 995071df6a..108a7a3511 100644 --- a/.github/workflows/debug-artifacts-failure.yml +++ b/.github/workflows/debug-artifacts-failure-safe.yml @@ -19,6 +19,14 @@ on: workflow_dispatch: {} jobs: upload-artifacts: + strategy: + fail-fast: false + matrix: + version: + - stable-v2.20.3 + - default + - linked + - nightly-latest name: Upload debug artifacts after failure in analyze continue-on-error: true env: @@ -36,7 +44,7 @@ jobs: id: prepare-test uses: ./.github/actions/prepare-test with: - version: linked + version: ${{ matrix.version }} - uses: actions/setup-go@v5 with: go-version: ^1.13.1 @@ -70,22 +78,25 @@ jobs: shell: bash run: | LANGUAGES="cpp csharp go java javascript python" - cd "./my-debug-artifacts" - echo "Artifacts from run:" - for language in $LANGUAGES; do - echo "- Checking $language" - if [[ ! -f "my-db-$language-partial.zip" ]] ; then - echo "Missing a partial database bundle for $language" - exit 1 - fi - if [[ ! -d "log" ]] ; then - echo "Missing database initialization logs" - exit 1 - fi - if [[ ! "$language" == "go" ]] && [[ ! -d "$language/log" ]] ; then - echo "Missing logs for $language" - exit 1 - fi + for version in $VERSIONS; do + echo "Artifacts from version $version:" + pushd "./my-debug-artifacts-${version//./}" + for language in $LANGUAGES; do + echo "- Checking $language" + if [[ ! -f "my-db-$language-partial.zip" ]] ; then + echo "Missing a partial database bundle for $language" + exit 1 + fi + if [[ ! -d "log" ]] ; then + echo "Missing database initialization logs" + exit 1 + fi + if [[ ! "$language" == "go" ]] && [[ ! -d "$language/log" ]] ; then + echo "Missing logs for $language" + exit 1 + fi + done + popd done env: GO111MODULE: auto diff --git a/.github/workflows/debug-artifacts.yml b/.github/workflows/debug-artifacts-safe.yml similarity index 91% rename from .github/workflows/debug-artifacts.yml rename to .github/workflows/debug-artifacts-safe.yml index 2dd0691359..e508ead92f 100644 --- a/.github/workflows/debug-artifacts.yml +++ b/.github/workflows/debug-artifacts-safe.yml @@ -22,11 +22,7 @@ jobs: fail-fast: false matrix: version: - - stable-v2.15.5 - - stable-v2.16.6 - - stable-v2.17.6 - - stable-v2.18.4 - - stable-v2.19.4 + - stable-v2.20.3 - default - linked - nightly-latest @@ -75,7 +71,7 @@ jobs: - name: Check expected artifacts exist shell: bash run: | - VERSIONS="stable-v2.15.5 stable-v2.16.6 stable-v2.17.6 stable-v2.18.4 stable-v2.19.4 default linked nightly-latest" + VERSIONS="stable-v2.20.3 default linked nightly-latest" LANGUAGES="cpp csharp go java javascript python" for version in $VERSIONS; do pushd "./my-debug-artifacts-${version//./}" diff --git a/CHANGELOG.md b/CHANGELOG.md index e625431df5..134e822793 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th ## [UNRELEASED] -No user facing changes. +- Re-enable debug artifact upload for CLI versions 2.20.3 or greater. [#2726](https://github.com/github/codeql-action/pull/2726) ## 3.28.5 - 24 Jan 2025 diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index a42d975cb1..3b8e501055 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -41,6 +41,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const actionsUtil = __importStar(require("./actions-util")); const api_client_1 = require("./api-client"); +const codeql_1 = require("./codeql"); const config_utils_1 = require("./config-utils"); const debugArtifacts = __importStar(require("./debug-artifacts")); const environment_1 = require("./environment"); @@ -57,7 +58,9 @@ async function runWrapper() { if (process.env[environment_1.EnvVar.INIT_ACTION_HAS_RUN] === "true") { const config = await (0, config_utils_1.getConfig)(actionsUtil.getTemporaryDirectory(), logger); if (config !== undefined) { - await (0, logging_1.withGroup)("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts(logger, config.gitHubVersion.type)); + const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd); + const version = await codeql.getVersion(); + await (0, logging_1.withGroup)("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts(logger, config.gitHubVersion.type, version.version)); } } } diff --git a/lib/analyze-action-post.js.map b/lib/analyze-action-post.js.map index cf32f5ac94..220ccf55fd 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,6CAAgD;AAChD,iDAA2C;AAC3C,kEAAoD;AACpD,+CAAuC;AACvC,uCAAwD;AACxD,iCAAoE;AAEpE,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,WAAW,CAAC,aAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,kFAAkF;QAClF,wFAAwF;QACxF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAC5B,WAAW,CAAC,qBAAqB,EAAE,EACnC,MAAM,CACP,CAAC;YACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAA,mBAAS,EAAC,yCAAyC,EAAE,GAAG,EAAE,CAC9D,cAAc,CAAC,4BAA4B,CACzC,MAAM,EACN,MAAM,CAAC,aAAa,CAAC,IAAI,CAC1B,CACF,CAAC;YACJ,CAAC;QACH,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,4DAA8C;AAC9C,6CAAgD;AAChD,qCAAqC;AACrC,iDAA2C;AAC3C,kEAAoD;AACpD,+CAAuC;AACvC,uCAAwD;AACxD,iCAAoE;AAEpE,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,WAAW,CAAC,aAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,kFAAkF;QAClF,wFAAwF;QACxF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAS,EAC5B,WAAW,CAAC,qBAAqB,EAAE,EACnC,MAAM,CACP,CAAC;YACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC1C,MAAM,IAAA,mBAAS,EAAC,yCAAyC,EAAE,GAAG,EAAE,CAC9D,cAAc,CAAC,4BAA4B,CACzC,MAAM,EACN,MAAM,CAAC,aAAa,CAAC,IAAI,EACzB,OAAO,CAAC,OAAO,CAChB,CACF,CAAC;YACJ,CAAC;QACH,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 1724935891..cf5fadc8ca 100644 --- a/lib/debug-artifacts.js +++ b/lib/debug-artifacts.js @@ -53,6 +53,7 @@ const analyze_1 = require("./analyze"); const codeql_1 = require("./codeql"); const environment_1 = require("./environment"); const logging_1 = require("./logging"); +const tools_features_1 = require("./tools-features"); const util_1 = require("./util"); function sanitizeArtifactName(name) { return name.replace(/[^a-zA-Z0-9_\\-]+/g, ""); @@ -61,7 +62,7 @@ function sanitizeArtifactName(name) { * Upload Actions SARIF artifacts for debugging when CODEQL_ACTION_DEBUG_COMBINED_SARIF * environment variable is set */ -async function uploadCombinedSarifArtifacts(logger, gitHubVariant) { +async function uploadCombinedSarifArtifacts(logger, gitHubVariant, codeQlVersion) { 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") { @@ -80,7 +81,7 @@ async function uploadCombinedSarifArtifacts(logger, gitHubVariant) { } } try { - await uploadDebugArtifacts(logger, toUpload, baseTempDir, "combined-sarif-artifacts", gitHubVariant); + await uploadDebugArtifacts(logger, toUpload, baseTempDir, "combined-sarif-artifacts", gitHubVariant, codeQlVersion); } catch (e) { logger.warning(`Failed to upload combined SARIF files as Actions debugging artifact. Reason: ${(0, util_1.getErrorMessage)(e)}`); @@ -140,7 +141,7 @@ async function tryBundleDatabase(config, language, logger) { * * Logs and suppresses any errors that occur. */ -async function tryUploadAllAvailableDebugArtifacts(config, logger) { +async function tryUploadAllAvailableDebugArtifacts(config, logger, codeQlVersion) { const filesToUpload = []; try { for (const language of config.languages) { @@ -180,20 +181,23 @@ async function tryUploadAllAvailableDebugArtifacts(config, logger) { return; } try { - await (0, logging_1.withGroup)("Uploading debug artifacts", async () => uploadDebugArtifacts(logger, filesToUpload, config.dbLocation, config.debugArtifactName, config.gitHubVersion.type)); + await (0, logging_1.withGroup)("Uploading debug artifacts", async () => uploadDebugArtifacts(logger, filesToUpload, config.dbLocation, config.debugArtifactName, config.gitHubVersion.type, codeQlVersion)); } catch (e) { logger.warning(`Failed to upload debug artifacts. Reason: ${(0, util_1.getErrorMessage)(e)}`); } } -async function uploadDebugArtifacts(logger, toUpload, rootDir, artifactName, ghVariant) { +async function uploadDebugArtifacts(logger, toUpload, rootDir, artifactName, ghVariant, codeQlVersion) { if (toUpload.length === 0) { - return; + return "no-artifacts-to-upload"; + } + const uploadSupported = (0, tools_features_1.isSafeArtifactUpload)(codeQlVersion); + if (!uploadSupported) { + core.info(`Skipping debug artifact upload because the current CLI does not support safe upload. Please upgrade to CLI v${tools_features_1.SafeArtifactUploadVersion} or later.`); + return "upload-not-supported"; } - logger.info("Uploading debug artifacts is temporarily disabled"); - return; let suffix = ""; - const matrix = (0, actions_util_1.getRequiredInput)("matrix"); + const matrix = (0, actions_util_1.getOptionalInput)("matrix"); if (matrix) { try { for (const [, matrixVal] of Object.entries(JSON.parse(matrix)).sort()) @@ -209,10 +213,12 @@ async function uploadDebugArtifacts(logger, toUpload, rootDir, artifactName, ghV // ensure we don't keep the debug artifacts around for too long since they can be large. retentionDays: 7, }); + return "upload-successful"; } catch (e) { // A failure to upload debug artifacts should not fail the entire action. core.warning(`Failed to upload debug artifacts: ${e}`); + return "upload-failed"; } } // `@actions/artifact@v2` is not yet supported on GHES so the legacy version of the client will be used on GHES diff --git a/lib/debug-artifacts.js.map b/lib/debug-artifacts.js.map index 3f4d6b322a..9f9115967c 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/debug-artifacts.test.js b/lib/debug-artifacts.test.js index b80b38b70d..4df433b6c7 100644 --- a/lib/debug-artifacts.test.js +++ b/lib/debug-artifacts.test.js @@ -46,9 +46,47 @@ const util_1 = require("./util"); t.deepEqual(debugArtifacts.sanitizeArtifactName("hello===123"), "hello123"); t.deepEqual(debugArtifacts.sanitizeArtifactName("*m)a&n^y%i££n+v!a:l[i]d"), "manyinvalid"); }); -(0, ava_1.default)("uploadDebugArtifacts", async (t) => { +// These next tests check the correctness of the logic to determine whether or not +// artifacts are uploaded in debug mode. Since it's not easy to mock the actual +// call to upload an artifact, we just check that we get an "upload-failed" result, +// instead of actually uploading the artifact. +// +// For tests where we expect artifact upload to be blocked, we check for a different +// response from the function. +(0, ava_1.default)("uploadDebugArtifacts when artifacts empty should emit 'no-artifacts-to-upload'", async (t) => { // Test that no error is thrown if artifacts list is empty. const logger = (0, logging_1.getActionsLogger)(); - await t.notThrowsAsync(debugArtifacts.uploadDebugArtifacts(logger, [], "rootDir", "artifactName", util_1.GitHubVariant.DOTCOM)); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts(logger, [], "i-dont-exist", "artifactName", util_1.GitHubVariant.DOTCOM, undefined); + t.is(uploaded, "no-artifacts-to-upload", "Should not have uploaded any artifacts"); + }); +}); +(0, ava_1.default)("uploadDebugArtifacts when no codeql version is used should invoke artifact upload", async (t) => { + // Test that the artifact is uploaded. + const logger = (0, logging_1.getActionsLogger)(); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts(logger, ["hucairz"], "i-dont-exist", "artifactName", util_1.GitHubVariant.DOTCOM, undefined); + t.is(uploaded, + // The failure is expected since we don't want to actually upload any artifacts in unit tests. + "upload-failed", "Expect failure to upload artifacts since root dir does not exist"); + }); +}); +(0, ava_1.default)("uploadDebugArtifacts when new codeql version is used should invoke artifact upload", async (t) => { + // Test that the artifact is uploaded. + const logger = (0, logging_1.getActionsLogger)(); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts(logger, ["hucairz"], "i-dont-exist", "artifactName", util_1.GitHubVariant.DOTCOM, "2.20.3"); + t.is(uploaded, + // The failure is expected since we don't want to actually upload any artifacts in unit tests. + "upload-failed", "Expect failure to upload artifacts since root dir does not exist"); + }); +}); +(0, ava_1.default)("uploadDebugArtifacts when old codeql is used should avoid trying to upload artifacts", async (t) => { + // Test that the artifact is not uploaded. + const logger = (0, logging_1.getActionsLogger)(); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts(logger, ["hucairz"], "i-dont-exist", "artifactName", util_1.GitHubVariant.DOTCOM, "2.20.2"); + t.is(uploaded, "upload-not-supported", "Expected artifact upload to be blocked because of old CodeQL version"); + }); }); //# 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 index c4f7ca2aae..0facecaa66 100644 --- a/lib/debug-artifacts.test.js.map +++ b/lib/debug-artifacts.test.js.map @@ -1 +1 @@ -{"version":3,"file":"debug-artifacts.test.js","sourceRoot":"","sources":["../src/debug-artifacts.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAEvB,kEAAoD;AACpD,uCAA6C;AAC7C,iCAAuC;AAEvC,IAAA,aAAI,EAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;IACjC,CAAC,CAAC,SAAS,CACT,cAAc,CAAC,oBAAoB,CAAC,cAAc,CAAC,EACnD,cAAc,CACf,CAAC;IACF,CAAC,CAAC,SAAS,CACT,cAAc,CAAC,oBAAoB,CAAC,cAAc,CAAC,EACnD,YAAY,CACb,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC,CAAC,SAAS,CACT,cAAc,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,EAC9D,aAAa,CACd,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACvC,2DAA2D;IAC3D,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,CAAC,CAAC,cAAc,CACpB,cAAc,CAAC,oBAAoB,CACjC,MAAM,EACN,EAAE,EACF,SAAS,EACT,cAAc,EACd,oBAAa,CAAC,MAAM,CACrB,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"debug-artifacts.test.js","sourceRoot":"","sources":["../src/debug-artifacts.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/init-action-post-helper.js b/lib/init-action-post-helper.js index 3ff4e5f635..22155bccba 100644 --- a/lib/init-action-post-helper.js +++ b/lib/init-action-post-helper.js @@ -142,7 +142,9 @@ async function run(uploadAllAvailableDebugArtifacts, printDebugLogs, config, rep // Upload appropriate Actions artifacts for debugging if (config.debugMode) { logger.info("Debug mode is on. Uploading available database bundles and logs as Actions debugging artifacts..."); - await uploadAllAvailableDebugArtifacts(config, logger, features); + const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd); + const version = await codeql.getVersion(); + await uploadAllAvailableDebugArtifacts(config, logger, version.version); await printDebugLogs(config); } if (actionsUtil.isSelfHostedRunner()) { diff --git a/lib/init-action-post-helper.js.map b/lib/init-action-post-helper.js.map index 8c1fae2038..96d4c64df1 100644 --- a/lib/init-action-post-helper.js.map +++ b/lib/init-action-post-helper.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action-post-helper.js","sourceRoot":"","sources":["../src/init-action-post-helper.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"init-action-post-helper.js","sourceRoot":"","sources":["../src/init-action-post-helper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/tools-features.js b/lib/tools-features.js index 7cb8e43786..277bddfe85 100644 --- a/lib/tools-features.js +++ b/lib/tools-features.js @@ -1,7 +1,42 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (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 () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); Object.defineProperty(exports, "__esModule", { value: true }); -exports.ToolsFeature = void 0; +exports.SafeArtifactUploadVersion = exports.ToolsFeature = void 0; exports.isSupportedToolsFeature = isSupportedToolsFeature; +exports.isSafeArtifactUpload = isSafeArtifactUpload; +const semver = __importStar(require("semver")); var ToolsFeature; (function (ToolsFeature) { ToolsFeature["AnalysisSummaryV2IsDefault"] = "analysisSummaryV2Default"; @@ -25,4 +60,20 @@ var ToolsFeature; function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } +exports.SafeArtifactUploadVersion = "2.20.3"; +/** + * The first version of the CodeQL CLI where artifact upload is safe to use + * for failed runs. This is not really a feature flag, but it is easiest to + * model the behavior as a feature flag. + * + * This was not captured in a tools feature, so we need to use semver. + * + * @param codeQlVersion The version of the CodeQL CLI to check. If not provided, it is assumed to be safe. + * @returns True if artifact upload is safe to use for failed runs or false otherwise. + */ +function isSafeArtifactUpload(codeQlVersion) { + return !codeQlVersion + ? true + : semver.gte(codeQlVersion, exports.SafeArtifactUploadVersion); +} //# sourceMappingURL=tools-features.js.map \ No newline at end of file diff --git a/lib/tools-features.js.map b/lib/tools-features.js.map index be559b0f74..7a0c041462 100644 --- a/lib/tools-features.js.map +++ b/lib/tools-features.js.map @@ -1 +1 @@ -{"version":3,"file":"tools-features.js","sourceRoot":"","sources":["../src/tools-features.ts"],"names":[],"mappings":";;;AAsBA,0DAKC;AAzBD,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,uEAAuD,CAAA;IACvD,mDAAmC,CAAA;IACnC,qHAAqG,CAAA;IACrG,+FAA+E,CAAA;IAC/E,yFAAyE,CAAA;IACzE,iEAAiD,CAAA;IACjD,qEAAqD,CAAA;IACrD,mFAAmE,CAAA;IACnE,iDAAiC,CAAA;IACjC,uFAAuE,CAAA;AACzE,CAAC,EAXW,YAAY,4BAAZ,YAAY,QAWvB;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,WAAwB,EACxB,OAAqB;IAErB,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC"} \ No newline at end of file +{"version":3,"file":"tools-features.js","sourceRoot":"","sources":["../src/tools-features.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,0DAKC;AAcD,oDAIC;AA/CD,+CAAiC;AAIjC,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,uEAAuD,CAAA;IACvD,mDAAmC,CAAA;IACnC,qHAAqG,CAAA;IACrG,+FAA+E,CAAA;IAC/E,yFAAyE,CAAA;IACzE,iEAAiD,CAAA;IACjD,qEAAqD,CAAA;IACrD,mFAAmE,CAAA;IACnE,iDAAiC,CAAA;IACjC,uFAAuE,CAAA;AACzE,CAAC,EAXW,YAAY,4BAAZ,YAAY,QAWvB;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,WAAwB,EACxB,OAAqB;IAErB,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAEY,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AAElD;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,aAAsB;IACzD,OAAO,CAAC,aAAa;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,iCAAyB,CAAC,CAAC;AAC3D,CAAC"} \ No newline at end of file diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index a5a8d5c245..77f2409b94 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -59,7 +59,10 @@ async function runWrapper() { core.warning(`Did not upload debug artifacts because cannot determine the GitHub variant running.`); return; } - await (0, logging_1.withGroup)("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts(logger, gitHubVersion.type)); + await (0, logging_1.withGroup)("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts(logger, gitHubVersion.type, + // The codeqlVersion is not applicable for uploading non-codeql sarif. + // We can assume all versions are safe to upload. + undefined)); } } catch (error) { diff --git a/lib/upload-sarif-action-post.js.map b/lib/upload-sarif-action-post.js.map index 85152da16c..17da641cdf 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,4DAA8C;AAC9C,6CAAgD;AAChD,kEAAoD;AACpD,+CAAuC;AACvC,uCAAwD;AACxD,iCAAoE;AAEpE,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,6CAA6C;QAC7C,WAAW,CAAC,aAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,kFAAkF;QAClF,mFAAmF;QACnF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CACV,qFAAqF,CACtF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,IAAA,mBAAS,EAAC,yCAAyC,EAAE,GAAG,EAAE,CAC9D,cAAc,CAAC,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CACxE,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 +{"version":3,"file":"upload-sarif-action-post.js","sourceRoot":"","sources":["../src/upload-sarif-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAsC;AAEtC,4DAA8C;AAC9C,6CAAgD;AAChD,kEAAoD;AACpD,+CAAuC;AACvC,uCAAwD;AACxD,iCAAoE;AAEpE,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,6CAA6C;QAC7C,WAAW,CAAC,aAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,kFAAkF;QAClF,mFAAmF;QACnF,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,EAAE,CAAC;YACvD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CACV,qFAAqF,CACtF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,IAAA,mBAAS,EAAC,yCAAyC,EAAE,GAAG,EAAE,CAC9D,cAAc,CAAC,4BAA4B,CACzC,MAAM,EACN,aAAa,CAAC,IAAI;YAClB,sEAAsE;YACtE,iDAAiD;YACjD,SAAS,CACV,CACF,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 5f457017db..eaa08a50d8 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 { getGitHubVersion } from "./api-client"; +import { getCodeQL } from "./codeql"; import { getConfig } from "./config-utils"; import * as debugArtifacts from "./debug-artifacts"; import { EnvVar } from "./environment"; @@ -28,10 +29,13 @@ async function runWrapper() { logger, ); if (config !== undefined) { + const codeql = await getCodeQL(config.codeQLCmd); + const version = await codeql.getVersion(); await withGroup("Uploading combined SARIF debug artifact", () => debugArtifacts.uploadCombinedSarifArtifacts( logger, config.gitHubVersion.type, + version.version, ), ); } diff --git a/src/debug-artifacts.test.ts b/src/debug-artifacts.test.ts index a61519105a..08f9a1d3e8 100644 --- a/src/debug-artifacts.test.ts +++ b/src/debug-artifacts.test.ts @@ -20,16 +20,92 @@ test("sanitizeArtifactName", (t) => { ); }); -test("uploadDebugArtifacts", async (t) => { +// These next tests check the correctness of the logic to determine whether or not +// artifacts are uploaded in debug mode. Since it's not easy to mock the actual +// call to upload an artifact, we just check that we get an "upload-failed" result, +// instead of actually uploading the artifact. +// +// For tests where we expect artifact upload to be blocked, we check for a different +// response from the function. + +test("uploadDebugArtifacts when artifacts empty should emit 'no-artifacts-to-upload'", async (t) => { // Test that no error is thrown if artifacts list is empty. const logger = getActionsLogger(); - await t.notThrowsAsync( - debugArtifacts.uploadDebugArtifacts( + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts( logger, [], - "rootDir", + "i-dont-exist", "artifactName", GitHubVariant.DOTCOM, - ), - ); + undefined, + ); + t.is( + uploaded, + "no-artifacts-to-upload", + "Should not have uploaded any artifacts", + ); + }); +}); + +test("uploadDebugArtifacts when no codeql version is used should invoke artifact upload", async (t) => { + // Test that the artifact is uploaded. + const logger = getActionsLogger(); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts( + logger, + ["hucairz"], + "i-dont-exist", + "artifactName", + GitHubVariant.DOTCOM, + undefined, + ); + t.is( + uploaded, + // The failure is expected since we don't want to actually upload any artifacts in unit tests. + "upload-failed", + "Expect failure to upload artifacts since root dir does not exist", + ); + }); +}); + +test("uploadDebugArtifacts when new codeql version is used should invoke artifact upload", async (t) => { + // Test that the artifact is uploaded. + const logger = getActionsLogger(); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts( + logger, + ["hucairz"], + "i-dont-exist", + "artifactName", + GitHubVariant.DOTCOM, + "2.20.3", + ); + t.is( + uploaded, + // The failure is expected since we don't want to actually upload any artifacts in unit tests. + "upload-failed", + "Expect failure to upload artifacts since root dir does not exist", + ); + }); +}); + +test("uploadDebugArtifacts when old codeql is used should avoid trying to upload artifacts", async (t) => { + // Test that the artifact is not uploaded. + const logger = getActionsLogger(); + await t.notThrowsAsync(async () => { + const uploaded = await debugArtifacts.uploadDebugArtifacts( + logger, + ["hucairz"], + "i-dont-exist", + "artifactName", + GitHubVariant.DOTCOM, + "2.20.2", + ); + t.is( + uploaded, + "upload-not-supported", + "Expected artifact upload to be blocked because of old CodeQL version", + ); + }); }); diff --git a/src/debug-artifacts.ts b/src/debug-artifacts.ts index a15277a7b8..a7c23784f4 100644 --- a/src/debug-artifacts.ts +++ b/src/debug-artifacts.ts @@ -7,13 +7,17 @@ import * as core from "@actions/core"; import AdmZip from "adm-zip"; import del from "del"; -import { getRequiredInput, getTemporaryDirectory } from "./actions-util"; +import { getOptionalInput, getTemporaryDirectory } from "./actions-util"; import { dbIsFinalized } from "./analyze"; import { getCodeQL } from "./codeql"; import { Config } from "./config-utils"; import { EnvVar } from "./environment"; import { Language } from "./languages"; import { Logger, withGroup } from "./logging"; +import { + isSafeArtifactUpload, + SafeArtifactUploadVersion, +} from "./tools-features"; import { bundleDb, doesDirectoryExist, @@ -34,6 +38,7 @@ export function sanitizeArtifactName(name: string): string { export async function uploadCombinedSarifArtifacts( logger: Logger, gitHubVariant: GitHubVariant, + codeQlVersion: string | undefined, ) { const tempDir = getTemporaryDirectory(); @@ -68,6 +73,7 @@ export async function uploadCombinedSarifArtifacts( baseTempDir, "combined-sarif-artifacts", gitHubVariant, + codeQlVersion, ); } catch (e) { logger.warning( @@ -160,6 +166,7 @@ async function tryBundleDatabase( export async function tryUploadAllAvailableDebugArtifacts( config: Config, logger: Logger, + codeQlVersion: string | undefined, ) { const filesToUpload: string[] = []; try { @@ -223,6 +230,7 @@ export async function tryUploadAllAvailableDebugArtifacts( config.dbLocation, config.debugArtifactName, config.gitHubVersion.type, + codeQlVersion, ), ); } catch (e) { @@ -238,15 +246,27 @@ export async function uploadDebugArtifacts( rootDir: string, artifactName: string, ghVariant: GitHubVariant, -) { + codeQlVersion: string | undefined, +): Promise< + | "no-artifacts-to-upload" + | "upload-successful" + | "upload-failed" + | "upload-not-supported" +> { if (toUpload.length === 0) { - return; + return "no-artifacts-to-upload"; + } + const uploadSupported = isSafeArtifactUpload(codeQlVersion); + + if (!uploadSupported) { + core.info( + `Skipping debug artifact upload because the current CLI does not support safe upload. Please upgrade to CLI v${SafeArtifactUploadVersion} or later.`, + ); + return "upload-not-supported"; } - logger.info("Uploading debug artifacts is temporarily disabled"); - return; let suffix = ""; - const matrix = getRequiredInput("matrix"); + const matrix = getOptionalInput("matrix"); if (matrix) { try { for (const [, matrixVal] of Object.entries( @@ -272,9 +292,11 @@ export async function uploadDebugArtifacts( retentionDays: 7, }, ); + return "upload-successful"; } catch (e) { // A failure to upload debug artifacts should not fail the entire action. core.warning(`Failed to upload debug artifacts: ${e}`); + return "upload-failed"; } } diff --git a/src/init-action-post-helper.ts b/src/init-action-post-helper.ts index 2fa1774b4e..78aa40f19f 100644 --- a/src/init-action-post-helper.ts +++ b/src/init-action-post-helper.ts @@ -161,7 +161,7 @@ export async function run( uploadAllAvailableDebugArtifacts: ( config: Config, logger: Logger, - features: FeatureEnablement, + codeQlVersion: string, ) => Promise, printDebugLogs: (config: Config) => Promise, config: Config, @@ -211,7 +211,9 @@ export async function run( logger.info( "Debug mode is on. Uploading available database bundles and logs as Actions debugging artifacts...", ); - await uploadAllAvailableDebugArtifacts(config, logger, features); + const codeql = await getCodeQL(config.codeQLCmd); + const version = await codeql.getVersion(); + await uploadAllAvailableDebugArtifacts(config, logger, version.version); await printDebugLogs(config); } diff --git a/src/tools-features.ts b/src/tools-features.ts index aa70459a96..d14ec0345f 100644 --- a/src/tools-features.ts +++ b/src/tools-features.ts @@ -1,3 +1,5 @@ +import * as semver from "semver"; + import type { VersionInfo } from "./codeql"; export enum ToolsFeature { @@ -26,3 +28,21 @@ export function isSupportedToolsFeature( ): boolean { return !!versionInfo.features && versionInfo.features[feature]; } + +export const SafeArtifactUploadVersion = "2.20.3"; + +/** + * The first version of the CodeQL CLI where artifact upload is safe to use + * for failed runs. This is not really a feature flag, but it is easiest to + * model the behavior as a feature flag. + * + * This was not captured in a tools feature, so we need to use semver. + * + * @param codeQlVersion The version of the CodeQL CLI to check. If not provided, it is assumed to be safe. + * @returns True if artifact upload is safe to use for failed runs or false otherwise. + */ +export function isSafeArtifactUpload(codeQlVersion?: string): boolean { + return !codeQlVersion + ? true + : semver.gte(codeQlVersion, SafeArtifactUploadVersion); +} diff --git a/src/upload-sarif-action-post.ts b/src/upload-sarif-action-post.ts index 3f43b17226..9852b882b9 100644 --- a/src/upload-sarif-action-post.ts +++ b/src/upload-sarif-action-post.ts @@ -30,7 +30,13 @@ async function runWrapper() { return; } await withGroup("Uploading combined SARIF debug artifact", () => - debugArtifacts.uploadCombinedSarifArtifacts(logger, gitHubVersion.type), + debugArtifacts.uploadCombinedSarifArtifacts( + logger, + gitHubVersion.type, + // The codeqlVersion is not applicable for uploading non-codeql sarif. + // We can assume all versions are safe to upload. + undefined, + ), ); } } catch (error) {