diff --git a/lib/entry-points.js b/lib/entry-points.js index 5fde8a09a..de7255217 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -174622,7 +174622,9 @@ async function initActionState({ useOverlayDatabaseCaching: false, overlayModeSetExplicitly: false, repositoryProperties, - enableFileCoverageInformation + enableFileCoverageInformation, + // We don't set this to `true` until `init` is successful. + successfullyInitialised: false }; } async function downloadCacheWithTime(codeQL, languages, logger2, repositoryRoot) { @@ -177448,12 +177450,14 @@ async function getCodeQLForCmd(logger2, cmd, checkVersion) { async diagnosticsExport(sarifFile, automationDetailsId, config, diagnosticDir) { let configPath = getGeneratedCodeScanningConfigPath(config); if (!fs17.existsSync(configPath)) { - logger2.warning( - [ - `Expected a configuration file at '${configPath}', which does not exist.`, - "Continuing with diagnostics export anyway, without a configuration file." - ].join(" ") - ); + if (config.successfullyInitialised) { + logger2.warning( + [ + `Expected a configuration file at '${configPath}', which does not exist.`, + "Continuing with diagnostics export anyway, without a configuration file." + ].join(" ") + ); + } configPath = void 0; } const args = [ @@ -186923,6 +186927,7 @@ exec ${goBinaryPath} "$@"` ); } flushDiagnostics(actionState, config); + config.successfullyInitialised = true; await saveConfig(config, logger2); core19.setOutput("codeql-path", config.codeQLCmd); core19.setOutput("codeql-version", (await codeql.getVersion()).version); diff --git a/src/codeql.ts b/src/codeql.ts index b88144a25..9824b7e4f 100644 --- a/src/codeql.ts +++ b/src/codeql.ts @@ -928,12 +928,17 @@ async function getCodeQLForCmd( getGeneratedCodeScanningConfigPath(config); if (!fs.existsSync(configPath)) { - logger.warning( - [ - `Expected a configuration file at '${configPath}', which does not exist.`, - "Continuing with diagnostics export anyway, without a configuration file.", - ].join(" "), - ); + // Warn if there is no configuration file, even though `config` claims that `init` + // was successful. This shouldn't be happening. + if (config.successfullyInitialised) { + logger.warning( + [ + `Expected a configuration file at '${configPath}', which does not exist.`, + "Continuing with diagnostics export anyway, without a configuration file.", + ].join(" "), + ); + } + configPath = undefined; } diff --git a/src/config-utils.ts b/src/config-utils.ts index 7bb7a37c0..12c1024f8 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -465,6 +465,8 @@ export async function initActionState( overlayModeSetExplicitly: false, repositoryProperties, enableFileCoverageInformation, + // We don't set this to `true` until `init` is successful. + successfullyInitialised: false, }; } diff --git a/src/config/action-config.ts b/src/config/action-config.ts index 4990ba675..9daf966ee 100644 --- a/src/config/action-config.ts +++ b/src/config/action-config.ts @@ -130,6 +130,9 @@ export interface Config { * Whether to enable file coverage information. */ enableFileCoverageInformation: boolean; + + /** Whether the analysis was successfully initialised using the configuration. */ + successfullyInitialised: boolean; } /** Properties available in `Config`. */ diff --git a/src/init-action.ts b/src/init-action.ts index bd5ed3395..ceffe9d6e 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -775,6 +775,7 @@ async function run( // may have updated the config returned from `initConfig`, e.g. to revert to // `OverlayDatabaseMode.None` if we failed to download an overlay-base // database. + config.successfullyInitialised = true; await configUtils.saveConfig(config, logger); core.setOutput("codeql-path", config.codeQLCmd); diff --git a/src/testing-utils.ts b/src/testing-utils.ts index 8c38187c4..adcdfe3e4 100644 --- a/src/testing-utils.ts +++ b/src/testing-utils.ts @@ -1031,6 +1031,7 @@ export function createTestConfig(overrides: Partial): Config { overlayModeSetExplicitly: false, repositoryProperties: {}, enableFileCoverageInformation: true, + successfullyInitialised: false, } satisfies Config, overrides, );