Permalink
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/lib/analysis-paths.test.js
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit adds a `packs` option to the codeql-config.yml file. Users can specify a list of ql packs to include in the analysis. For a single language analysis, the packs property looks like this: ```yaml packs: - pack-scope/pack-name1@1.2.3 - pack-scope/pack-name2 # no explicit version means download the latest ``` For multi-language analysis, you must key the packs block by lanaguage: ```yaml packs: cpp: - pack-scope/pack-name1@1.2.3 - pack-scope/pack-name2 java: - pack-scope/pack-name3@1.2.3 - pack-scope/pack-name4 ``` This implementation adds a new analysis run (alongside custom and builtin runs). The unit tests indicate that the correct commands are being run, but I have not actually tried this with a real CLI. Also, convert `instanceof Array` to `Array.isArray` since that is sightly better in some situations. See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#instanceof_vs_isarray
83 lines (83 sloc)
3.3 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
var __importStar = (this && this.__importStar) || function (mod) { | |
if (mod && mod.__esModule) return mod; | |
var result = {}; | |
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; | |
result["default"] = mod; | |
return result; | |
}; | |
var __importDefault = (this && this.__importDefault) || function (mod) { | |
return (mod && mod.__esModule) ? mod : { "default": mod }; | |
}; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
const path = __importStar(require("path")); | |
const ava_1 = __importDefault(require("ava")); | |
const analysisPaths = __importStar(require("./analysis-paths")); | |
const testing_utils_1 = require("./testing-utils"); | |
const util = __importStar(require("./util")); | |
testing_utils_1.setupTests(ava_1.default); | |
ava_1.default("emptyPaths", async (t) => { | |
return await util.withTmpDir(async (tmpDir) => { | |
const config = { | |
languages: [], | |
queries: {}, | |
pathsIgnore: [], | |
paths: [], | |
originalUserInput: {}, | |
tempDir: tmpDir, | |
toolCacheDir: tmpDir, | |
codeQLCmd: "", | |
gitHubVersion: { type: util.GitHubVariant.DOTCOM }, | |
dbLocation: path.resolve(tmpDir, "codeql_databases"), | |
packs: {}, | |
}; | |
analysisPaths.includeAndExcludeAnalysisPaths(config); | |
t.is(process.env["LGTM_INDEX_INCLUDE"], undefined); | |
t.is(process.env["LGTM_INDEX_EXCLUDE"], undefined); | |
t.is(process.env["LGTM_INDEX_FILTERS"], undefined); | |
}); | |
}); | |
ava_1.default("nonEmptyPaths", async (t) => { | |
return await util.withTmpDir(async (tmpDir) => { | |
const config = { | |
languages: [], | |
queries: {}, | |
paths: ["path1", "path2", "**/path3"], | |
pathsIgnore: ["path4", "path5", "path6/**"], | |
originalUserInput: {}, | |
tempDir: tmpDir, | |
toolCacheDir: tmpDir, | |
codeQLCmd: "", | |
gitHubVersion: { type: util.GitHubVariant.DOTCOM }, | |
dbLocation: path.resolve(tmpDir, "codeql_databases"), | |
packs: {}, | |
}; | |
analysisPaths.includeAndExcludeAnalysisPaths(config); | |
t.is(process.env["LGTM_INDEX_INCLUDE"], "path1\npath2"); | |
t.is(process.env["LGTM_INDEX_EXCLUDE"], "path4\npath5"); | |
t.is(process.env["LGTM_INDEX_FILTERS"], "include:path1\ninclude:path2\ninclude:**/path3\nexclude:path4\nexclude:path5\nexclude:path6/**"); | |
}); | |
}); | |
ava_1.default("exclude temp dir", async (t) => { | |
return await util.withTmpDir(async (toolCacheDir) => { | |
const tempDir = path.join(process.cwd(), "codeql-runner-temp"); | |
const config = { | |
languages: [], | |
queries: {}, | |
pathsIgnore: [], | |
paths: [], | |
originalUserInput: {}, | |
tempDir, | |
toolCacheDir, | |
codeQLCmd: "", | |
gitHubVersion: { type: util.GitHubVariant.DOTCOM }, | |
dbLocation: path.resolve(tempDir, "codeql_databases"), | |
packs: {}, | |
}; | |
analysisPaths.includeAndExcludeAnalysisPaths(config); | |
t.is(process.env["LGTM_INDEX_INCLUDE"], undefined); | |
t.is(process.env["LGTM_INDEX_EXCLUDE"], "codeql-runner-temp"); | |
t.is(process.env["LGTM_INDEX_FILTERS"], undefined); | |
}); | |
}); | |
//# sourceMappingURL=analysis-paths.test.js.map |