Skip to content

Commit 270886f

Browse files
committed
Pass overlay mode into databaseInitCluster()
This commit adds a OverlayDatabaseMode parameter to databaseInitCluster(). The parameter controls the "codeql database init" flags concerning overlay database creation. There is no behavior change in this commit because we always pass OverlayDatabaseMode.None to databaseInitCluster(). That will change in the next commit.
1 parent d76f393 commit 270886f

File tree

5 files changed

+27
-1
lines changed

5 files changed

+27
-1
lines changed

src/codeql.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { DocUrl } from "./doc-url";
2020
import { FeatureEnablement } from "./feature-flags";
2121
import { Language } from "./languages";
2222
import { getRunnerLogger } from "./logging";
23+
import { OverlayDatabaseMode } from "./overlay-database-utils";
2324
import { ToolsSource } from "./setup-codeql";
2425
import {
2526
setupTests,
@@ -510,6 +511,7 @@ const injectedConfigMacro = test.macro({
510511
"",
511512
undefined,
512513
undefined,
514+
OverlayDatabaseMode.None,
513515
getRunnerLogger(true),
514516
);
515517

@@ -723,6 +725,7 @@ test("passes a code scanning config AND qlconfig to the CLI", async (t: Executio
723725
"",
724726
undefined,
725727
"/path/to/qlconfig.yml",
728+
OverlayDatabaseMode.None,
726729
getRunnerLogger(true),
727730
);
728731

@@ -752,6 +755,7 @@ test("does not pass a qlconfig to the CLI when it is undefined", async (t: Execu
752755
"",
753756
undefined,
754757
undefined, // undefined qlconfigFile
758+
OverlayDatabaseMode.None,
755759
getRunnerLogger(true),
756760
);
757761

@@ -1005,6 +1009,7 @@ test("Avoids duplicating --overwrite flag if specified in CODEQL_ACTION_EXTRA_OP
10051009
"sourceRoot",
10061010
undefined,
10071011
undefined,
1012+
OverlayDatabaseMode.None,
10081013
getRunnerLogger(false),
10091014
);
10101015

src/codeql.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
import { isAnalyzingDefaultBranch } from "./git-utils";
2525
import { Language } from "./languages";
2626
import { Logger } from "./logging";
27+
import { OverlayDatabaseMode } from "./overlay-database-utils";
2728
import * as setupCodeql from "./setup-codeql";
2829
import { ZstdAvailability } from "./tar";
2930
import { ToolsDownloadStatusReport } from "./tools-download";
@@ -82,6 +83,7 @@ export interface CodeQL {
8283
sourceRoot: string,
8384
processName: string | undefined,
8485
qlconfigFile: string | undefined,
86+
overlayDatabaseMode: OverlayDatabaseMode,
8587
logger: Logger,
8688
): Promise<void>;
8789
/**
@@ -552,6 +554,7 @@ export async function getCodeQLForCmd(
552554
sourceRoot: string,
553555
processName: string | undefined,
554556
qlconfigFile: string | undefined,
557+
overlayDatabaseMode: OverlayDatabaseMode,
555558
logger: Logger,
556559
) {
557560
const extraArgs = config.languages.map(
@@ -606,12 +609,20 @@ export async function getCodeQLForCmd(
606609
? "--force-overwrite"
607610
: "--overwrite";
608611

612+
if (overlayDatabaseMode === OverlayDatabaseMode.Overlay) {
613+
extraArgs.push("--overlay");
614+
} else if (overlayDatabaseMode === OverlayDatabaseMode.OverlayBase) {
615+
extraArgs.push("--overlay-base");
616+
}
617+
609618
await runCli(
610619
cmd,
611620
[
612621
"database",
613622
"init",
614-
overwriteFlag,
623+
...(overlayDatabaseMode === OverlayDatabaseMode.Overlay
624+
? []
625+
: [overwriteFlag]),
615626
"--db-cluster",
616627
config.dbLocation,
617628
`--source-root=${sourceRoot}`,

src/init-action.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import {
4242
} from "./init";
4343
import { Language } from "./languages";
4444
import { getActionsLogger, Logger } from "./logging";
45+
import { OverlayDatabaseMode } from "./overlay-database-utils";
4546
import { parseRepositoryNwo } from "./repository";
4647
import { ToolsSource } from "./setup-codeql";
4748
import {
@@ -687,6 +688,7 @@ async function run() {
687688
"Runner.Worker.exe",
688689
getOptionalInput("registries"),
689690
apiDetails,
691+
OverlayDatabaseMode.None,
690692
logger,
691693
);
692694
if (tracerConfig !== undefined) {

src/init.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import * as configUtils from "./config-utils";
1111
import { CodeQLDefaultVersionInfo, FeatureEnablement } from "./feature-flags";
1212
import { Language, isScannedLanguage } from "./languages";
1313
import { Logger } from "./logging";
14+
import { OverlayDatabaseMode } from "./overlay-database-utils";
1415
import { ToolsSource } from "./setup-codeql";
1516
import { ZstdAvailability } from "./tar";
1617
import { ToolsDownloadStatusReport } from "./tools-download";
@@ -86,6 +87,7 @@ export async function runInit(
8687
processName: string | undefined,
8788
registriesInput: string | undefined,
8889
apiDetails: GitHubApiCombinedDetails,
90+
overlayDatabaseMode: OverlayDatabaseMode,
8991
logger: Logger,
9092
): Promise<TracerConfig | undefined> {
9193
fs.mkdirSync(config.dbLocation, { recursive: true });
@@ -109,6 +111,7 @@ export async function runInit(
109111
sourceRoot,
110112
processName,
111113
qlconfigFile,
114+
overlayDatabaseMode,
112115
logger,
113116
),
114117
);

src/overlay-database-utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export enum OverlayDatabaseMode {
2+
Overlay = "overlay",
3+
OverlayBase = "overlay-base",
4+
None = "none",
5+
}

0 commit comments

Comments
 (0)