mirror of
https://github.com/github/codeql-action.git
synced 2025-12-16 04:19:38 +08:00
* Bump the npm group with 2 updates Bumps the npm group with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [typescript](https://github.com/Microsoft/TypeScript). Updates `@typescript-eslint/eslint-plugin` from 7.1.0 to 7.1.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.1/packages/eslint-plugin) Updates `typescript` from 5.3.3 to 5.4.2 - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm ... Signed-off-by: dependabot[bot] <support@github.com> * Rebuild sources --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew Eisenberg <aeisenberg@github.com>
171 lines
7.7 KiB
JavaScript
Generated
171 lines
7.7 KiB
JavaScript
Generated
"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 (mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const fs = __importStar(require("fs"));
|
|
const path = __importStar(require("path"));
|
|
const cache = __importStar(require("@actions/cache"));
|
|
const ava_1 = __importDefault(require("ava"));
|
|
const sinon = __importStar(require("sinon"));
|
|
const actionsUtil = __importStar(require("./actions-util"));
|
|
const codeql_1 = require("./codeql");
|
|
const languages_1 = require("./languages");
|
|
const testing_utils_1 = require("./testing-utils");
|
|
const trap_caching_1 = require("./trap-caching");
|
|
const util = __importStar(require("./util"));
|
|
(0, testing_utils_1.setupTests)(ava_1.default);
|
|
const stubCodeql = (0, codeql_1.setCodeQL)({
|
|
async getVersion() {
|
|
return (0, testing_utils_1.makeVersionInfo)("2.10.3");
|
|
},
|
|
async betterResolveLanguages() {
|
|
return {
|
|
extractors: {
|
|
[languages_1.Language.javascript]: [
|
|
{
|
|
extractor_root: "some_root",
|
|
extractor_options: {
|
|
trap: {
|
|
properties: {
|
|
cache: {
|
|
properties: {
|
|
dir: {
|
|
title: "Cache directory",
|
|
},
|
|
bound: {
|
|
title: "Cache bound",
|
|
},
|
|
write: {
|
|
title: "Cache write",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
[languages_1.Language.cpp]: [
|
|
{
|
|
extractor_root: "other_root",
|
|
},
|
|
],
|
|
},
|
|
};
|
|
},
|
|
});
|
|
const testConfigWithoutTmpDir = (0, testing_utils_1.createTestConfig)({
|
|
languages: [languages_1.Language.javascript, languages_1.Language.cpp],
|
|
trapCaches: {
|
|
javascript: "/some/cache/dir",
|
|
},
|
|
});
|
|
function getTestConfigWithTempDir(tempDir) {
|
|
return (0, testing_utils_1.createTestConfig)({
|
|
languages: [languages_1.Language.javascript, languages_1.Language.ruby],
|
|
tempDir,
|
|
dbLocation: path.resolve(tempDir, "codeql_databases"),
|
|
trapCaches: {
|
|
javascript: path.resolve(tempDir, "jsCache"),
|
|
ruby: path.resolve(tempDir, "rubyCache"),
|
|
},
|
|
});
|
|
}
|
|
(0, ava_1.default)("check flags for JS, analyzing default branch", async (t) => {
|
|
await util.withTmpDir(async (tmpDir) => {
|
|
const config = getTestConfigWithTempDir(tmpDir);
|
|
sinon.stub(actionsUtil, "isAnalyzingDefaultBranch").resolves(true);
|
|
const result = await (0, codeql_1.getTrapCachingExtractorConfigArgsForLang)(config, languages_1.Language.javascript);
|
|
t.deepEqual(result, [
|
|
`-O=javascript.trap.cache.dir=${path.resolve(tmpDir, "jsCache")}`,
|
|
"-O=javascript.trap.cache.bound=1024",
|
|
"-O=javascript.trap.cache.write=true",
|
|
]);
|
|
});
|
|
});
|
|
(0, ava_1.default)("check flags for all, not analyzing default branch", async (t) => {
|
|
await util.withTmpDir(async (tmpDir) => {
|
|
const config = getTestConfigWithTempDir(tmpDir);
|
|
sinon.stub(actionsUtil, "isAnalyzingDefaultBranch").resolves(false);
|
|
const result = await (0, codeql_1.getTrapCachingExtractorConfigArgs)(config);
|
|
t.deepEqual(result, [
|
|
`-O=javascript.trap.cache.dir=${path.resolve(tmpDir, "jsCache")}`,
|
|
"-O=javascript.trap.cache.bound=1024",
|
|
"-O=javascript.trap.cache.write=false",
|
|
`-O=ruby.trap.cache.dir=${path.resolve(tmpDir, "rubyCache")}`,
|
|
"-O=ruby.trap.cache.bound=1024",
|
|
"-O=ruby.trap.cache.write=false",
|
|
]);
|
|
});
|
|
});
|
|
(0, ava_1.default)("get languages that support TRAP caching", async (t) => {
|
|
const loggedMessages = [];
|
|
const logger = (0, testing_utils_1.getRecordingLogger)(loggedMessages);
|
|
const languagesSupportingCaching = await (0, trap_caching_1.getLanguagesSupportingCaching)(stubCodeql, [languages_1.Language.javascript, languages_1.Language.cpp], logger);
|
|
t.deepEqual(languagesSupportingCaching, [languages_1.Language.javascript]);
|
|
});
|
|
(0, ava_1.default)("upload cache key contains right fields", async (t) => {
|
|
const loggedMessages = [];
|
|
const logger = (0, testing_utils_1.getRecordingLogger)(loggedMessages);
|
|
sinon.stub(actionsUtil, "isAnalyzingDefaultBranch").resolves(true);
|
|
sinon.stub(util, "tryGetFolderBytes").resolves(999_999_999);
|
|
const stubSave = sinon.stub(cache, "saveCache");
|
|
process.env.GITHUB_SHA = "somesha";
|
|
await (0, trap_caching_1.uploadTrapCaches)(stubCodeql, testConfigWithoutTmpDir, logger);
|
|
t.assert(stubSave.calledOnceWith(sinon.match.array.contains(["/some/cache/dir"]), sinon
|
|
.match("somesha")
|
|
.and(sinon.match("2.10.3"))
|
|
.and(sinon.match("javascript"))));
|
|
});
|
|
(0, ava_1.default)("download cache looks for the right key and creates dir", async (t) => {
|
|
await util.withTmpDir(async (tmpDir) => {
|
|
const loggedMessages = [];
|
|
const logger = (0, testing_utils_1.getRecordingLogger)(loggedMessages);
|
|
sinon.stub(actionsUtil, "getTemporaryDirectory").returns(tmpDir);
|
|
sinon.stub(actionsUtil, "isAnalyzingDefaultBranch").resolves(false);
|
|
const stubRestore = sinon.stub(cache, "restoreCache").resolves("found");
|
|
const eventFile = path.resolve(tmpDir, "event.json");
|
|
process.env.GITHUB_EVENT_NAME = "pull_request";
|
|
process.env.GITHUB_EVENT_PATH = eventFile;
|
|
fs.writeFileSync(eventFile, JSON.stringify({
|
|
pull_request: {
|
|
base: {
|
|
sha: "somesha",
|
|
},
|
|
},
|
|
}));
|
|
await (0, trap_caching_1.downloadTrapCaches)(stubCodeql, [languages_1.Language.javascript, languages_1.Language.cpp], logger);
|
|
t.assert(stubRestore.calledOnceWith(sinon.match.array.contains([
|
|
path.resolve(tmpDir, "trapCaches", "javascript"),
|
|
]), sinon
|
|
.match("somesha")
|
|
.and(sinon.match("2.10.3"))
|
|
.and(sinon.match("javascript"))));
|
|
t.assert(fs.existsSync(path.resolve(tmpDir, "trapCaches", "javascript")));
|
|
});
|
|
});
|
|
//# sourceMappingURL=trap-caching.test.js.map
|