Skip to content
Permalink
Newer
Older
100644 162 lines (162 sloc) 8.69 KB
2
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
if (k2 === undefined) k2 = k;
4
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
}) : (function(o, m, k, k2) {
6
if (k2 === undefined) k2 = k;
7
o[k2] = m[k];
8
}));
9
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
Object.defineProperty(o, "default", { enumerable: true, value: v });
11
}) : function(o, v) {
12
o["default"] = v;
13
});
14
var __importStar = (this && this.__importStar) || function (mod) {
15
if (mod && mod.__esModule) return mod;
16
var result = {};
17
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
__setModuleDefault(result, mod);
19
return result;
20
};
21
Object.defineProperty(exports, "__esModule", { value: true });
22
const path = __importStar(require("path"));
23
const core = __importStar(require("@actions/core"));
24
const actions_util_1 = require("./actions-util");
25
const codeql_1 = require("./codeql");
26
const feature_flags_1 = require("./feature-flags");
August 25, 2020 16:19
27
const init_1 = require("./init");
October 6, 2020 11:30
28
const languages_1 = require("./languages");
August 25, 2020 16:19
29
const logging_1 = require("./logging");
30
const repository_1 = require("./repository");
31
const util_1 = require("./util");
32
// eslint-disable-next-line import/no-commonjs
33
const pkg = require("../package.json");
34
async function sendSuccessStatusReport(startedAt, config, toolsVersion) {
35
var _a;
36
const statusReportBase = await (0, actions_util_1.createStatusReportBase)("init", "success", startedAt);
September 14, 2020 10:44
37
const languages = config.languages.join(",");
38
const workflowLanguages = (0, actions_util_1.getOptionalInput)("languages");
September 14, 2020 10:44
39
const paths = (config.originalUserInput.paths || []).join(",");
40
const pathsIgnore = (config.originalUserInput["paths-ignore"] || []).join(",");
41
const disableDefaultQueries = config.originalUserInput["disable-default-queries"]
42
? languages
43
: "";
44
const queries = [];
45
let queriesInput = (_a = (0, actions_util_1.getOptionalInput)("queries")) === null || _a === void 0 ? void 0 : _a.trim();
46
if (queriesInput === undefined || queriesInput.startsWith("+")) {
47
queries.push(...(config.originalUserInput.queries || []).map((q) => q.uses));
48
}
49
if (queriesInput !== undefined) {
50
queriesInput = queriesInput.startsWith("+")
51
? queriesInput.substr(1)
52
: queriesInput;
53
queries.push(...queriesInput.split(","));
54
}
55
const statusReport = {
56
...statusReportBase,
September 14, 2020 10:44
57
languages,
58
workflow_languages: workflowLanguages || "",
September 14, 2020 10:44
59
paths,
60
paths_ignore: pathsIgnore,
61
disable_default_queries: disableDefaultQueries,
62
queries: queries.join(","),
63
tools_input: (0, actions_util_1.getOptionalInput)("tools") || "",
64
tools_resolved_version: toolsVersion,
65
};
66
await (0, actions_util_1.sendStatusReport)(statusReport);
67
}
68
async function run() {
69
const startedAt = new Date();
70
const logger = (0, logging_1.getActionsLogger)();
71
(0, util_1.initializeEnvironment)(util_1.Mode.actions, pkg.version);
72
let config;
73
let codeql;
74
let toolsVersion;
75
const apiDetails = {
76
auth: (0, actions_util_1.getRequiredInput)("token"),
77
externalRepoAuth: (0, actions_util_1.getOptionalInput)("external-repository-token"),
78
url: (0, util_1.getRequiredEnvParam)("GITHUB_SERVER_URL"),
79
};
80
const gitHubVersion = await (0, util_1.getGitHubVersion)(apiDetails);
81
(0, util_1.checkGitHubVersionInRange)(gitHubVersion, logger, util_1.Mode.actions);
82
const repositoryNwo = (0, repository_1.parseRepositoryNwo)((0, util_1.getRequiredEnvParam)("GITHUB_REPOSITORY"));
83
const featureFlags = new feature_flags_1.GitHubFeatureFlags(gitHubVersion, apiDetails, repositoryNwo, logger);
85
const workflowErrors = await (0, actions_util_1.validateWorkflow)();
86
if (!(await (0, actions_util_1.sendStatusReport)(await (0, actions_util_1.createStatusReportBase)("init", "starting", startedAt, workflowErrors)))) {
89
const initCodeQLResult = await (0, init_1.initCodeQL)((0, actions_util_1.getOptionalInput)("tools"), apiDetails, (0, actions_util_1.getTemporaryDirectory)(), (0, actions_util_1.getToolCacheDirectory)(), gitHubVersion.type, logger);
90
codeql = initCodeQLResult.codeql;
91
toolsVersion = initCodeQLResult.toolsVersion;
92
await (0, util_1.enrichEnvironment)(util_1.Mode.actions, codeql);
93
config = await (0, init_1.initConfig)((0, actions_util_1.getOptionalInput)("languages"), (0, actions_util_1.getOptionalInput)("queries"), (0, actions_util_1.getOptionalInput)("packs"), (0, actions_util_1.getOptionalInput)("config-file"), (0, actions_util_1.getOptionalInput)("db-location"), (0, actions_util_1.getOptionalInput)("debug") === "true", (0, actions_util_1.getOptionalInput)("debug-artifact-name") || util_1.DEFAULT_DEBUG_ARTIFACT_NAME, (0, actions_util_1.getOptionalInput)("debug-database-name") || util_1.DEFAULT_DEBUG_DATABASE_NAME, repositoryNwo, (0, actions_util_1.getTemporaryDirectory)(), (0, util_1.getRequiredEnvParam)("RUNNER_TOOL_CACHE"), codeql, (0, util_1.getRequiredEnvParam)("GITHUB_WORKSPACE"), gitHubVersion, apiDetails, featureFlags, logger);
January 11, 2022 17:43
94
if (config.languages.some(languages_1.isTracedLanguage)) {
95
// We currently do not support tracing on Windows 11 and Windows Server 2022
96
(0, util_1.checkNotWindows11)();
97
}
October 27, 2020 10:06
98
if (config.languages.includes(languages_1.Language.python) &&
99
(0, actions_util_1.getRequiredInput)("setup-python-dependencies") === "true") {
October 6, 2020 11:30
100
try {
101
await (0, init_1.installPythonDeps)(codeql, logger);
October 6, 2020 11:30
102
}
103
catch (err) {
104
const message = err instanceof Error ? err.message : String(err);
105
logger.warning(`${message} You can call this action with 'setup-python-dependencies: false' to disable this process`);
October 6, 2020 11:30
106
}
September 11, 2020 10:53
107
}
June 23, 2020 18:36
108
}
109
catch (e) {
110
const message = e instanceof Error ? e.message : String(e);
111
core.setFailed(message);
August 5, 2020 09:40
112
console.log(e);
113
await (0, actions_util_1.sendStatusReport)(await (0, actions_util_1.createStatusReportBase)("init", "aborted", startedAt, message));
June 23, 2020 18:36
114
return;
115
}
116
try {
117
// Forward Go flags
September 14, 2020 10:44
118
const goFlags = process.env["GOFLAGS"];
119
if (goFlags) {
September 14, 2020 10:44
120
core.exportVariable("GOFLAGS", goFlags);
121
core.warning("Passing the GOFLAGS env parameter to the init action is deprecated. Please move this to the analyze action.");
122
}
123
// Limit RAM and threads for extractors. When running extractors, the CodeQL CLI obeys the
124
// CODEQL_RAM and CODEQL_THREADS environment variables to decide how much RAM and how many
125
// threads it would ask extractors to use. See help text for the "--ram" and "--threads"
126
// options at https://codeql.github.com/docs/codeql-cli/manual/database-trace-command/
127
// for details.
128
core.exportVariable("CODEQL_RAM", process.env["CODEQL_RAM"] ||
129
(0, util_1.getMemoryFlagValue)((0, actions_util_1.getOptionalInput)("ram")).toString());
130
core.exportVariable("CODEQL_THREADS", (0, util_1.getThreadsFlagValue)((0, actions_util_1.getOptionalInput)("threads"), logger).toString());
131
const sourceRoot = path.resolve((0, util_1.getRequiredEnvParam)("GITHUB_WORKSPACE"), (0, actions_util_1.getOptionalInput)("source-root") || "");
132
const tracerConfig = await (0, init_1.runInit)(codeql, config, sourceRoot, "Runner.Worker.exe", undefined);
August 24, 2020 12:53
133
if (tracerConfig !== undefined) {
134
for (const [key, value] of Object.entries(tracerConfig.env)) {
135
core.exportVariable(key, value);
136
}
137
if (process.platform === "win32" &&
138
!(await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_NEW_TRACING))) {
139
await (0, init_1.injectWindowsTracer)("Runner.Worker.exe", undefined, config, codeql, tracerConfig);
140
}
142
core.setOutput("codeql-path", config.codeQLCmd);
143
}
144
catch (error) {
145
core.setFailed(String(error));
August 5, 2020 09:40
146
console.log(error);
147
await (0, actions_util_1.sendStatusReport)(await (0, actions_util_1.createStatusReportBase)("init", "failure", startedAt, String(error), error instanceof Error ? error.stack : undefined));
150
await sendSuccessStatusReport(startedAt, config, toolsVersion);
November 25, 2020 22:46
152
async function runWrapper() {
153
try {
154
await run();
155
}
156
catch (error) {
157
core.setFailed(`init action failed: ${error}`);
158
console.log(error);
159
}
160
}
161
void runWrapper();
August 24, 2020 15:09
162
//# sourceMappingURL=init-action.js.map