Only warn for missing config if init was successful

This commit is contained in:
Michael B. Gale
2026-10-22 10:37:37 +01:00
parent 26f5c5e4e0
commit 308d941317
6 changed files with 30 additions and 13 deletions

19
lib/entry-points.js generated
View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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,
};
}

View File

@@ -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`. */

View File

@@ -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);

View File

@@ -1031,6 +1031,7 @@ export function createTestConfig(overrides: Partial<Config>): Config {
overlayModeSetExplicitly: false,
repositoryProperties: {},
enableFileCoverageInformation: true,
successfullyInitialised: false,
} satisfies Config,
overrides,
);