Address review comments from @henrymercer
This commit is contained in:
parent
4139682b64
commit
b29194f0ac
12 changed files with 95 additions and 58 deletions
34
lib/analyze-action.js
generated
34
lib/analyze-action.js
generated
|
|
@ -35,7 +35,7 @@ const upload_lib = __importStar(require("./upload-lib"));
|
||||||
const util = __importStar(require("./util"));
|
const util = __importStar(require("./util"));
|
||||||
// eslint-disable-next-line import/no-commonjs
|
// eslint-disable-next-line import/no-commonjs
|
||||||
const pkg = require("../package.json");
|
const pkg = require("../package.json");
|
||||||
async function sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, didUploadTrapCaches) {
|
async function sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, didUploadTrapCaches, logger) {
|
||||||
const status = actionsUtil.getActionsStatus(error, stats === null || stats === void 0 ? void 0 : stats.analyze_failure_language);
|
const status = actionsUtil.getActionsStatus(error, stats === null || stats === void 0 ? void 0 : stats.analyze_failure_language);
|
||||||
const statusReportBase = await actionsUtil.createStatusReportBase("finish", status, startedAt, error === null || error === void 0 ? void 0 : error.message, error === null || error === void 0 ? void 0 : error.stack);
|
const statusReportBase = await actionsUtil.createStatusReportBase("finish", status, startedAt, error === null || error === void 0 ? void 0 : error.message, error === null || error === void 0 ? void 0 : error.stack);
|
||||||
const statusReport = {
|
const statusReport = {
|
||||||
|
|
@ -46,12 +46,18 @@ async function sendStatusReport(startedAt, config, stats, error, trapCacheUpload
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
...(stats || {}),
|
...(stats || {}),
|
||||||
trap_cache_upload_duration_ms: trapCacheUploadTime || 0,
|
|
||||||
trap_cache_upload_size_bytes: config && didUploadTrapCaches
|
|
||||||
? await (0, trap_caching_1.getTotalCacheSize)(config.trapCaches)
|
|
||||||
: 0,
|
|
||||||
};
|
};
|
||||||
await actionsUtil.sendStatusReport(statusReport);
|
if (config && didUploadTrapCaches) {
|
||||||
|
const trapCacheUploadStatusReport = {
|
||||||
|
...statusReport,
|
||||||
|
trap_cache_upload_duration_ms: trapCacheUploadTime || 0,
|
||||||
|
trap_cache_upload_size_bytes: await (0, trap_caching_1.getTotalCacheSize)(config.trapCaches, logger),
|
||||||
|
};
|
||||||
|
await actionsUtil.sendStatusReport(trapCacheUploadStatusReport);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
await actionsUtil.sendStatusReport(statusReport);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
exports.sendStatusReport = sendStatusReport;
|
exports.sendStatusReport = sendStatusReport;
|
||||||
async function run() {
|
async function run() {
|
||||||
|
|
@ -63,11 +69,11 @@ async function run() {
|
||||||
let didUploadTrapCaches = false;
|
let didUploadTrapCaches = false;
|
||||||
util.initializeEnvironment(util.Mode.actions, pkg.version);
|
util.initializeEnvironment(util.Mode.actions, pkg.version);
|
||||||
await util.checkActionVersion(pkg.version);
|
await util.checkActionVersion(pkg.version);
|
||||||
|
const logger = (0, logging_1.getActionsLogger)();
|
||||||
try {
|
try {
|
||||||
if (!(await actionsUtil.sendStatusReport(await actionsUtil.createStatusReportBase("finish", "starting", startedAt)))) {
|
if (!(await actionsUtil.sendStatusReport(await actionsUtil.createStatusReportBase("finish", "starting", startedAt)))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const logger = (0, logging_1.getActionsLogger)();
|
|
||||||
config = await (0, config_utils_1.getConfig)(actionsUtil.getTemporaryDirectory(), logger);
|
config = await (0, config_utils_1.getConfig)(actionsUtil.getTemporaryDirectory(), logger);
|
||||||
if (config === undefined) {
|
if (config === undefined) {
|
||||||
throw new Error("Config file could not be found at expected location. Has the 'init' action been called?");
|
throw new Error("Config file could not be found at expected location. Has the 'init' action been called?");
|
||||||
|
|
@ -106,9 +112,9 @@ async function run() {
|
||||||
// Possibly upload the database bundles for remote queries
|
// Possibly upload the database bundles for remote queries
|
||||||
await (0, database_upload_1.uploadDatabases)(repositoryNwo, config, apiDetails, logger);
|
await (0, database_upload_1.uploadDatabases)(repositoryNwo, config, apiDetails, logger);
|
||||||
// Possibly upload the TRAP caches for later re-use
|
// Possibly upload the TRAP caches for later re-use
|
||||||
const trapCacheUploadStartTime = Date.now();
|
const trapCacheUploadStartTime = performance.now();
|
||||||
const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd);
|
const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd);
|
||||||
trapCacheUploadTime = Date.now() - trapCacheUploadStartTime;
|
trapCacheUploadTime = performance.now() - trapCacheUploadStartTime;
|
||||||
didUploadTrapCaches = await (0, trap_caching_1.uploadTrapCaches)(codeql, config, logger);
|
didUploadTrapCaches = await (0, trap_caching_1.uploadTrapCaches)(codeql, config, logger);
|
||||||
// We don't upload results in test mode, so don't wait for processing
|
// We don't upload results in test mode, so don't wait for processing
|
||||||
if (util.isInTestMode()) {
|
if (util.isInTestMode()) {
|
||||||
|
|
@ -125,10 +131,10 @@ async function run() {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
if (error instanceof analyze_1.CodeQLAnalysisError) {
|
if (error instanceof analyze_1.CodeQLAnalysisError) {
|
||||||
const stats = { ...error.queriesStatusReport };
|
const stats = { ...error.queriesStatusReport };
|
||||||
await sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, didUploadTrapCaches);
|
await sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, didUploadTrapCaches, logger);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
await sendStatusReport(startedAt, config, undefined, error, trapCacheUploadTime, didUploadTrapCaches);
|
await sendStatusReport(startedAt, config, undefined, error, trapCacheUploadTime, didUploadTrapCaches, logger);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -136,13 +142,13 @@ async function run() {
|
||||||
await sendStatusReport(startedAt, config, {
|
await sendStatusReport(startedAt, config, {
|
||||||
...runStats,
|
...runStats,
|
||||||
...uploadResult.statusReport,
|
...uploadResult.statusReport,
|
||||||
}, undefined, trapCacheUploadTime, didUploadTrapCaches);
|
}, undefined, trapCacheUploadTime, didUploadTrapCaches, logger);
|
||||||
}
|
}
|
||||||
else if (runStats) {
|
else if (runStats) {
|
||||||
await sendStatusReport(startedAt, config, { ...runStats }, undefined, trapCacheUploadTime, didUploadTrapCaches);
|
await sendStatusReport(startedAt, config, { ...runStats }, undefined, trapCacheUploadTime, didUploadTrapCaches, logger);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
await sendStatusReport(startedAt, config, undefined, undefined, trapCacheUploadTime, didUploadTrapCaches);
|
await sendStatusReport(startedAt, config, undefined, undefined, trapCacheUploadTime, didUploadTrapCaches, logger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.runPromise = run();
|
exports.runPromise = run();
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
4
lib/config-utils.js
generated
4
lib/config-utils.js
generated
|
|
@ -517,9 +517,9 @@ async function downloadCacheWithTime(trapCachingEnabled, codeQL, languages, logg
|
||||||
let trapCaches = {};
|
let trapCaches = {};
|
||||||
let trapCacheDownloadTime = 0;
|
let trapCacheDownloadTime = 0;
|
||||||
if (trapCachingEnabled) {
|
if (trapCachingEnabled) {
|
||||||
const start = Date.now();
|
const start = performance.now();
|
||||||
trapCaches = await (0, trap_caching_1.downloadTrapCaches)(codeQL, languages, logger);
|
trapCaches = await (0, trap_caching_1.downloadTrapCaches)(codeQL, languages, logger);
|
||||||
trapCacheDownloadTime = Date.now() - start;
|
trapCacheDownloadTime = performance.now() - start;
|
||||||
}
|
}
|
||||||
return { trapCaches, trapCacheDownloadTime };
|
return { trapCaches, trapCacheDownloadTime };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
6
lib/init-action.js
generated
6
lib/init-action.js
generated
|
|
@ -33,7 +33,7 @@ const trap_caching_1 = require("./trap-caching");
|
||||||
const util_1 = require("./util");
|
const util_1 = require("./util");
|
||||||
// eslint-disable-next-line import/no-commonjs
|
// eslint-disable-next-line import/no-commonjs
|
||||||
const pkg = require("../package.json");
|
const pkg = require("../package.json");
|
||||||
async function sendSuccessStatusReport(startedAt, config, toolsVersion) {
|
async function sendSuccessStatusReport(startedAt, config, toolsVersion, logger) {
|
||||||
var _a;
|
var _a;
|
||||||
const statusReportBase = await (0, actions_util_1.createStatusReportBase)("init", "success", startedAt);
|
const statusReportBase = await (0, actions_util_1.createStatusReportBase)("init", "success", startedAt);
|
||||||
const languages = config.languages.join(",");
|
const languages = config.languages.join(",");
|
||||||
|
|
@ -66,7 +66,7 @@ async function sendSuccessStatusReport(startedAt, config, toolsVersion) {
|
||||||
tools_resolved_version: toolsVersion,
|
tools_resolved_version: toolsVersion,
|
||||||
workflow_languages: workflowLanguages || "",
|
workflow_languages: workflowLanguages || "",
|
||||||
trap_cache_languages: Object.keys(config.trapCaches).join(","),
|
trap_cache_languages: Object.keys(config.trapCaches).join(","),
|
||||||
trap_cache_download_size_bytes: await (0, trap_caching_1.getTotalCacheSize)(config.trapCaches),
|
trap_cache_download_size_bytes: await (0, trap_caching_1.getTotalCacheSize)(config.trapCaches, logger),
|
||||||
trap_cache_download_duration_ms: config.trapCacheDownloadTime,
|
trap_cache_download_duration_ms: config.trapCacheDownloadTime,
|
||||||
};
|
};
|
||||||
await (0, actions_util_1.sendStatusReport)(statusReport);
|
await (0, actions_util_1.sendStatusReport)(statusReport);
|
||||||
|
|
@ -156,7 +156,7 @@ async function run() {
|
||||||
await (0, actions_util_1.sendStatusReport)(await (0, actions_util_1.createStatusReportBase)("init", (0, actions_util_1.getActionsStatus)(error), startedAt, String(error), error instanceof Error ? error.stack : undefined));
|
await (0, actions_util_1.sendStatusReport)(await (0, actions_util_1.createStatusReportBase)("init", (0, actions_util_1.getActionsStatus)(error), startedAt, String(error), error instanceof Error ? error.stack : undefined));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await sendSuccessStatusReport(startedAt, config, toolsVersion);
|
await sendSuccessStatusReport(startedAt, config, toolsVersion, logger);
|
||||||
}
|
}
|
||||||
async function getTrapCachingEnabled(featureFlags) {
|
async function getTrapCachingEnabled(featureFlags) {
|
||||||
const trapCaching = (0, actions_util_1.getOptionalInput)("trap-caching");
|
const trapCaching = (0, actions_util_1.getOptionalInput)("trap-caching");
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
11
lib/trap-caching.js
generated
11
lib/trap-caching.js
generated
|
|
@ -159,14 +159,17 @@ async function getLanguagesSupportingCaching(codeql, languages, logger) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
exports.getLanguagesSupportingCaching = getLanguagesSupportingCaching;
|
exports.getLanguagesSupportingCaching = getLanguagesSupportingCaching;
|
||||||
async function getTotalCacheSize(trapCaches) {
|
async function getTotalCacheSize(trapCaches, logger) {
|
||||||
const sizes = await Promise.all(Object.values(trapCaches).map(async (cacheDir) => {
|
const sizes = await Promise.all(Object.values(trapCaches).map(async (cacheDir) => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
(0, get_folder_size_1.default)(cacheDir, (err, size) => {
|
(0, get_folder_size_1.default)(cacheDir, (err, size) => {
|
||||||
// Ignore file system errors when getting the size. It's only used for telemetry anyway.
|
if (err) {
|
||||||
if (err)
|
logger.warning(`Error getting size of ${cacheDir}: ${err}`);
|
||||||
resolve(0);
|
resolve(0);
|
||||||
resolve(size);
|
}
|
||||||
|
else {
|
||||||
|
resolve(size);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -13,7 +13,7 @@ import { getCodeQL } from "./codeql";
|
||||||
import { Config, getConfig } from "./config-utils";
|
import { Config, getConfig } from "./config-utils";
|
||||||
import { uploadDatabases } from "./database-upload";
|
import { uploadDatabases } from "./database-upload";
|
||||||
import { GitHubFeatureFlags } from "./feature-flags";
|
import { GitHubFeatureFlags } from "./feature-flags";
|
||||||
import { getActionsLogger } from "./logging";
|
import { getActionsLogger, Logger } from "./logging";
|
||||||
import { parseRepositoryNwo } from "./repository";
|
import { parseRepositoryNwo } from "./repository";
|
||||||
import { getTotalCacheSize, uploadTrapCaches } from "./trap-caching";
|
import { getTotalCacheSize, uploadTrapCaches } from "./trap-caching";
|
||||||
import * as upload_lib from "./upload-lib";
|
import * as upload_lib from "./upload-lib";
|
||||||
|
|
@ -29,8 +29,12 @@ interface AnalysisStatusReport
|
||||||
|
|
||||||
interface FinishStatusReport
|
interface FinishStatusReport
|
||||||
extends actionsUtil.StatusReportBase,
|
extends actionsUtil.StatusReportBase,
|
||||||
AnalysisStatusReport {
|
AnalysisStatusReport {}
|
||||||
|
|
||||||
|
interface FinishWithTrapUploadStatusReport extends FinishStatusReport {
|
||||||
|
/** Size of TRAP caches that we uploaded, in bytes. */
|
||||||
trap_cache_upload_size_bytes: number;
|
trap_cache_upload_size_bytes: number;
|
||||||
|
/** Time taken to upload TRAP caches, in milliseconds. */
|
||||||
trap_cache_upload_duration_ms: number;
|
trap_cache_upload_duration_ms: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -38,9 +42,10 @@ export async function sendStatusReport(
|
||||||
startedAt: Date,
|
startedAt: Date,
|
||||||
config: Config | undefined,
|
config: Config | undefined,
|
||||||
stats: AnalysisStatusReport | undefined,
|
stats: AnalysisStatusReport | undefined,
|
||||||
error?: Error,
|
error: Error | undefined,
|
||||||
trapCacheUploadTime?: number,
|
trapCacheUploadTime: number | undefined,
|
||||||
didUploadTrapCaches?: boolean
|
didUploadTrapCaches: boolean,
|
||||||
|
logger: Logger
|
||||||
) {
|
) {
|
||||||
const status = actionsUtil.getActionsStatus(
|
const status = actionsUtil.getActionsStatus(
|
||||||
error,
|
error,
|
||||||
|
|
@ -62,13 +67,20 @@ export async function sendStatusReport(
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
...(stats || {}),
|
...(stats || {}),
|
||||||
trap_cache_upload_duration_ms: trapCacheUploadTime || 0,
|
|
||||||
trap_cache_upload_size_bytes:
|
|
||||||
config && didUploadTrapCaches
|
|
||||||
? await getTotalCacheSize(config.trapCaches)
|
|
||||||
: 0,
|
|
||||||
};
|
};
|
||||||
await actionsUtil.sendStatusReport(statusReport);
|
if (config && didUploadTrapCaches) {
|
||||||
|
const trapCacheUploadStatusReport: FinishWithTrapUploadStatusReport = {
|
||||||
|
...statusReport,
|
||||||
|
trap_cache_upload_duration_ms: trapCacheUploadTime || 0,
|
||||||
|
trap_cache_upload_size_bytes: await getTotalCacheSize(
|
||||||
|
config.trapCaches,
|
||||||
|
logger
|
||||||
|
),
|
||||||
|
};
|
||||||
|
await actionsUtil.sendStatusReport(trapCacheUploadStatusReport);
|
||||||
|
} else {
|
||||||
|
await actionsUtil.sendStatusReport(statusReport);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
|
|
@ -81,6 +93,7 @@ async function run() {
|
||||||
util.initializeEnvironment(util.Mode.actions, pkg.version);
|
util.initializeEnvironment(util.Mode.actions, pkg.version);
|
||||||
await util.checkActionVersion(pkg.version);
|
await util.checkActionVersion(pkg.version);
|
||||||
|
|
||||||
|
const logger = getActionsLogger();
|
||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
!(await actionsUtil.sendStatusReport(
|
!(await actionsUtil.sendStatusReport(
|
||||||
|
|
@ -93,7 +106,6 @@ async function run() {
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const logger = getActionsLogger();
|
|
||||||
config = await getConfig(actionsUtil.getTemporaryDirectory(), logger);
|
config = await getConfig(actionsUtil.getTemporaryDirectory(), logger);
|
||||||
if (config === undefined) {
|
if (config === undefined) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
|
|
@ -175,9 +187,9 @@ async function run() {
|
||||||
await uploadDatabases(repositoryNwo, config, apiDetails, logger);
|
await uploadDatabases(repositoryNwo, config, apiDetails, logger);
|
||||||
|
|
||||||
// Possibly upload the TRAP caches for later re-use
|
// Possibly upload the TRAP caches for later re-use
|
||||||
const trapCacheUploadStartTime = Date.now();
|
const trapCacheUploadStartTime = performance.now();
|
||||||
const codeql = await getCodeQL(config.codeQLCmd);
|
const codeql = await getCodeQL(config.codeQLCmd);
|
||||||
trapCacheUploadTime = Date.now() - trapCacheUploadStartTime;
|
trapCacheUploadTime = performance.now() - trapCacheUploadStartTime;
|
||||||
didUploadTrapCaches = await uploadTrapCaches(codeql, config, logger);
|
didUploadTrapCaches = await uploadTrapCaches(codeql, config, logger);
|
||||||
|
|
||||||
// We don't upload results in test mode, so don't wait for processing
|
// We don't upload results in test mode, so don't wait for processing
|
||||||
|
|
@ -208,7 +220,8 @@ async function run() {
|
||||||
stats,
|
stats,
|
||||||
error,
|
error,
|
||||||
trapCacheUploadTime,
|
trapCacheUploadTime,
|
||||||
didUploadTrapCaches
|
didUploadTrapCaches,
|
||||||
|
logger
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
await sendStatusReport(
|
await sendStatusReport(
|
||||||
|
|
@ -217,7 +230,8 @@ async function run() {
|
||||||
undefined,
|
undefined,
|
||||||
error,
|
error,
|
||||||
trapCacheUploadTime,
|
trapCacheUploadTime,
|
||||||
didUploadTrapCaches
|
didUploadTrapCaches,
|
||||||
|
logger
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -234,7 +248,8 @@ async function run() {
|
||||||
},
|
},
|
||||||
undefined,
|
undefined,
|
||||||
trapCacheUploadTime,
|
trapCacheUploadTime,
|
||||||
didUploadTrapCaches
|
didUploadTrapCaches,
|
||||||
|
logger
|
||||||
);
|
);
|
||||||
} else if (runStats) {
|
} else if (runStats) {
|
||||||
await sendStatusReport(
|
await sendStatusReport(
|
||||||
|
|
@ -243,7 +258,8 @@ async function run() {
|
||||||
{ ...runStats },
|
{ ...runStats },
|
||||||
undefined,
|
undefined,
|
||||||
trapCacheUploadTime,
|
trapCacheUploadTime,
|
||||||
didUploadTrapCaches
|
didUploadTrapCaches,
|
||||||
|
logger
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
await sendStatusReport(
|
await sendStatusReport(
|
||||||
|
|
@ -252,7 +268,8 @@ async function run() {
|
||||||
undefined,
|
undefined,
|
||||||
undefined,
|
undefined,
|
||||||
trapCacheUploadTime,
|
trapCacheUploadTime,
|
||||||
didUploadTrapCaches
|
didUploadTrapCaches,
|
||||||
|
logger
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1052,13 +1052,16 @@ async function downloadCacheWithTime(
|
||||||
codeQL: CodeQL,
|
codeQL: CodeQL,
|
||||||
languages: Language[],
|
languages: Language[],
|
||||||
logger: Logger
|
logger: Logger
|
||||||
) {
|
): Promise<{
|
||||||
|
trapCaches: Partial<Record<Language, string>>;
|
||||||
|
trapCacheDownloadTime: number;
|
||||||
|
}> {
|
||||||
let trapCaches = {};
|
let trapCaches = {};
|
||||||
let trapCacheDownloadTime = 0;
|
let trapCacheDownloadTime = 0;
|
||||||
if (trapCachingEnabled) {
|
if (trapCachingEnabled) {
|
||||||
const start = Date.now();
|
const start = performance.now();
|
||||||
trapCaches = await downloadTrapCaches(codeQL, languages, logger);
|
trapCaches = await downloadTrapCaches(codeQL, languages, logger);
|
||||||
trapCacheDownloadTime = Date.now() - start;
|
trapCacheDownloadTime = performance.now() - start;
|
||||||
}
|
}
|
||||||
return { trapCaches, trapCacheDownloadTime };
|
return { trapCaches, trapCacheDownloadTime };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import {
|
||||||
runInit,
|
runInit,
|
||||||
} from "./init";
|
} from "./init";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages";
|
||||||
import { getActionsLogger } from "./logging";
|
import { getActionsLogger, Logger } from "./logging";
|
||||||
import { parseRepositoryNwo } from "./repository";
|
import { parseRepositoryNwo } from "./repository";
|
||||||
import { getTotalCacheSize } from "./trap-caching";
|
import { getTotalCacheSize } from "./trap-caching";
|
||||||
import {
|
import {
|
||||||
|
|
@ -68,7 +68,7 @@ interface InitSuccessStatusReport extends StatusReportBase {
|
||||||
workflow_languages: string;
|
workflow_languages: string;
|
||||||
/** Comma-separated list of languages for which we are using TRAP caching. */
|
/** Comma-separated list of languages for which we are using TRAP caching. */
|
||||||
trap_cache_languages: string;
|
trap_cache_languages: string;
|
||||||
/** Size of TRAP caches that we downloaded, in megabytes. */
|
/** Size of TRAP caches that we downloaded, in bytes. */
|
||||||
trap_cache_download_size_bytes: number;
|
trap_cache_download_size_bytes: number;
|
||||||
/** Time taken to download TRAP caches, in milliseconds. */
|
/** Time taken to download TRAP caches, in milliseconds. */
|
||||||
trap_cache_download_duration_ms: number;
|
trap_cache_download_duration_ms: number;
|
||||||
|
|
@ -77,7 +77,8 @@ interface InitSuccessStatusReport extends StatusReportBase {
|
||||||
async function sendSuccessStatusReport(
|
async function sendSuccessStatusReport(
|
||||||
startedAt: Date,
|
startedAt: Date,
|
||||||
config: configUtils.Config,
|
config: configUtils.Config,
|
||||||
toolsVersion: string
|
toolsVersion: string,
|
||||||
|
logger: Logger
|
||||||
) {
|
) {
|
||||||
const statusReportBase = await createStatusReportBase(
|
const statusReportBase = await createStatusReportBase(
|
||||||
"init",
|
"init",
|
||||||
|
|
@ -123,7 +124,10 @@ async function sendSuccessStatusReport(
|
||||||
tools_resolved_version: toolsVersion,
|
tools_resolved_version: toolsVersion,
|
||||||
workflow_languages: workflowLanguages || "",
|
workflow_languages: workflowLanguages || "",
|
||||||
trap_cache_languages: Object.keys(config.trapCaches).join(","),
|
trap_cache_languages: Object.keys(config.trapCaches).join(","),
|
||||||
trap_cache_download_size_bytes: await getTotalCacheSize(config.trapCaches),
|
trap_cache_download_size_bytes: await getTotalCacheSize(
|
||||||
|
config.trapCaches,
|
||||||
|
logger
|
||||||
|
),
|
||||||
trap_cache_download_duration_ms: config.trapCacheDownloadTime,
|
trap_cache_download_duration_ms: config.trapCacheDownloadTime,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -308,7 +312,7 @@ async function run() {
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await sendSuccessStatusReport(startedAt, config, toolsVersion);
|
await sendSuccessStatusReport(startedAt, config, toolsVersion, logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getTrapCachingEnabled(
|
async function getTrapCachingEnabled(
|
||||||
|
|
|
||||||
|
|
@ -185,15 +185,19 @@ export async function getLanguagesSupportingCaching(
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getTotalCacheSize(
|
export async function getTotalCacheSize(
|
||||||
trapCaches: Partial<Record<Language, string>>
|
trapCaches: Partial<Record<Language, string>>,
|
||||||
|
logger: Logger
|
||||||
): Promise<number> {
|
): Promise<number> {
|
||||||
const sizes = await Promise.all(
|
const sizes = await Promise.all(
|
||||||
Object.values(trapCaches).map(async (cacheDir) => {
|
Object.values(trapCaches).map(async (cacheDir) => {
|
||||||
return new Promise<number>((resolve) => {
|
return new Promise<number>((resolve) => {
|
||||||
getFolderSize(cacheDir, (err, size) => {
|
getFolderSize(cacheDir, (err, size) => {
|
||||||
// Ignore file system errors when getting the size. It's only used for telemetry anyway.
|
if (err) {
|
||||||
if (err) resolve(0);
|
logger.warning(`Error getting size of ${cacheDir}: ${err}`);
|
||||||
resolve(size);
|
resolve(0);
|
||||||
|
} else {
|
||||||
|
resolve(size);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue