Merge main into releases/v3 (#2437)
* Consider registries_credentials as input * Clean-up logging * More debugging of credentials * Support URL * Validate credentials input * fixes * Try upload teh proxy logs * Update changelog and version after v3.26.3 * Update checked-in dependencies * Stop checking disk usage for MacOS ARM with SIP disabled (#2434) * Stop checking disk usage for MacOS ARM with SIP disabled On MacOS ARM machines where SIP is disabled, after the build tracer is initialized in the `init` Action, we receive warnings when we run send status reports due to the `df` binary. This change will make it so that we no longer run `df` for those machines. * Add deprecation message to `add-snippets` input. * Update changelog with deprecation. * Add link to PR deprecating `add-snippets` to CHANGELOG.md Co-authored-by: Andrew Eisenberg <aeisenberg@github.com> * Address incorrect changelog location * Update changelog for v3.26.4 --------- Co-authored-by: Marco Gario <marcogario@github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Henry Mercer <henry@henrymercer.name> Co-authored-by: Arthur Baars <aibaars@github.com> Co-authored-by: Angela P Wen <angelapwen@github.com> Co-authored-by: Remco Vermeulen <rvermeulen@github.com> Co-authored-by: Remco Vermeulen <rvermeulen@users.noreply.github.com> Co-authored-by: Andrew Eisenberg <aeisenberg@github.com>
This commit is contained in:
commit
f0f3afee80
33 changed files with 354 additions and 170 deletions
|
|
@ -4,6 +4,11 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
||||||
|
|
||||||
Note that the only difference between `v2` and `v3` of the CodeQL Action is the node version they support, with `v3` running on node 20 while we continue to release `v2` to support running on node 16. For example `3.22.11` was the first `v3` release and is functionally identical to `2.22.11`. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.
|
Note that the only difference between `v2` and `v3` of the CodeQL Action is the node version they support, with `v3` running on node 20 while we continue to release `v2` to support running on node 16. For example `3.22.11` was the first `v3` release and is functionally identical to `2.22.11`. This approach ensures an easy way to track exactly which features are included in different versions, indicated by the minor and patch version numbers.
|
||||||
|
|
||||||
|
## 3.26.4 - 21 Aug 2024
|
||||||
|
|
||||||
|
- _Deprecation:_ The `add-snippets` input on the `analyze` Action is deprecated and will be removed in the first release in August 2025. [#2436](https://github.com/github/codeql-action/pull/2436)
|
||||||
|
- Fix an issue where the disk usage system call used for telemetry would fail on MacOS ARM machines with System Integrity Protection disabled, and then surface a warning. The system call is now disabled for these machines. [#2434](https://github.com/github/codeql-action/pull/2434)
|
||||||
|
|
||||||
## 3.26.3 - 19 Aug 2024
|
## 3.26.3 - 19 Aug 2024
|
||||||
|
|
||||||
- Fix an issue where the CodeQL Action could not write diagnostic messages on Windows. This issue did not impact analysis quality. [#2430](https://github.com/github/codeql-action/pull/2430)
|
- Fix an issue where the CodeQL Action could not write diagnostic messages on Windows. This issue did not impact analysis quality. [#2430](https://github.com/github/codeql-action/pull/2430)
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,11 @@ inputs:
|
||||||
description: Specify whether or not to add code snippets to the output sarif file.
|
description: Specify whether or not to add code snippets to the output sarif file.
|
||||||
required: false
|
required: false
|
||||||
default: "false"
|
default: "false"
|
||||||
|
deprecationMessage: >-
|
||||||
|
The input "add-snippets" is deprecated and will be removed on the first release in August 2025.
|
||||||
|
When this input is set to true it is expected to add code snippets with an alert to the SARIF file.
|
||||||
|
However, since Code Scanning ignores code snippets provided as part of a SARIF file this is currently
|
||||||
|
a no operation. No alternative is available.
|
||||||
skip-queries:
|
skip-queries:
|
||||||
description: If this option is set, the CodeQL database will be built but no queries will be run on it. Thus, no results will be produced.
|
description: If this option is set, the CodeQL database will be built but no queries will be run on it. Thus, no results will be produced.
|
||||||
required: false
|
required: false
|
||||||
|
|
|
||||||
2
lib/analyze-action.js
generated
2
lib/analyze-action.js
generated
|
|
@ -50,7 +50,7 @@ const uploadLib = __importStar(require("./upload-lib"));
|
||||||
const util = __importStar(require("./util"));
|
const util = __importStar(require("./util"));
|
||||||
async function sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, dbCreationTimings, didUploadTrapCaches, trapCacheCleanup, logger) {
|
async function sendStatusReport(startedAt, config, stats, error, trapCacheUploadTime, dbCreationTimings, didUploadTrapCaches, trapCacheCleanup, logger) {
|
||||||
const status = (0, status_report_1.getActionsStatus)(error, stats?.analyze_failure_language);
|
const status = (0, status_report_1.getActionsStatus)(error, stats?.analyze_failure_language);
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.Analyze, status, startedAt, config, await util.checkDiskUsage(), logger, error?.message, error?.stack);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.Analyze, status, startedAt, config, await util.checkDiskUsage(logger), logger, error?.message, error?.stack);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
const report = {
|
const report = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
4
lib/init-action-post.js
generated
4
lib/init-action-post.js
generated
|
|
@ -59,7 +59,7 @@ async function runWrapper() {
|
||||||
catch (unwrappedError) {
|
catch (unwrappedError) {
|
||||||
const error = (0, util_1.wrapError)(unwrappedError);
|
const error = (0, util_1.wrapError)(unwrappedError);
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.InitPost, (0, status_report_1.getActionsStatus)(error), startedAt, config, await (0, util_1.checkDiskUsage)(), logger, error.message, error.stack);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.InitPost, (0, status_report_1.getActionsStatus)(error), startedAt, config, await (0, util_1.checkDiskUsage)(logger), logger, error.message, error.stack);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
||||||
}
|
}
|
||||||
|
|
@ -67,7 +67,7 @@ async function runWrapper() {
|
||||||
}
|
}
|
||||||
const jobStatus = initActionPostHelper.getFinalJobStatus();
|
const jobStatus = initActionPostHelper.getFinalJobStatus();
|
||||||
logger.info(`CodeQL job status was ${(0, status_report_1.getJobStatusDisplayName)(jobStatus)}.`);
|
logger.info(`CodeQL job status was ${(0, status_report_1.getJobStatusDisplayName)(jobStatus)}.`);
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.InitPost, "success", startedAt, config, await (0, util_1.checkDiskUsage)(), logger);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.InitPost, "success", startedAt, config, await (0, util_1.checkDiskUsage)(logger), logger);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
const statusReport = {
|
const statusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,iDAAuE;AACvE,6CAAgD;AAChD,iDAAmD;AACnD,kEAAoD;AACpD,mDAA2C;AAC3C,gFAAkE;AAClE,uCAA6C;AAC7C,6CAAkD;AAClD,mDAOyB;AACzB,iCAKgB;AAOhB,KAAK,UAAU,UAAU;IACvB,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,MAA0B,CAAC;IAC/B,IAAI,uBAES,CAAC;IACd,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAA,+BAAkB,EACtC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CACzC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,aAAa,EACb,aAAa,EACb,IAAA,oCAAqB,GAAE,EACvB,MAAM,CACP,CAAC;QAEF,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,IAAA,oCAAqB,GAAE,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CACZ,iGAAiG,CAClG,CAAC;YACF,OAAO;QACT,CAAC;QAED,uBAAuB,GAAG,MAAM,oBAAoB,CAAC,GAAG,CACtD,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,6BAAc,EACd,MAAM,EACN,aAAa,EACb,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,cAAc,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAsB,EACnD,0BAAU,CAAC,QAAQ,EACnB,IAAA,gCAAgB,EAAC,KAAK,CAAC,EACvB,SAAS,EACT,MAAM,EACN,MAAM,IAAA,qBAAc,GAAE,EACtB,MAAM,EACN,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,KAAK,CACZ,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAA,gCAAgB,EAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAA,uCAAuB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE5E,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAsB,EACnD,0BAAU,CAAC,QAAQ,EACnB,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,IAAA,qBAAc,GAAE,EACtB,MAAM,CACP,CAAC;IACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAAyB;YACzC,GAAG,gBAAgB;YACnB,GAAG,uBAAuB;YAC1B,UAAU,EAAE,oBAAoB,CAAC,iBAAiB,EAAE;SACrD,CAAC;QACF,MAAM,IAAA,gCAAgB,EAAC,YAAY,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}
|
{"version":3,"file":"init-action-post.js","sourceRoot":"","sources":["../src/init-action-post.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,iDAAuE;AACvE,6CAAgD;AAChD,iDAAmD;AACnD,kEAAoD;AACpD,mDAA2C;AAC3C,gFAAkE;AAClE,uCAA6C;AAC7C,6CAAkD;AAClD,mDAOyB;AACzB,iCAKgB;AAOhB,KAAK,UAAU,UAAU;IACvB,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,MAA0B,CAAC;IAC/B,IAAI,uBAES,CAAC;IACd,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;QAC/C,IAAA,gCAAyB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAA,+BAAkB,EACtC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CACzC,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,aAAa,EACb,aAAa,EACb,IAAA,oCAAqB,GAAE,EACvB,MAAM,CACP,CAAC;QAEF,MAAM,GAAG,MAAM,IAAA,wBAAS,EAAC,IAAA,oCAAqB,GAAE,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CACZ,iGAAiG,CAClG,CAAC;YACF,OAAO;QACT,CAAC;QAED,uBAAuB,GAAG,MAAM,oBAAoB,CAAC,GAAG,CACtD,cAAc,CAAC,iCAAiC,EAChD,cAAc,CAAC,uBAAuB,EACtC,6BAAc,EACd,MAAM,EACN,aAAa,EACb,QAAQ,EACR,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,cAAc,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAsB,EACnD,0BAAU,CAAC,QAAQ,EACnB,IAAA,gCAAgB,EAAC,KAAK,CAAC,EACvB,SAAS,EACT,MAAM,EACN,MAAM,IAAA,qBAAc,EAAC,MAAM,CAAC,EAC5B,MAAM,EACN,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,KAAK,CACZ,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAA,gCAAgB,EAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAA,uCAAuB,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAE5E,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAsB,EACnD,0BAAU,CAAC,QAAQ,EACnB,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,IAAA,qBAAc,EAAC,MAAM,CAAC,EAC5B,MAAM,CACP,CAAC;IACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAAyB;YACzC,GAAG,gBAAgB;YACnB,GAAG,uBAAuB;YAC1B,UAAU,EAAE,oBAAoB,CAAC,iBAAiB,EAAE;SACrD,CAAC;QACF,MAAM,IAAA,gCAAgB,EAAC,YAAY,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}
|
||||||
4
lib/init-action.js
generated
4
lib/init-action.js
generated
|
|
@ -198,7 +198,7 @@ async function run() {
|
||||||
catch (unwrappedError) {
|
catch (unwrappedError) {
|
||||||
const error = (0, util_1.wrapError)(unwrappedError);
|
const error = (0, util_1.wrapError)(unwrappedError);
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.Init, error instanceof util_1.ConfigurationError ? "user-error" : "aborted", startedAt, config, await (0, util_1.checkDiskUsage)(), logger, error.message, error.stack);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.Init, error instanceof util_1.ConfigurationError ? "user-error" : "aborted", startedAt, config, await (0, util_1.checkDiskUsage)(logger), logger, error.message, error.stack);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
||||||
}
|
}
|
||||||
|
|
@ -329,7 +329,7 @@ async function run() {
|
||||||
if (!(await (0, util_1.codeQlVersionAtLeast)(codeql, "2.15.1")) &&
|
if (!(await (0, util_1.codeQlVersionAtLeast)(codeql, "2.15.1")) &&
|
||||||
process.platform === "darwin" &&
|
process.platform === "darwin" &&
|
||||||
(process.arch === "arm" || process.arch === "arm64") &&
|
(process.arch === "arm" || process.arch === "arm64") &&
|
||||||
!(await (0, init_1.isSipEnabled)(logger))) {
|
!(await (0, util_1.isSipEnabled)(logger))) {
|
||||||
logger.warning("CodeQL versions 2.15.0 and lower are not supported on MacOS ARM machines with System Integrity Protection (SIP) disabled.");
|
logger.warning("CodeQL versions 2.15.0 and lower are not supported on MacOS ARM machines with System Integrity Protection (SIP) disabled.");
|
||||||
}
|
}
|
||||||
// From 2.16.0 the default for the python extractor is to not perform any
|
// From 2.16.0 the default for the python extractor is to not perform any
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
22
lib/init.js
generated
22
lib/init.js
generated
|
|
@ -28,11 +28,9 @@ exports.initConfig = initConfig;
|
||||||
exports.runInit = runInit;
|
exports.runInit = runInit;
|
||||||
exports.printPathFiltersWarning = printPathFiltersWarning;
|
exports.printPathFiltersWarning = printPathFiltersWarning;
|
||||||
exports.checkInstallPython311 = checkInstallPython311;
|
exports.checkInstallPython311 = checkInstallPython311;
|
||||||
exports.isSipEnabled = isSipEnabled;
|
|
||||||
exports.cleanupDatabaseClusterDirectory = cleanupDatabaseClusterDirectory;
|
exports.cleanupDatabaseClusterDirectory = cleanupDatabaseClusterDirectory;
|
||||||
const fs = __importStar(require("fs"));
|
const fs = __importStar(require("fs"));
|
||||||
const path = __importStar(require("path"));
|
const path = __importStar(require("path"));
|
||||||
const exec = __importStar(require("@actions/exec/lib/exec"));
|
|
||||||
const toolrunner = __importStar(require("@actions/exec/lib/toolrunner"));
|
const toolrunner = __importStar(require("@actions/exec/lib/toolrunner"));
|
||||||
const safeWhich = __importStar(require("@chrisgavin/safe-which"));
|
const safeWhich = __importStar(require("@chrisgavin/safe-which"));
|
||||||
const actions_util_1 = require("./actions-util");
|
const actions_util_1 = require("./actions-util");
|
||||||
|
|
@ -93,26 +91,6 @@ async function checkInstallPython311(languages, codeql) {
|
||||||
]).exec();
|
]).exec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// For MacOS runners: runs `csrutil status` to determine whether System
|
|
||||||
// Integrity Protection is enabled.
|
|
||||||
async function isSipEnabled(logger) {
|
|
||||||
try {
|
|
||||||
const sipStatusOutput = await exec.getExecOutput("csrutil status");
|
|
||||||
if (sipStatusOutput.exitCode === 0) {
|
|
||||||
if (sipStatusOutput.stdout.includes("System Integrity Protection status: enabled.")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (sipStatusOutput.stdout.includes("System Integrity Protection status: disabled.")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
logger.warning(`Failed to determine if System Integrity Protection was enabled: ${e}`);
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function cleanupDatabaseClusterDirectory(config, logger,
|
function cleanupDatabaseClusterDirectory(config, logger,
|
||||||
// We can't stub the fs module in tests, so we allow the caller to override the rmSync function
|
// We can't stub the fs module in tests, so we allow the caller to override the rmSync function
|
||||||
// for testing.
|
// for testing.
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
||||||
6
lib/resolve-environment-action.js
generated
6
lib/resolve-environment-action.js
generated
|
|
@ -38,7 +38,7 @@ async function run() {
|
||||||
const logger = (0, logging_1.getActionsLogger)();
|
const logger = (0, logging_1.getActionsLogger)();
|
||||||
let config;
|
let config;
|
||||||
try {
|
try {
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.ResolveEnvironment, "starting", startedAt, config, await (0, util_1.checkDiskUsage)(), logger);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.ResolveEnvironment, "starting", startedAt, config, await (0, util_1.checkDiskUsage)(logger), logger);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
||||||
}
|
}
|
||||||
|
|
@ -64,14 +64,14 @@ async function run() {
|
||||||
else {
|
else {
|
||||||
// For any other error types, something has more seriously gone wrong and we fail.
|
// For any other error types, something has more seriously gone wrong and we fail.
|
||||||
core.setFailed(`Failed to resolve a build environment suitable for automatically building your code. ${error.message}`);
|
core.setFailed(`Failed to resolve a build environment suitable for automatically building your code. ${error.message}`);
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.ResolveEnvironment, (0, status_report_1.getActionsStatus)(error), startedAt, config, await (0, util_1.checkDiskUsage)(), logger, error.message, error.stack);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.ResolveEnvironment, (0, status_report_1.getActionsStatus)(error), startedAt, config, await (0, util_1.checkDiskUsage)(logger), logger, error.message, error.stack);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.ResolveEnvironment, "success", startedAt, config, await (0, util_1.checkDiskUsage)(), logger);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.ResolveEnvironment, "success", startedAt, config, await (0, util_1.checkDiskUsage)(logger), logger);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
await (0, status_report_1.sendStatusReport)(statusReportBase);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"resolve-environment-action.js","sourceRoot":"","sources":["../src/resolve-environment-action.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"resolve-environment-action.js","sourceRoot":"","sources":["../src/resolve-environment-action.ts"],"names":[],"mappings":"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"}
|
||||||
17
lib/start-proxy-action-post.js
generated
17
lib/start-proxy-action-post.js
generated
|
|
@ -28,7 +28,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
* It will run after the all steps in this job, in reverse order in relation to
|
* It will run after the all steps in this job, in reverse order in relation to
|
||||||
* other `post:` hooks.
|
* other `post:` hooks.
|
||||||
*/
|
*/
|
||||||
const fs = __importStar(require("fs"));
|
const artifact = __importStar(require("@actions/artifact"));
|
||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
const actionsUtil = __importStar(require("./actions-util"));
|
const actionsUtil = __importStar(require("./actions-util"));
|
||||||
const configUtils = __importStar(require("./config-utils"));
|
const configUtils = __importStar(require("./config-utils"));
|
||||||
|
|
@ -46,9 +46,18 @@ async function runWrapper() {
|
||||||
const config = await configUtils.getConfig(actionsUtil.getTemporaryDirectory(), core);
|
const config = await configUtils.getConfig(actionsUtil.getTemporaryDirectory(), core);
|
||||||
if ((config && config.debugMode) || core.isDebug()) {
|
if ((config && config.debugMode) || core.isDebug()) {
|
||||||
const logFilePath = core.getState("proxy-log-file");
|
const logFilePath = core.getState("proxy-log-file");
|
||||||
if (logFilePath) {
|
core.info("Debug mode is on. Uploading proxy log as Actions debugging artifact...");
|
||||||
const readStream = fs.createReadStream(logFilePath);
|
try {
|
||||||
readStream.pipe(process.stdout, { end: true });
|
await artifact
|
||||||
|
.create()
|
||||||
|
.uploadArtifact("proxy-log-file", [logFilePath], actionsUtil.getTemporaryDirectory(), {
|
||||||
|
continueOnError: true,
|
||||||
|
retentionDays: 7,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// A failure to upload debug artifacts should not fail the entire action.
|
||||||
|
core.warning(`Failed to upload debug artifacts: ${e}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"start-proxy-action-post.js","sourceRoot":"","sources":["../src/start-proxy-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,uCAAyB;AAEzB,oDAAsC;AAEtC,4DAA8C;AAC9C,4DAA8C;AAC9C,iCAAmC;AAEnC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,wCAAwC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CACxC,WAAW,CAAC,qBAAqB,EAAE,EACnC,IAAI,CACL,CAAC;IAEF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}
|
{"version":3,"file":"start-proxy-action-post.js","sourceRoot":"","sources":["../src/start-proxy-action-post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,4DAA8C;AAC9C,oDAAsC;AAEtC,4DAA8C;AAC9C,4DAA8C;AAC9C,iCAAmC;AAEnC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,wCAAwC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,CACxC,WAAW,CAAC,qBAAqB,EAAE,EACnC,IAAI,CACL,CAAC;IAEF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CACP,wEAAwE,CACzE,CAAC;QACF,IAAI,CAAC;YACH,MAAM,QAAQ;iBACX,MAAM,EAAE;iBACR,cAAc,CACb,gBAAgB,EAChB,CAAC,WAAW,CAAC,EACb,WAAW,CAAC,qBAAqB,EAAE,EACnC;gBACE,eAAe,EAAE,IAAI;gBACrB,aAAa,EAAE,CAAC;aACjB,CACF,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,yEAAyE;YACzE,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}
|
||||||
106
lib/start-proxy-action.js
generated
106
lib/start-proxy-action.js
generated
|
|
@ -29,6 +29,7 @@ const core = __importStar(require("@actions/core"));
|
||||||
const toolcache = __importStar(require("@actions/tool-cache"));
|
const toolcache = __importStar(require("@actions/tool-cache"));
|
||||||
const node_forge_1 = require("node-forge");
|
const node_forge_1 = require("node-forge");
|
||||||
const actionsUtil = __importStar(require("./actions-util"));
|
const actionsUtil = __importStar(require("./actions-util"));
|
||||||
|
const logging_1 = require("./logging");
|
||||||
const util = __importStar(require("./util"));
|
const util = __importStar(require("./util"));
|
||||||
const UPDATEJOB_PROXY = "update-job-proxy";
|
const UPDATEJOB_PROXY = "update-job-proxy";
|
||||||
const UPDATEJOB_PROXY_VERSION = "v2.0.20240722180912";
|
const UPDATEJOB_PROXY_VERSION = "v2.0.20240722180912";
|
||||||
|
|
@ -79,40 +80,36 @@ function generateCertificateAuthority() {
|
||||||
return { cert: pem, key };
|
return { cert: pem, key };
|
||||||
}
|
}
|
||||||
async function runWrapper() {
|
async function runWrapper() {
|
||||||
|
const logger = (0, logging_1.getActionsLogger)();
|
||||||
|
// Setup logging for the proxy
|
||||||
const tempDir = actionsUtil.getTemporaryDirectory();
|
const tempDir = actionsUtil.getTemporaryDirectory();
|
||||||
const logFilePath = path.resolve(tempDir, "proxy.log");
|
const proxyLogFilePath = path.resolve(tempDir, "proxy.log");
|
||||||
const input = actionsUtil.getOptionalInput("registry_secrets") || "[]";
|
core.saveState("proxy-log-file", proxyLogFilePath);
|
||||||
const credentials = JSON.parse(input);
|
// Get the configuration options
|
||||||
|
const credentials = getCredentials(logger);
|
||||||
|
logger.info(`Credentials loaded for the following registries:\n ${credentials
|
||||||
|
.map((c) => credentialToStr(c))
|
||||||
|
.join("\n")}`);
|
||||||
const ca = generateCertificateAuthority();
|
const ca = generateCertificateAuthority();
|
||||||
const proxy_password = actionsUtil.getOptionalInput("proxy_password");
|
const proxyAuth = getProxyAuth();
|
||||||
core.saveState("proxy-log-file", logFilePath);
|
|
||||||
let proxy_auth = undefined;
|
|
||||||
if (proxy_password) {
|
|
||||||
proxy_auth = {
|
|
||||||
username: PROXY_USER,
|
|
||||||
password: proxy_password,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const proxyConfig = {
|
const proxyConfig = {
|
||||||
all_credentials: credentials,
|
all_credentials: credentials,
|
||||||
ca,
|
ca,
|
||||||
proxy_auth,
|
proxy_auth: proxyAuth,
|
||||||
};
|
};
|
||||||
const host = "127.0.0.1";
|
// Start the Proxy
|
||||||
let proxyBin = toolcache.find(UPDATEJOB_PROXY, UPDATEJOB_PROXY_VERSION);
|
const proxyBin = await getProxyBinaryPath();
|
||||||
if (!proxyBin) {
|
await startProxy(proxyBin, proxyConfig, proxyLogFilePath, logger);
|
||||||
const temp = await toolcache.downloadTool(UPDATEJOB_PROXY_URL);
|
|
||||||
const extracted = await toolcache.extractTar(temp);
|
|
||||||
proxyBin = await toolcache.cacheDir(extracted, UPDATEJOB_PROXY, UPDATEJOB_PROXY_VERSION);
|
|
||||||
}
|
}
|
||||||
proxyBin = path.join(proxyBin, UPDATEJOB_PROXY);
|
async function startProxy(binPath, config, logFilePath, logger) {
|
||||||
|
const host = "127.0.0.1";
|
||||||
let port = 49152;
|
let port = 49152;
|
||||||
try {
|
try {
|
||||||
let subprocess = undefined;
|
let subprocess = undefined;
|
||||||
let tries = 5;
|
let tries = 5;
|
||||||
let subprocessError = undefined;
|
let subprocessError = undefined;
|
||||||
while (tries-- > 0 && !subprocess && !subprocessError) {
|
while (tries-- > 0 && !subprocess && !subprocessError) {
|
||||||
subprocess = (0, child_process_1.spawn)(proxyBin, ["-addr", `${host}:${port}`, "-config", "-", "-logfile", logFilePath], {
|
subprocess = (0, child_process_1.spawn)(binPath, ["-addr", `${host}:${port}`, "-config", "-", "-logfile", logFilePath], {
|
||||||
detached: true,
|
detached: true,
|
||||||
stdio: ["pipe", "ignore", "ignore"],
|
stdio: ["pipe", "ignore", "ignore"],
|
||||||
});
|
});
|
||||||
|
|
@ -130,7 +127,7 @@ async function runWrapper() {
|
||||||
subprocess = undefined;
|
subprocess = undefined;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
subprocess.stdin?.write(JSON.stringify(proxyConfig));
|
subprocess.stdin?.write(JSON.stringify(config));
|
||||||
subprocess.stdin?.end();
|
subprocess.stdin?.end();
|
||||||
// Wait a little to allow the proxy to start
|
// Wait a little to allow the proxy to start
|
||||||
await util.delay(1000);
|
await util.delay(1000);
|
||||||
|
|
@ -139,14 +136,75 @@ async function runWrapper() {
|
||||||
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
||||||
throw subprocessError;
|
throw subprocessError;
|
||||||
}
|
}
|
||||||
core.info(`Proxy started on ${host}:${port}`);
|
logger.info(`Proxy started on ${host}:${port}`);
|
||||||
core.setOutput("proxy_host", host);
|
core.setOutput("proxy_host", host);
|
||||||
core.setOutput("proxy_port", port.toString());
|
core.setOutput("proxy_port", port.toString());
|
||||||
core.setOutput("proxy_ca_certificate", ca.cert);
|
core.setOutput("proxy_ca_certificate", config.ca.cert);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
core.setFailed(`start-proxy action failed: ${util.wrapError(error).message}`);
|
core.setFailed(`start-proxy action failed: ${util.wrapError(error).message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// getCredentials returns registry credentials from action inputs.
|
||||||
|
// It prefers `registries_credentials` over `registry_secrets`.
|
||||||
|
// If neither is set, it returns an empty array.
|
||||||
|
function getCredentials(logger) {
|
||||||
|
const registriesCredentials = actionsUtil.getOptionalInput("registries_credentials");
|
||||||
|
const registrySecrets = actionsUtil.getOptionalInput("registry_secrets");
|
||||||
|
let credentialsStr;
|
||||||
|
if (registriesCredentials !== undefined) {
|
||||||
|
logger.info(`Using registries_credentials input.`);
|
||||||
|
credentialsStr = Buffer.from(registriesCredentials, "base64").toString();
|
||||||
|
}
|
||||||
|
else if (registrySecrets !== undefined) {
|
||||||
|
logger.info(`Using registry_secrets input.`);
|
||||||
|
credentialsStr = registrySecrets;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
logger.info(`No credentials defined.`);
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
// Parse and validate the credentials
|
||||||
|
const parsed = JSON.parse(credentialsStr);
|
||||||
|
const out = [];
|
||||||
|
for (const e of parsed) {
|
||||||
|
if (e.url === undefined && e.host === undefined) {
|
||||||
|
throw new Error("Invalid credentials - must specify host or url");
|
||||||
|
}
|
||||||
|
out.push({
|
||||||
|
type: e.type,
|
||||||
|
host: e.host,
|
||||||
|
url: e.url,
|
||||||
|
username: e.username,
|
||||||
|
password: e.password,
|
||||||
|
token: e.token,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
// getProxyAuth returns the authentication information for the proxy itself.
|
||||||
|
function getProxyAuth() {
|
||||||
|
const proxy_password = actionsUtil.getOptionalInput("proxy_password");
|
||||||
|
if (proxy_password) {
|
||||||
|
return {
|
||||||
|
username: PROXY_USER,
|
||||||
|
password: proxy_password,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
async function getProxyBinaryPath() {
|
||||||
|
let proxyBin = toolcache.find(UPDATEJOB_PROXY, UPDATEJOB_PROXY_VERSION);
|
||||||
|
if (!proxyBin) {
|
||||||
|
const temp = await toolcache.downloadTool(UPDATEJOB_PROXY_URL);
|
||||||
|
const extracted = await toolcache.extractTar(temp);
|
||||||
|
proxyBin = await toolcache.cacheDir(extracted, UPDATEJOB_PROXY, UPDATEJOB_PROXY_VERSION);
|
||||||
|
}
|
||||||
|
proxyBin = path.join(proxyBin, UPDATEJOB_PROXY);
|
||||||
|
return proxyBin;
|
||||||
|
}
|
||||||
|
function credentialToStr(c) {
|
||||||
|
return `Type: ${c.type}; Host: ${c.host}; Url: ${c.url} Username: ${c.username}; Password: ${c.password !== undefined}; Token: ${c.token !== undefined}`;
|
||||||
|
}
|
||||||
void runWrapper();
|
void runWrapper();
|
||||||
//# sourceMappingURL=start-proxy-action.js.map
|
//# sourceMappingURL=start-proxy-action.js.map
|
||||||
File diff suppressed because one or more lines are too long
6
lib/upload-sarif-action.js
generated
6
lib/upload-sarif-action.js
generated
|
|
@ -34,7 +34,7 @@ const status_report_1 = require("./status-report");
|
||||||
const upload_lib = __importStar(require("./upload-lib"));
|
const upload_lib = __importStar(require("./upload-lib"));
|
||||||
const util_1 = require("./util");
|
const util_1 = require("./util");
|
||||||
async function sendSuccessStatusReport(startedAt, uploadStats, logger) {
|
async function sendSuccessStatusReport(startedAt, uploadStats, logger) {
|
||||||
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.UploadSarif, "success", startedAt, undefined, await (0, util_1.checkDiskUsage)(), logger);
|
const statusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.UploadSarif, "success", startedAt, undefined, await (0, util_1.checkDiskUsage)(logger), logger);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
const statusReport = {
|
const statusReport = {
|
||||||
...statusReportBase,
|
...statusReportBase,
|
||||||
|
|
@ -51,7 +51,7 @@ async function run() {
|
||||||
(0, util_1.checkActionVersion)((0, actions_util_1.getActionVersion)(), gitHubVersion);
|
(0, util_1.checkActionVersion)((0, actions_util_1.getActionVersion)(), gitHubVersion);
|
||||||
const repositoryNwo = (0, repository_1.parseRepositoryNwo)((0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY"));
|
const repositoryNwo = (0, repository_1.parseRepositoryNwo)((0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY"));
|
||||||
const features = new feature_flags_1.Features(gitHubVersion, repositoryNwo, (0, actions_util_1.getTemporaryDirectory)(), logger);
|
const features = new feature_flags_1.Features(gitHubVersion, repositoryNwo, (0, actions_util_1.getTemporaryDirectory)(), logger);
|
||||||
const startingStatusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.UploadSarif, "starting", startedAt, undefined, await (0, util_1.checkDiskUsage)(), logger);
|
const startingStatusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.UploadSarif, "starting", startedAt, undefined, await (0, util_1.checkDiskUsage)(logger), logger);
|
||||||
if (startingStatusReportBase !== undefined) {
|
if (startingStatusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(startingStatusReportBase);
|
await (0, status_report_1.sendStatusReport)(startingStatusReportBase);
|
||||||
}
|
}
|
||||||
|
|
@ -74,7 +74,7 @@ async function run() {
|
||||||
: (0, util_1.wrapError)(unwrappedError);
|
: (0, util_1.wrapError)(unwrappedError);
|
||||||
const message = error.message;
|
const message = error.message;
|
||||||
core.setFailed(message);
|
core.setFailed(message);
|
||||||
const errorStatusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.UploadSarif, (0, status_report_1.getActionsStatus)(error), startedAt, undefined, await (0, util_1.checkDiskUsage)(), logger, message, error.stack);
|
const errorStatusReportBase = await (0, status_report_1.createStatusReportBase)(status_report_1.ActionName.UploadSarif, (0, status_report_1.getActionsStatus)(error), startedAt, undefined, await (0, util_1.checkDiskUsage)(logger), logger, message, error.stack);
|
||||||
if (errorStatusReportBase !== undefined) {
|
if (errorStatusReportBase !== undefined) {
|
||||||
await (0, status_report_1.sendStatusReport)(errorStatusReportBase);
|
await (0, status_report_1.sendStatusReport)(errorStatusReportBase);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"upload-sarif-action.js","sourceRoot":"","sources":["../src/upload-sarif-action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAAyE;AACzE,6CAAgD;AAChD,mDAA2C;AAC3C,uCAAqD;AACrD,6CAAkD;AAClD,mDAOyB;AACzB,yDAA2C;AAC3C,iCAQgB;AAMhB,KAAK,UAAU,uBAAuB,CACpC,SAAe,EACf,WAA0C,EAC1C,MAAc;IAEd,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAsB,EACnD,0BAAU,CAAC,WAAW,EACtB,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,IAAA,qBAAc,GAAE,EACtB,MAAM,CACP,CAAC;IACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAA4B;YAC5C,GAAG,gBAAgB;YACnB,GAAG,WAAW;SACf,CAAC;QACF,MAAM,IAAA,gCAAgB,EAAC,YAAY,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,IAAA,4BAAqB,EAAC,IAAA,+BAAgB,GAAE,CAAC,CAAC;IAE1C,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;IAC/C,IAAA,yBAAkB,EAAC,IAAA,+BAAgB,GAAE,EAAE,aAAa,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAG,IAAA,+BAAkB,EACtC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CACzC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,aAAa,EACb,aAAa,EACb,IAAA,oCAAqB,GAAE,EACvB,MAAM,CACP,CAAC;IAEF,MAAM,wBAAwB,GAAG,MAAM,IAAA,sCAAsB,EAC3D,0BAAU,CAAC,WAAW,EACtB,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,IAAA,qBAAc,GAAE,EACtB,MAAM,CACP,CAAC;IACF,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAA,gCAAgB,EAAC,wBAAwB,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,WAAW,CAC/C,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAC1C,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAC7C,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACxC,QAAQ,EACR,MAAM,CACP,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAEjD,qEAAqE;QACrE,IAAI,IAAA,mBAAY,GAAE,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,MAAM,EAAE,CAAC;YAC1E,MAAM,UAAU,CAAC,iBAAiB,CAChC,IAAA,+BAAkB,EAAC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CAAC,EAC5D,YAAY,CAAC,OAAO,EACpB,MAAM,CACP,CAAC;QACJ,CAAC;QACD,MAAM,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,cAAc,EAAE,CAAC;QACxB,MAAM,KAAK,GACT,CAAC,IAAA,oCAAoB,EAAC,0BAAU,CAAC,WAAW,CAAC;YAC7C,cAAc,YAAY,UAAU,CAAC,uBAAuB;YAC1D,CAAC,CAAC,IAAI,yBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC;YAChD,CAAC,CAAC,IAAA,gBAAS,EAAC,cAAc,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,MAAM,qBAAqB,GAAG,MAAM,IAAA,sCAAsB,EACxD,0BAAU,CAAC,WAAW,EACtB,IAAA,gCAAgB,EAAC,KAAK,CAAC,EACvB,SAAS,EACT,SAAS,EACT,MAAM,IAAA,qBAAc,GAAE,EACtB,MAAM,EACN,OAAO,EACP,KAAK,CAAC,KAAK,CACZ,CAAC;QACF,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAA,gCAAgB,EAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;QACD,OAAO;IACT,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,sCAAsC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}
|
{"version":3,"file":"upload-sarif-action.js","sourceRoot":"","sources":["../src/upload-sarif-action.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAEtC,4DAA8C;AAC9C,iDAAyE;AACzE,6CAAgD;AAChD,mDAA2C;AAC3C,uCAAqD;AACrD,6CAAkD;AAClD,mDAOyB;AACzB,yDAA2C;AAC3C,iCAQgB;AAMhB,KAAK,UAAU,uBAAuB,CACpC,SAAe,EACf,WAA0C,EAC1C,MAAc;IAEd,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAsB,EACnD,0BAAU,CAAC,WAAW,EACtB,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,IAAA,qBAAc,EAAC,MAAM,CAAC,EAC5B,MAAM,CACP,CAAC;IACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,YAAY,GAA4B;YAC5C,GAAG,gBAAgB;YACnB,GAAG,WAAW;SACf,CAAC;QACF,MAAM,IAAA,gCAAgB,EAAC,YAAY,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,IAAA,4BAAqB,EAAC,IAAA,+BAAgB,GAAE,CAAC,CAAC;IAE1C,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;IAC/C,IAAA,yBAAkB,EAAC,IAAA,+BAAgB,GAAE,EAAE,aAAa,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAG,IAAA,+BAAkB,EACtC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CACzC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,wBAAQ,CAC3B,aAAa,EACb,aAAa,EACb,IAAA,oCAAqB,GAAE,EACvB,MAAM,CACP,CAAC;IAEF,MAAM,wBAAwB,GAAG,MAAM,IAAA,sCAAsB,EAC3D,0BAAU,CAAC,WAAW,EACtB,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,IAAA,qBAAc,EAAC,MAAM,CAAC,EAC5B,MAAM,CACP,CAAC;IACF,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,IAAA,gCAAgB,EAAC,wBAAwB,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,WAAW,CAC/C,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAC1C,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAC7C,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACxC,QAAQ,EACR,MAAM,CACP,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAEjD,qEAAqE;QACrE,IAAI,IAAA,mBAAY,GAAE,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,MAAM,EAAE,CAAC;YAC1E,MAAM,UAAU,CAAC,iBAAiB,CAChC,IAAA,+BAAkB,EAAC,IAAA,0BAAmB,EAAC,mBAAmB,CAAC,CAAC,EAC5D,YAAY,CAAC,OAAO,EACpB,MAAM,CACP,CAAC;QACJ,CAAC;QACD,MAAM,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,cAAc,EAAE,CAAC;QACxB,MAAM,KAAK,GACT,CAAC,IAAA,oCAAoB,EAAC,0BAAU,CAAC,WAAW,CAAC;YAC7C,cAAc,YAAY,UAAU,CAAC,uBAAuB;YAC1D,CAAC,CAAC,IAAI,yBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC;YAChD,CAAC,CAAC,IAAA,gBAAS,EAAC,cAAc,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAExB,MAAM,qBAAqB,GAAG,MAAM,IAAA,sCAAsB,EACxD,0BAAU,CAAC,WAAW,EACtB,IAAA,gCAAgB,EAAC,KAAK,CAAC,EACvB,SAAS,EACT,SAAS,EACT,MAAM,IAAA,qBAAc,EAAC,MAAM,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,KAAK,CAAC,KAAK,CACZ,CAAC;QACF,IAAI,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAA,gCAAgB,EAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;QACD,OAAO;IACT,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CACZ,sCAAsC,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,EAAE,CAAC"}
|
||||||
32
lib/util.js
generated
32
lib/util.js
generated
|
|
@ -67,11 +67,13 @@ exports.prettyPrintPack = prettyPrintPack;
|
||||||
exports.checkDiskUsage = checkDiskUsage;
|
exports.checkDiskUsage = checkDiskUsage;
|
||||||
exports.checkActionVersion = checkActionVersion;
|
exports.checkActionVersion = checkActionVersion;
|
||||||
exports.cloneObject = cloneObject;
|
exports.cloneObject = cloneObject;
|
||||||
|
exports.isSipEnabled = isSipEnabled;
|
||||||
const fs = __importStar(require("fs"));
|
const fs = __importStar(require("fs"));
|
||||||
const os = __importStar(require("os"));
|
const os = __importStar(require("os"));
|
||||||
const path = __importStar(require("path"));
|
const path = __importStar(require("path"));
|
||||||
const util_1 = require("util");
|
const util_1 = require("util");
|
||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
|
const exec = __importStar(require("@actions/exec/lib/exec"));
|
||||||
const check_disk_space_1 = __importDefault(require("check-disk-space"));
|
const check_disk_space_1 = __importDefault(require("check-disk-space"));
|
||||||
const del_1 = __importDefault(require("del"));
|
const del_1 = __importDefault(require("del"));
|
||||||
const get_folder_size_1 = __importDefault(require("get-folder-size"));
|
const get_folder_size_1 = __importDefault(require("get-folder-size"));
|
||||||
|
|
@ -790,9 +792,15 @@ function prettyPrintPack(pack) {
|
||||||
}
|
}
|
||||||
async function checkDiskUsage(logger) {
|
async function checkDiskUsage(logger) {
|
||||||
try {
|
try {
|
||||||
|
// We avoid running the `df` binary under the hood for macOS ARM runners with SIP disabled.
|
||||||
|
if (process.platform === "darwin" &&
|
||||||
|
(process.arch === "arm" || process.arch === "arm64") &&
|
||||||
|
!(await isSipEnabled(logger))) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
const diskUsage = await (0, check_disk_space_1.default)(getRequiredEnvParam("GITHUB_WORKSPACE"));
|
const diskUsage = await (0, check_disk_space_1.default)(getRequiredEnvParam("GITHUB_WORKSPACE"));
|
||||||
const gbInBytes = 1024 * 1024 * 1024;
|
const gbInBytes = 1024 * 1024 * 1024;
|
||||||
if (logger && diskUsage.free < 2 * gbInBytes) {
|
if (diskUsage.free < 2 * gbInBytes) {
|
||||||
const message = "The Actions runner is running low on disk space " +
|
const message = "The Actions runner is running low on disk space " +
|
||||||
`(${(diskUsage.free / gbInBytes).toPrecision(4)} GB available).`;
|
`(${(diskUsage.free / gbInBytes).toPrecision(4)} GB available).`;
|
||||||
if (process.env[environment_1.EnvVar.HAS_WARNED_ABOUT_DISK_SPACE] !== "true") {
|
if (process.env[environment_1.EnvVar.HAS_WARNED_ABOUT_DISK_SPACE] !== "true") {
|
||||||
|
|
@ -809,9 +817,7 @@ async function checkDiskUsage(logger) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
if (logger) {
|
|
||||||
logger.warning(`Failed to check available disk space: ${getErrorMessage(error)}`);
|
logger.warning(`Failed to check available disk space: ${getErrorMessage(error)}`);
|
||||||
}
|
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -862,4 +868,24 @@ var BuildMode;
|
||||||
function cloneObject(obj) {
|
function cloneObject(obj) {
|
||||||
return JSON.parse(JSON.stringify(obj));
|
return JSON.parse(JSON.stringify(obj));
|
||||||
}
|
}
|
||||||
|
// For MacOS runners: runs `csrutil status` to determine whether System
|
||||||
|
// Integrity Protection is enabled.
|
||||||
|
async function isSipEnabled(logger) {
|
||||||
|
try {
|
||||||
|
const sipStatusOutput = await exec.getExecOutput("csrutil status");
|
||||||
|
if (sipStatusOutput.exitCode === 0) {
|
||||||
|
if (sipStatusOutput.stdout.includes("System Integrity Protection status: enabled.")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (sipStatusOutput.stdout.includes("System Integrity Protection status: disabled.")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
logger.warning(`Failed to determine if System Integrity Protection was enabled: ${e}`);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
//# sourceMappingURL=util.js.map
|
//# sourceMappingURL=util.js.map
|
||||||
File diff suppressed because one or more lines are too long
2
node_modules/.package-lock.json
generated
vendored
2
node_modules/.package-lock.json
generated
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "3.26.3",
|
"version": "3.26.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
|
|
|
||||||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "3.26.3",
|
"version": "3.26.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "3.26.3",
|
"version": "3.26.4",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/artifact": "^1.1.2",
|
"@actions/artifact": "^1.1.2",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "3.26.3",
|
"version": "3.26.4",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "CodeQL action",
|
"description": "CodeQL action",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ async function sendStatusReport(
|
||||||
status,
|
status,
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await util.checkDiskUsage(),
|
await util.checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
error?.message,
|
error?.message,
|
||||||
error?.stack,
|
error?.stack,
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ async function runWrapper() {
|
||||||
getActionsStatus(error),
|
getActionsStatus(error),
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
error.message,
|
error.message,
|
||||||
error.stack,
|
error.stack,
|
||||||
|
|
@ -99,7 +99,7 @@ async function runWrapper() {
|
||||||
"success",
|
"success",
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ import {
|
||||||
cleanupDatabaseClusterDirectory,
|
cleanupDatabaseClusterDirectory,
|
||||||
initCodeQL,
|
initCodeQL,
|
||||||
initConfig,
|
initConfig,
|
||||||
isSipEnabled,
|
|
||||||
runInit,
|
runInit,
|
||||||
} from "./init";
|
} from "./init";
|
||||||
import { Language } from "./languages";
|
import { Language } from "./languages";
|
||||||
|
|
@ -57,6 +56,7 @@ import {
|
||||||
getThreadsFlagValue,
|
getThreadsFlagValue,
|
||||||
initializeEnvironment,
|
initializeEnvironment,
|
||||||
isHostedRunner,
|
isHostedRunner,
|
||||||
|
isSipEnabled,
|
||||||
ConfigurationError,
|
ConfigurationError,
|
||||||
wrapError,
|
wrapError,
|
||||||
checkActionVersion,
|
checkActionVersion,
|
||||||
|
|
@ -355,7 +355,7 @@ async function run() {
|
||||||
error instanceof ConfigurationError ? "user-error" : "aborted",
|
error instanceof ConfigurationError ? "user-error" : "aborted",
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
error.message,
|
error.message,
|
||||||
error.stack,
|
error.stack,
|
||||||
|
|
|
||||||
33
src/init.ts
33
src/init.ts
|
|
@ -1,7 +1,6 @@
|
||||||
import * as fs from "fs";
|
import * as fs from "fs";
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
|
|
||||||
import * as exec from "@actions/exec/lib/exec";
|
|
||||||
import * as toolrunner from "@actions/exec/lib/toolrunner";
|
import * as toolrunner from "@actions/exec/lib/toolrunner";
|
||||||
import * as safeWhich from "@chrisgavin/safe-which";
|
import * as safeWhich from "@chrisgavin/safe-which";
|
||||||
|
|
||||||
|
|
@ -141,38 +140,6 @@ export async function checkInstallPython311(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For MacOS runners: runs `csrutil status` to determine whether System
|
|
||||||
// Integrity Protection is enabled.
|
|
||||||
export async function isSipEnabled(
|
|
||||||
logger: Logger,
|
|
||||||
): Promise<boolean | undefined> {
|
|
||||||
try {
|
|
||||||
const sipStatusOutput = await exec.getExecOutput("csrutil status");
|
|
||||||
if (sipStatusOutput.exitCode === 0) {
|
|
||||||
if (
|
|
||||||
sipStatusOutput.stdout.includes(
|
|
||||||
"System Integrity Protection status: enabled.",
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
sipStatusOutput.stdout.includes(
|
|
||||||
"System Integrity Protection status: disabled.",
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
} catch (e) {
|
|
||||||
logger.warning(
|
|
||||||
`Failed to determine if System Integrity Protection was enabled: ${e}`,
|
|
||||||
);
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function cleanupDatabaseClusterDirectory(
|
export function cleanupDatabaseClusterDirectory(
|
||||||
config: configUtils.Config,
|
config: configUtils.Config,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async function run() {
|
||||||
"starting",
|
"starting",
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
|
|
@ -86,7 +86,7 @@ async function run() {
|
||||||
getActionsStatus(error),
|
getActionsStatus(error),
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
error.message,
|
error.message,
|
||||||
error.stack,
|
error.stack,
|
||||||
|
|
@ -104,7 +104,7 @@ async function run() {
|
||||||
"success",
|
"success",
|
||||||
startedAt,
|
startedAt,
|
||||||
config,
|
config,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
* It will run after the all steps in this job, in reverse order in relation to
|
* It will run after the all steps in this job, in reverse order in relation to
|
||||||
* other `post:` hooks.
|
* other `post:` hooks.
|
||||||
*/
|
*/
|
||||||
import * as fs from "fs";
|
import * as artifact from "@actions/artifact";
|
||||||
|
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
|
|
||||||
import * as actionsUtil from "./actions-util";
|
import * as actionsUtil from "./actions-util";
|
||||||
|
|
@ -29,9 +28,24 @@ async function runWrapper() {
|
||||||
|
|
||||||
if ((config && config.debugMode) || core.isDebug()) {
|
if ((config && config.debugMode) || core.isDebug()) {
|
||||||
const logFilePath = core.getState("proxy-log-file");
|
const logFilePath = core.getState("proxy-log-file");
|
||||||
if (logFilePath) {
|
core.info(
|
||||||
const readStream = fs.createReadStream(logFilePath);
|
"Debug mode is on. Uploading proxy log as Actions debugging artifact...",
|
||||||
readStream.pipe(process.stdout, { end: true });
|
);
|
||||||
|
try {
|
||||||
|
await artifact
|
||||||
|
.create()
|
||||||
|
.uploadArtifact(
|
||||||
|
"proxy-log-file",
|
||||||
|
[logFilePath],
|
||||||
|
actionsUtil.getTemporaryDirectory(),
|
||||||
|
{
|
||||||
|
continueOnError: true,
|
||||||
|
retentionDays: 7,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
// A failure to upload debug artifacts should not fail the entire action.
|
||||||
|
core.warning(`Failed to upload debug artifacts: ${e}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import * as toolcache from "@actions/tool-cache";
|
||||||
import { pki } from "node-forge";
|
import { pki } from "node-forge";
|
||||||
|
|
||||||
import * as actionsUtil from "./actions-util";
|
import * as actionsUtil from "./actions-util";
|
||||||
|
import { getActionsLogger, Logger } from "./logging";
|
||||||
import * as util from "./util";
|
import * as util from "./util";
|
||||||
|
|
||||||
const UPDATEJOB_PROXY = "update-job-proxy";
|
const UPDATEJOB_PROXY = "update-job-proxy";
|
||||||
|
|
@ -16,25 +17,26 @@ const PROXY_USER = "proxy_user";
|
||||||
const KEY_SIZE = 2048;
|
const KEY_SIZE = 2048;
|
||||||
const KEY_EXPIRY_YEARS = 2;
|
const KEY_EXPIRY_YEARS = 2;
|
||||||
|
|
||||||
export type CertificateAuthority = {
|
type CertificateAuthority = {
|
||||||
cert: string;
|
cert: string;
|
||||||
key: string;
|
key: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Credential = {
|
type Credential = {
|
||||||
type: string;
|
type: string;
|
||||||
host: string;
|
host?: string;
|
||||||
|
url?: string;
|
||||||
username?: string;
|
username?: string;
|
||||||
password?: string;
|
password?: string;
|
||||||
token?: string;
|
token?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type BasicAuthCredentials = {
|
type BasicAuthCredentials = {
|
||||||
username: string;
|
username: string;
|
||||||
password: string;
|
password: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type ProxyConfig = {
|
type ProxyConfig = {
|
||||||
all_credentials: Credential[];
|
all_credentials: Credential[];
|
||||||
ca: CertificateAuthority;
|
ca: CertificateAuthority;
|
||||||
proxy_auth?: BasicAuthCredentials;
|
proxy_auth?: BasicAuthCredentials;
|
||||||
|
|
@ -89,38 +91,42 @@ function generateCertificateAuthority(): CertificateAuthority {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function runWrapper() {
|
async function runWrapper() {
|
||||||
const tempDir = actionsUtil.getTemporaryDirectory();
|
const logger = getActionsLogger();
|
||||||
const logFilePath = path.resolve(tempDir, "proxy.log");
|
|
||||||
const input = actionsUtil.getOptionalInput("registry_secrets") || "[]";
|
// Setup logging for the proxy
|
||||||
const credentials = JSON.parse(input) as Credential[];
|
const tempDir = actionsUtil.getTemporaryDirectory();
|
||||||
const ca = generateCertificateAuthority();
|
const proxyLogFilePath = path.resolve(tempDir, "proxy.log");
|
||||||
const proxy_password = actionsUtil.getOptionalInput("proxy_password");
|
core.saveState("proxy-log-file", proxyLogFilePath);
|
||||||
core.saveState("proxy-log-file", logFilePath);
|
|
||||||
|
// Get the configuration options
|
||||||
|
const credentials = getCredentials(logger);
|
||||||
|
logger.info(
|
||||||
|
`Credentials loaded for the following registries:\n ${credentials
|
||||||
|
.map((c) => credentialToStr(c))
|
||||||
|
.join("\n")}`,
|
||||||
|
);
|
||||||
|
|
||||||
|
const ca = generateCertificateAuthority();
|
||||||
|
const proxyAuth = getProxyAuth();
|
||||||
|
|
||||||
let proxy_auth: BasicAuthCredentials | undefined = undefined;
|
|
||||||
if (proxy_password) {
|
|
||||||
proxy_auth = {
|
|
||||||
username: PROXY_USER,
|
|
||||||
password: proxy_password,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const proxyConfig: ProxyConfig = {
|
const proxyConfig: ProxyConfig = {
|
||||||
all_credentials: credentials,
|
all_credentials: credentials,
|
||||||
ca,
|
ca,
|
||||||
proxy_auth,
|
proxy_auth: proxyAuth,
|
||||||
};
|
};
|
||||||
const host = "127.0.0.1";
|
|
||||||
let proxyBin = toolcache.find(UPDATEJOB_PROXY, UPDATEJOB_PROXY_VERSION);
|
// Start the Proxy
|
||||||
if (!proxyBin) {
|
const proxyBin = await getProxyBinaryPath();
|
||||||
const temp = await toolcache.downloadTool(UPDATEJOB_PROXY_URL);
|
await startProxy(proxyBin, proxyConfig, proxyLogFilePath, logger);
|
||||||
const extracted = await toolcache.extractTar(temp);
|
|
||||||
proxyBin = await toolcache.cacheDir(
|
|
||||||
extracted,
|
|
||||||
UPDATEJOB_PROXY,
|
|
||||||
UPDATEJOB_PROXY_VERSION,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
proxyBin = path.join(proxyBin, UPDATEJOB_PROXY);
|
|
||||||
|
async function startProxy(
|
||||||
|
binPath: string,
|
||||||
|
config: ProxyConfig,
|
||||||
|
logFilePath: string,
|
||||||
|
logger: Logger,
|
||||||
|
) {
|
||||||
|
const host = "127.0.0.1";
|
||||||
let port = 49152;
|
let port = 49152;
|
||||||
try {
|
try {
|
||||||
let subprocess: ChildProcess | undefined = undefined;
|
let subprocess: ChildProcess | undefined = undefined;
|
||||||
|
|
@ -128,7 +134,7 @@ async function runWrapper() {
|
||||||
let subprocessError: Error | undefined = undefined;
|
let subprocessError: Error | undefined = undefined;
|
||||||
while (tries-- > 0 && !subprocess && !subprocessError) {
|
while (tries-- > 0 && !subprocess && !subprocessError) {
|
||||||
subprocess = spawn(
|
subprocess = spawn(
|
||||||
proxyBin,
|
binPath,
|
||||||
["-addr", `${host}:${port}`, "-config", "-", "-logfile", logFilePath],
|
["-addr", `${host}:${port}`, "-config", "-", "-logfile", logFilePath],
|
||||||
{
|
{
|
||||||
detached: true,
|
detached: true,
|
||||||
|
|
@ -149,7 +155,7 @@ async function runWrapper() {
|
||||||
subprocess = undefined;
|
subprocess = undefined;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
subprocess.stdin?.write(JSON.stringify(proxyConfig));
|
subprocess.stdin?.write(JSON.stringify(config));
|
||||||
subprocess.stdin?.end();
|
subprocess.stdin?.end();
|
||||||
// Wait a little to allow the proxy to start
|
// Wait a little to allow the proxy to start
|
||||||
await util.delay(1000);
|
await util.delay(1000);
|
||||||
|
|
@ -158,10 +164,10 @@ async function runWrapper() {
|
||||||
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
||||||
throw subprocessError;
|
throw subprocessError;
|
||||||
}
|
}
|
||||||
core.info(`Proxy started on ${host}:${port}`);
|
logger.info(`Proxy started on ${host}:${port}`);
|
||||||
core.setOutput("proxy_host", host);
|
core.setOutput("proxy_host", host);
|
||||||
core.setOutput("proxy_port", port.toString());
|
core.setOutput("proxy_port", port.toString());
|
||||||
core.setOutput("proxy_ca_certificate", ca.cert);
|
core.setOutput("proxy_ca_certificate", config.ca.cert);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(
|
core.setFailed(
|
||||||
`start-proxy action failed: ${util.wrapError(error).message}`,
|
`start-proxy action failed: ${util.wrapError(error).message}`,
|
||||||
|
|
@ -169,4 +175,77 @@ async function runWrapper() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getCredentials returns registry credentials from action inputs.
|
||||||
|
// It prefers `registries_credentials` over `registry_secrets`.
|
||||||
|
// If neither is set, it returns an empty array.
|
||||||
|
function getCredentials(logger: Logger): Credential[] {
|
||||||
|
const registriesCredentials = actionsUtil.getOptionalInput(
|
||||||
|
"registries_credentials",
|
||||||
|
);
|
||||||
|
const registrySecrets = actionsUtil.getOptionalInput("registry_secrets");
|
||||||
|
|
||||||
|
let credentialsStr: string;
|
||||||
|
if (registriesCredentials !== undefined) {
|
||||||
|
logger.info(`Using registries_credentials input.`);
|
||||||
|
credentialsStr = Buffer.from(registriesCredentials, "base64").toString();
|
||||||
|
} else if (registrySecrets !== undefined) {
|
||||||
|
logger.info(`Using registry_secrets input.`);
|
||||||
|
credentialsStr = registrySecrets;
|
||||||
|
} else {
|
||||||
|
logger.info(`No credentials defined.`);
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse and validate the credentials
|
||||||
|
const parsed = JSON.parse(credentialsStr) as Credential[];
|
||||||
|
const out: Credential[] = [];
|
||||||
|
for (const e of parsed) {
|
||||||
|
if (e.url === undefined && e.host === undefined) {
|
||||||
|
throw new Error("Invalid credentials - must specify host or url");
|
||||||
|
}
|
||||||
|
out.push({
|
||||||
|
type: e.type,
|
||||||
|
host: e.host,
|
||||||
|
url: e.url,
|
||||||
|
username: e.username,
|
||||||
|
password: e.password,
|
||||||
|
token: e.token,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
// getProxyAuth returns the authentication information for the proxy itself.
|
||||||
|
function getProxyAuth(): BasicAuthCredentials | undefined {
|
||||||
|
const proxy_password = actionsUtil.getOptionalInput("proxy_password");
|
||||||
|
if (proxy_password) {
|
||||||
|
return {
|
||||||
|
username: PROXY_USER,
|
||||||
|
password: proxy_password,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getProxyBinaryPath(): Promise<string> {
|
||||||
|
let proxyBin = toolcache.find(UPDATEJOB_PROXY, UPDATEJOB_PROXY_VERSION);
|
||||||
|
if (!proxyBin) {
|
||||||
|
const temp = await toolcache.downloadTool(UPDATEJOB_PROXY_URL);
|
||||||
|
const extracted = await toolcache.extractTar(temp);
|
||||||
|
proxyBin = await toolcache.cacheDir(
|
||||||
|
extracted,
|
||||||
|
UPDATEJOB_PROXY,
|
||||||
|
UPDATEJOB_PROXY_VERSION,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
proxyBin = path.join(proxyBin, UPDATEJOB_PROXY);
|
||||||
|
return proxyBin;
|
||||||
|
}
|
||||||
|
|
||||||
|
function credentialToStr(c: Credential): string {
|
||||||
|
return `Type: ${c.type}; Host: ${c.host}; Url: ${c.url} Username: ${
|
||||||
|
c.username
|
||||||
|
}; Password: ${c.password !== undefined}; Token: ${c.token !== undefined}`;
|
||||||
|
}
|
||||||
|
|
||||||
void runWrapper();
|
void runWrapper();
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ async function sendSuccessStatusReport(
|
||||||
"success",
|
"success",
|
||||||
startedAt,
|
startedAt,
|
||||||
undefined,
|
undefined,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
if (statusReportBase !== undefined) {
|
if (statusReportBase !== undefined) {
|
||||||
|
|
@ -74,7 +74,7 @@ async function run() {
|
||||||
"starting",
|
"starting",
|
||||||
startedAt,
|
startedAt,
|
||||||
undefined,
|
undefined,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
if (startingStatusReportBase !== undefined) {
|
if (startingStatusReportBase !== undefined) {
|
||||||
|
|
@ -116,7 +116,7 @@ async function run() {
|
||||||
getActionsStatus(error),
|
getActionsStatus(error),
|
||||||
startedAt,
|
startedAt,
|
||||||
undefined,
|
undefined,
|
||||||
await checkDiskUsage(),
|
await checkDiskUsage(logger),
|
||||||
logger,
|
logger,
|
||||||
message,
|
message,
|
||||||
error.stack,
|
error.stack,
|
||||||
|
|
|
||||||
48
src/util.ts
48
src/util.ts
|
|
@ -4,6 +4,7 @@ import * as path from "path";
|
||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
|
|
||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
|
import * as exec from "@actions/exec/lib/exec";
|
||||||
import checkDiskSpace from "check-disk-space";
|
import checkDiskSpace from "check-disk-space";
|
||||||
import del from "del";
|
import del from "del";
|
||||||
import getFolderSize from "get-folder-size";
|
import getFolderSize from "get-folder-size";
|
||||||
|
|
@ -1013,14 +1014,23 @@ export interface DiskUsage {
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function checkDiskUsage(
|
export async function checkDiskUsage(
|
||||||
logger?: Logger,
|
logger: Logger,
|
||||||
): Promise<DiskUsage | undefined> {
|
): Promise<DiskUsage | undefined> {
|
||||||
try {
|
try {
|
||||||
|
// We avoid running the `df` binary under the hood for macOS ARM runners with SIP disabled.
|
||||||
|
if (
|
||||||
|
process.platform === "darwin" &&
|
||||||
|
(process.arch === "arm" || process.arch === "arm64") &&
|
||||||
|
!(await isSipEnabled(logger))
|
||||||
|
) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
const diskUsage = await checkDiskSpace(
|
const diskUsage = await checkDiskSpace(
|
||||||
getRequiredEnvParam("GITHUB_WORKSPACE"),
|
getRequiredEnvParam("GITHUB_WORKSPACE"),
|
||||||
);
|
);
|
||||||
const gbInBytes = 1024 * 1024 * 1024;
|
const gbInBytes = 1024 * 1024 * 1024;
|
||||||
if (logger && diskUsage.free < 2 * gbInBytes) {
|
if (diskUsage.free < 2 * gbInBytes) {
|
||||||
const message =
|
const message =
|
||||||
"The Actions runner is running low on disk space " +
|
"The Actions runner is running low on disk space " +
|
||||||
`(${(diskUsage.free / gbInBytes).toPrecision(4)} GB available).`;
|
`(${(diskUsage.free / gbInBytes).toPrecision(4)} GB available).`;
|
||||||
|
|
@ -1036,11 +1046,9 @@ export async function checkDiskUsage(
|
||||||
numTotalBytes: diskUsage.size,
|
numTotalBytes: diskUsage.size,
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (logger) {
|
|
||||||
logger.warning(
|
logger.warning(
|
||||||
`Failed to check available disk space: ${getErrorMessage(error)}`,
|
`Failed to check available disk space: ${getErrorMessage(error)}`,
|
||||||
);
|
);
|
||||||
}
|
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1104,3 +1112,35 @@ export enum BuildMode {
|
||||||
export function cloneObject<T>(obj: T): T {
|
export function cloneObject<T>(obj: T): T {
|
||||||
return JSON.parse(JSON.stringify(obj)) as T;
|
return JSON.parse(JSON.stringify(obj)) as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For MacOS runners: runs `csrutil status` to determine whether System
|
||||||
|
// Integrity Protection is enabled.
|
||||||
|
export async function isSipEnabled(
|
||||||
|
logger: Logger,
|
||||||
|
): Promise<boolean | undefined> {
|
||||||
|
try {
|
||||||
|
const sipStatusOutput = await exec.getExecOutput("csrutil status");
|
||||||
|
if (sipStatusOutput.exitCode === 0) {
|
||||||
|
if (
|
||||||
|
sipStatusOutput.stdout.includes(
|
||||||
|
"System Integrity Protection status: enabled.",
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
sipStatusOutput.stdout.includes(
|
||||||
|
"System Integrity Protection status: disabled.",
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
} catch (e) {
|
||||||
|
logger.warning(
|
||||||
|
`Failed to determine if System Integrity Protection was enabled: ${e}`,
|
||||||
|
);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
name: "CodeQL: Start proxy"
|
name: "CodeQL: Start proxy"
|
||||||
description: "[Experimental] Start HTTP proxy server"
|
description: "[Experimental] Start HTTP proxy server. This action is for internal GitHub used only and will change without notice."
|
||||||
author: "GitHub"
|
author: "GitHub"
|
||||||
inputs:
|
inputs:
|
||||||
registry_secrets:
|
registry_secrets:
|
||||||
description: The URLs and credentials of package registries
|
description: The URLs and credentials of package registries
|
||||||
required: false
|
required: false
|
||||||
default: "[]"
|
default: "[]"
|
||||||
|
registries_credentials:
|
||||||
|
description: Base64 encoded JSON configuration for the URLs and credentials of the package registries
|
||||||
|
required: false
|
||||||
proxy_password:
|
proxy_password:
|
||||||
required: false
|
required: false
|
||||||
description: The password of the proxy
|
description: The password of the proxy
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue