Refactor swift check out of init-action.ts

This commit is contained in:
Michael B. Gale
2026-10-09 11:01:20 +01:00
parent 7db9c3094b
commit 8f7891e3ee
4 changed files with 164 additions and 93 deletions

176
lib/entry-points.js generated
View File

@@ -26953,7 +26953,7 @@ var require_parse2 = __commonJS({
"node_modules/semver/functions/parse.js"(exports2, module2) {
"use strict";
var SemVer = require_semver();
var parse3 = (version, options, throwErrors = false) => {
var parse4 = (version, options, throwErrors = false) => {
if (version instanceof SemVer) {
return version;
}
@@ -26966,7 +26966,7 @@ var require_parse2 = __commonJS({
throw er;
}
};
module2.exports = parse3;
module2.exports = parse4;
}
});
@@ -26974,9 +26974,9 @@ var require_parse2 = __commonJS({
var require_valid = __commonJS({
"node_modules/semver/functions/valid.js"(exports2, module2) {
"use strict";
var parse3 = require_parse2();
var parse4 = require_parse2();
var valid4 = (version, options) => {
const v = parse3(version, options);
const v = parse4(version, options);
return v ? v.version : null;
};
module2.exports = valid4;
@@ -26987,9 +26987,9 @@ var require_valid = __commonJS({
var require_clean = __commonJS({
"node_modules/semver/functions/clean.js"(exports2, module2) {
"use strict";
var parse3 = require_parse2();
var parse4 = require_parse2();
var clean3 = (version, options) => {
const s = parse3(version.trim().replace(/^[=v]+/, ""), options);
const s = parse4(version.trim().replace(/^[=v]+/, ""), options);
return s ? s.version : null;
};
module2.exports = clean3;
@@ -27024,10 +27024,10 @@ var require_inc = __commonJS({
var require_diff = __commonJS({
"node_modules/semver/functions/diff.js"(exports2, module2) {
"use strict";
var parse3 = require_parse2();
var parse4 = require_parse2();
var diff = (version1, version2) => {
const v1 = parse3(version1, null, true);
const v2 = parse3(version2, null, true);
const v1 = parse4(version1, null, true);
const v2 = parse4(version2, null, true);
const comparison = v1.compare(v2);
if (comparison === 0) {
return null;
@@ -27098,9 +27098,9 @@ var require_patch = __commonJS({
var require_prerelease = __commonJS({
"node_modules/semver/functions/prerelease.js"(exports2, module2) {
"use strict";
var parse3 = require_parse2();
var parse4 = require_parse2();
var prerelease = (version, options) => {
const parsed = parse3(version, options);
const parsed = parse4(version, options);
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
};
module2.exports = prerelease;
@@ -27286,7 +27286,7 @@ var require_coerce = __commonJS({
"node_modules/semver/functions/coerce.js"(exports2, module2) {
"use strict";
var SemVer = require_semver();
var parse3 = require_parse2();
var parse4 = require_parse2();
var { safeRe: re, t } = require_re();
var coerce3 = (version, options) => {
if (version instanceof SemVer) {
@@ -27321,7 +27321,7 @@ var require_coerce = __commonJS({
const patch = match2[4] || "0";
const prerelease = options.includePrerelease && match2[5] ? `-${match2[5]}` : "";
const build2 = options.includePrerelease && match2[6] ? `+${match2[6]}` : "";
return parse3(`${major}.${minor}.${patch}${prerelease}${build2}`, options);
return parse4(`${major}.${minor}.${patch}${prerelease}${build2}`, options);
};
module2.exports = coerce3;
}
@@ -27331,7 +27331,7 @@ var require_coerce = __commonJS({
var require_truncate = __commonJS({
"node_modules/semver/functions/truncate.js"(exports2, module2) {
"use strict";
var parse3 = require_parse2();
var parse4 = require_parse2();
var constants = require_constants6();
var SemVer = require_semver();
var truncate = (version, truncation, options) => {
@@ -27343,7 +27343,7 @@ var require_truncate = __commonJS({
};
var cloneInputVersion = (version, options) => {
const versionStringToParse = version instanceof SemVer ? version.version : version;
return parse3(versionStringToParse, options);
return parse4(versionStringToParse, options);
};
var doTruncation = (version, truncation) => {
if (isPrerelease(truncation)) {
@@ -28387,7 +28387,7 @@ var require_semver2 = __commonJS({
var constants = require_constants6();
var SemVer = require_semver();
var identifiers = require_identifiers();
var parse3 = require_parse2();
var parse4 = require_parse2();
var valid4 = require_valid();
var clean3 = require_clean();
var inc = require_inc();
@@ -28426,7 +28426,7 @@ var require_semver2 = __commonJS({
var simplifyRange = require_simplify();
var subset = require_subset();
module2.exports = {
parse: parse3,
parse: parse4,
valid: valid4,
clean: clean3,
inc,
@@ -32109,9 +32109,9 @@ var require_minimatch = __commonJS({
throw new TypeError("pattern is too long");
}
};
Minimatch2.prototype.parse = parse3;
Minimatch2.prototype.parse = parse4;
var SUBPARSE = {};
function parse3(pattern, isSub) {
function parse4(pattern, isSub) {
assertValidPattern2(pattern);
var options = this.options;
if (pattern === "**") {
@@ -33561,8 +33561,8 @@ var require_semver3 = __commonJS({
}
}
var i;
exports2.parse = parse3;
function parse3(version, options) {
exports2.parse = parse4;
function parse4(version, options) {
if (!options || typeof options !== "object") {
options = {
loose: !!options,
@@ -33590,12 +33590,12 @@ var require_semver3 = __commonJS({
}
exports2.valid = valid4;
function valid4(version, options) {
var v = parse3(version, options);
var v = parse4(version, options);
return v ? v.version : null;
}
exports2.clean = clean3;
function clean3(version, options) {
var s = parse3(version.trim().replace(/^[=v]+/, ""), options);
var s = parse4(version.trim().replace(/^[=v]+/, ""), options);
return s ? s.version : null;
}
exports2.SemVer = SemVer;
@@ -33831,8 +33831,8 @@ var require_semver3 = __commonJS({
if (eq(version1, version2)) {
return null;
} else {
var v1 = parse3(version1);
var v2 = parse3(version2);
var v1 = parse4(version1);
var v2 = parse4(version2);
var prefix = "";
if (v1.prerelease.length || v2.prerelease.length) {
prefix = "pre";
@@ -34538,7 +34538,7 @@ var require_semver3 = __commonJS({
}
exports2.prerelease = prerelease;
function prerelease(version, options) {
var parsed = parse3(version, options);
var parsed = parse4(version, options);
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
}
exports2.intersects = intersects;
@@ -34575,7 +34575,7 @@ var require_semver3 = __commonJS({
if (match2 === null) {
return null;
}
return parse3(match2[2] + "." + (match2[3] || "0") + "." + (match2[4] || "0"), options);
return parse4(match2[2] + "." + (match2[3] || "0") + "." + (match2[4] || "0"), options);
}
}
});
@@ -34719,7 +34719,7 @@ var require_cacheUtils = __commonJS({
var crypto3 = __importStar2(require("crypto"));
var fs33 = __importStar2(require("fs"));
var path30 = __importStar2(require("path"));
var semver11 = __importStar2(require_semver3());
var semver12 = __importStar2(require_semver3());
var util4 = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -34812,7 +34812,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver11.clean(versionOutput);
const version = semver12.clean(versionOutput);
core29.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -37490,7 +37490,7 @@ var require_ms = __commonJS({
options = options || {};
var type = typeof val;
if (type === "string" && val.length > 0) {
return parse3(val);
return parse4(val);
} else if (type === "number" && isFinite(val)) {
return options.long ? fmtLong(val) : fmtShort(val);
}
@@ -37498,7 +37498,7 @@ var require_ms = __commonJS({
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
);
};
function parse3(str) {
function parse4(str) {
str = String(str);
if (str.length > 100) {
return;
@@ -42967,11 +42967,11 @@ var require_tracingPolicy = __commonJS({
var import_log = require_log3();
var import_core_util = require_commonjs4();
var import_restError = require_restError3();
var import_util58 = require_internal3();
var import_util59 = require_internal3();
var tracingPolicyName2 = "tracingPolicy";
function tracingPolicy2(options = {}) {
const userAgentPromise = (0, import_userAgent.getUserAgentValue)(options.userAgentPrefix);
const sanitizer = new import_util58.Sanitizer({
const sanitizer = new import_util59.Sanitizer({
additionalAllowedQueryParameters: options.additionalAllowedQueryParameters
});
const tracingClient = tryCreateTracingClient();
@@ -45399,7 +45399,7 @@ var require_deserializationPolicy = __commonJS({
return result;
}
async function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options, parseXML) {
const parsedResponse = await parse3(jsonContentTypes, xmlContentTypes, response, options, parseXML);
const parsedResponse = await parse4(jsonContentTypes, xmlContentTypes, response, options, parseXML);
if (!shouldDeserializeResponse(parsedResponse)) {
return parsedResponse;
}
@@ -45500,7 +45500,7 @@ var require_deserializationPolicy = __commonJS({
}
return { error: error3, shouldReturnResponse: false };
}
async function parse3(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML) {
async function parse4(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML) {
if (!operationResponse.request.streamResponseStatusCodes?.has(operationResponse.status) && operationResponse.bodyAsText) {
const text = operationResponse.bodyAsText;
const contentType = operationResponse.headers.get("Content-Type") || "";
@@ -46597,11 +46597,11 @@ var require_response2 = __commonJS({
});
module2.exports = __toCommonJS2(response_exports);
var import_core_rest_pipeline = require_commonjs6();
var import_util58 = require_util9();
var import_util59 = require_util9();
var originalResponse = /* @__PURE__ */ Symbol("Original FullOperationResponse");
function toCompatResponse2(response, options) {
let request3 = (0, import_util58.toWebResourceLike)(response.request);
let headers = (0, import_util58.toHttpHeadersLike)(response.headers);
let request3 = (0, import_util59.toWebResourceLike)(response.request);
let headers = (0, import_util59.toHttpHeadersLike)(response.headers);
if (options?.createProxy) {
return new Proxy(response, {
get(target, prop, receiver) {
@@ -46642,7 +46642,7 @@ var require_response2 = __commonJS({
return {
...compatResponse,
headers,
request: (0, import_util58.toPipelineRequest)(compatResponse.request)
request: (0, import_util59.toPipelineRequest)(compatResponse.request)
};
}
}
@@ -46749,7 +46749,7 @@ var require_requestPolicyFactoryPolicy = __commonJS({
requestPolicyFactoryPolicyName: () => requestPolicyFactoryPolicyName2
});
module2.exports = __toCommonJS2(requestPolicyFactoryPolicy_exports);
var import_util58 = require_util9();
var import_util59 = require_util9();
var import_response = require_response2();
var HttpPipelineLogLevel2 = /* @__PURE__ */ ((HttpPipelineLogLevel22) => {
HttpPipelineLogLevel22[HttpPipelineLogLevel22["ERROR"] = 1] = "ERROR";
@@ -46773,14 +46773,14 @@ var require_requestPolicyFactoryPolicy = __commonJS({
async sendRequest(request3, next) {
let httpPipeline = {
async sendRequest(httpRequest) {
const response2 = await next((0, import_util58.toPipelineRequest)(httpRequest));
const response2 = await next((0, import_util59.toPipelineRequest)(httpRequest));
return (0, import_response.toCompatResponse)(response2, { createProxy: true });
}
};
for (const factory of orderedFactories) {
httpPipeline = factory.create(httpPipeline, mockRequestPolicyOptions);
}
const webResourceLike = (0, import_util58.toWebResourceLike)(request3, { createProxy: true });
const webResourceLike = (0, import_util59.toWebResourceLike)(request3, { createProxy: true });
const response = await httpPipeline.sendRequest(webResourceLike);
return (0, import_response.toPipelineResponse)(response);
}
@@ -46815,12 +46815,12 @@ var require_httpClientAdapter = __commonJS({
});
module2.exports = __toCommonJS2(httpClientAdapter_exports);
var import_response = require_response2();
var import_util58 = require_util9();
var import_util59 = require_util9();
function convertHttpClient2(requestPolicyClient) {
return {
sendRequest: async (request3) => {
const response = await requestPolicyClient.sendRequest(
(0, import_util58.toWebResourceLike)(request3, { createProxy: true })
(0, import_util59.toWebResourceLike)(request3, { createProxy: true })
);
return (0, import_response.toPipelineResponse)(response);
}
@@ -46858,7 +46858,7 @@ var require_commonjs9 = __commonJS({
disableKeepAlivePolicyName: () => import_disableKeepAlivePolicy.disableKeepAlivePolicyName,
requestPolicyFactoryPolicyName: () => import_requestPolicyFactoryPolicy.requestPolicyFactoryPolicyName,
toCompatResponse: () => import_response.toCompatResponse,
toHttpHeadersLike: () => import_util58.toHttpHeadersLike
toHttpHeadersLike: () => import_util59.toHttpHeadersLike
});
module2.exports = __toCommonJS2(src_exports);
var import_extendedClient = require_extendedClient();
@@ -46866,7 +46866,7 @@ var require_commonjs9 = __commonJS({
var import_requestPolicyFactoryPolicy = require_requestPolicyFactoryPolicy();
var import_disableKeepAlivePolicy = require_disableKeepAlivePolicy();
var import_httpClientAdapter = require_httpClientAdapter();
var import_util58 = require_util9();
var import_util59 = require_util9();
}
});
@@ -106346,7 +106346,7 @@ var require_manifest = __commonJS({
exports2._findMatch = _findMatch;
exports2._getOsVersion = _getOsVersion;
exports2._readLinuxVersionFile = _readLinuxVersionFile;
var semver11 = __importStar2(require_semver2());
var semver12 = __importStar2(require_semver2());
var core_1 = require_core();
var os8 = require("os");
var cp = require("child_process");
@@ -106360,7 +106360,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver11.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver12.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -106369,7 +106369,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver11.satisfies(osVersion, item.platform_version);
chk = semver12.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -106629,7 +106629,7 @@ var require_tool_cache = __commonJS({
var os8 = __importStar2(require("os"));
var path30 = __importStar2(require("path"));
var httpm = __importStar2(require_lib());
var semver11 = __importStar2(require_semver2());
var semver12 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util4 = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -106902,7 +106902,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir2(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver11.clean(version) || version;
version = semver12.clean(version) || version;
arch2 = arch2 || os8.arch();
core29.debug(`Caching tool ${tool} ${version} ${arch2}`);
core29.debug(`source dir: ${sourceDir}`);
@@ -106920,7 +106920,7 @@ var require_tool_cache = __commonJS({
}
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver11.clean(version) || version;
version = semver12.clean(version) || version;
arch2 = arch2 || os8.arch();
core29.debug(`Caching tool ${tool} ${version} ${arch2}`);
core29.debug(`source file: ${sourceFile}`);
@@ -106950,7 +106950,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver11.clean(versionSpec) || "";
versionSpec = semver12.clean(versionSpec) || "";
const cachePath = path30.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core29.debug(`checking cache: ${cachePath}`);
if (fs33.existsSync(cachePath) && fs33.existsSync(`${cachePath}.complete`)) {
@@ -107030,7 +107030,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path30.join(_getCacheDirectory(), tool, semver11.clean(version) || version, arch2 || "");
const folderPath = path30.join(_getCacheDirectory(), tool, semver12.clean(version) || version, arch2 || "");
core29.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io9.rmRF(folderPath);
@@ -107040,15 +107040,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path30.join(_getCacheDirectory(), tool, semver11.clean(version) || version, arch2 || "");
const folderPath = path30.join(_getCacheDirectory(), tool, semver12.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs33.writeFileSync(markerPath, "");
core29.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver11.clean(versionSpec) || "";
const c = semver12.clean(versionSpec) || "";
core29.debug(`isExplicit: ${c}`);
const valid4 = semver11.valid(c) != null;
const valid4 = semver12.valid(c) != null;
core29.debug(`explicit? ${valid4}`);
return valid4;
}
@@ -107056,14 +107056,14 @@ var require_tool_cache = __commonJS({
let version = "";
core29.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver11.gt(a, b)) {
if (semver12.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver11.satisfies(potential, versionSpec);
const satisfied = semver12.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -136593,7 +136593,7 @@ var require_dist_node2 = __commonJS({
return template.replace(/\/$/, "");
}
}
function parse3(options) {
function parse4(options) {
let method = options.method.toUpperCase();
let url2 = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}");
let headers = Object.assign({}, options.headers);
@@ -136657,7 +136657,7 @@ var require_dist_node2 = __commonJS({
);
}
function endpointWithDefaults2(defaults3, route, options) {
return parse3(merge2(defaults3, route, options));
return parse4(merge2(defaults3, route, options));
}
function withDefaults4(oldDefaults, newDefaults) {
const DEFAULTS22 = merge2(oldDefaults, newDefaults);
@@ -136666,7 +136666,7 @@ var require_dist_node2 = __commonJS({
DEFAULTS: DEFAULTS22,
defaults: withDefaults4.bind(null, DEFAULTS22),
merge: merge2.bind(null, DEFAULTS22),
parse: parse3
parse: parse4
});
}
var endpoint2 = withDefaults4(null, DEFAULTS2);
@@ -140898,7 +140898,7 @@ var require_binary = __commonJS({
});
return stream2;
};
exports2.parse = function parse3(buffer) {
exports2.parse = function parse4(buffer) {
var self2 = words(function(bytes, cb) {
return function(name) {
if (offset + bytes <= buffer.length) {
@@ -175305,7 +175305,7 @@ var path13 = __toESM(require("path"));
var import_perf_hooks4 = require("perf_hooks");
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver9 = __toESM(require_semver2());
var semver10 = __toESM(require_semver2());
// src/codeql-bundle.ts
function getCodeQLBundleName(compressionMethod, platform2, language) {
@@ -175634,9 +175634,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger2) {
}
// src/per-language-bundles.ts
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
// src/platform.ts
var semver6 = __toESM(require_semver2());
function getBundlePlatform(platform2 = process.platform, arch2 = process.arch) {
switch (platform2) {
case "win32":
@@ -175741,7 +175742,7 @@ async function getPerLanguageBundleLanguage({
if (cliVersion2 === void 0) {
return explain("the requested CLI version is unknown");
}
if (!semver6.gte(cliVersion2, MIN_PER_LANGUAGE_BUNDLE_CLI_VERSION)) {
if (!semver7.gte(cliVersion2, MIN_PER_LANGUAGE_BUNDLE_CLI_VERSION)) {
return explain(
`the requested CodeQL version ${cliVersion2} is older than ${MIN_PER_LANGUAGE_BUNDLE_CLI_VERSION}, which is the first version for which per-language bundles are published`
);
@@ -175767,7 +175768,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -175809,9 +175810,9 @@ async function isZstdAvailable(logger2) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver7.gte(
semver7.coerce(version),
semver7.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver8.gte(
semver8.coerce(version),
semver8.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -175820,7 +175821,7 @@ async function isZstdAvailable(logger2) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver7.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver8.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -175929,7 +175930,7 @@ var core11 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver8 = __toESM(require_semver2());
var semver9 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var STREAMING_STALL_TIMEOUT_MS = 5 * 60 * 1e3;
var TOOLCACHE_TOOL_NAME = "CodeQL";
@@ -176055,7 +176056,7 @@ function getToolcacheToolDirectory(env) {
);
}
function getToolcacheVersionDirectoryName(version) {
return semver8.clean(version) || version;
return semver9.clean(version) || version;
}
function getToolcacheDirectory(version) {
return path12.join(
@@ -176235,13 +176236,13 @@ function tryGetTagNameFromUrl(url2, logger2) {
return match2[1];
}
function convertToSemVer(version, logger2) {
if (!semver9.valid(version)) {
if (!semver10.valid(version)) {
logger2.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver9.clean(version);
const s = semver10.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -176457,7 +176458,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, rawLanguages, othe
url2 = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger2);
if (bundleVersion3 !== void 0 && semver9.valid(bundleVersion3)) {
if (bundleVersion3 !== void 0 && semver10.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger2);
}
}
@@ -176839,7 +176840,7 @@ async function downloadCodeQLBundle(action, source, apiDetails, tarVersion, temp
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver9.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver10.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
@@ -176893,7 +176894,7 @@ async function getLatestNightlyBundle(action, rawLanguages, otherLanguagePacksRe
}
}
function getLatestToolcacheVersion(logger2) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver9.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver10.compare(b, a));
logger2.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
@@ -185996,7 +185997,7 @@ var fs30 = __toESM(require("fs"));
var path25 = __toESM(require("path"));
var core19 = __toESM(require_core());
var io7 = __toESM(require_io());
var semver10 = __toESM(require_semver2());
var semver11 = __toESM(require_semver2());
// src/config/inputs.ts
async function getToolsInput(action, repositoryProperties) {
@@ -186032,6 +186033,15 @@ async function getToolsInput(action, repositoryProperties) {
return void 0;
}
// src/languages/swift.ts
function isSwiftCompatible(action, config) {
if (config.languages.includes("swift" /* swift */) && action.platform !== "darwin") {
throw new ConfigurationError(
`Swift analysis is only supported on macOS runner images. Please migrate to a macOS runner.`
);
}
}
// src/status-report/tools-download.ts
function createInitToolsDownloadFields(report, toolsFeatureFlagsValid) {
const fields = { ...report?.perLanguage };
@@ -186501,7 +186511,7 @@ async function run3(actionState) {
) {
const publicPreview = "2.22.1";
const actualVer = (await codeql.getVersion()).version;
if (semver10.lt(actualVer, publicPreview)) {
if (semver11.lt(actualVer, publicPreview)) {
actionState.env.export("CODEQL_ENABLE_EXPERIMENTAL_FEATURES" /* EXPERIMENTAL_FEATURES */, "true");
logger2.info("Experimental Rust analysis enabled");
}
@@ -186546,11 +186556,7 @@ async function run3(actionState) {
enableFileCoverageInformation: fileCoverageResult.enabled,
logger: logger2
});
if (config.languages.includes("swift" /* swift */) && process.platform !== "darwin") {
throw new ConfigurationError(
`Swift analysis is only supported on macOS runner images. Please migrate to a macOS runner.`
);
}
isSwiftCompatible(actionState, config);
if (repositoryPropertiesResult.isFailure()) {
addNoLanguageDiagnostic(
config,

View File

@@ -61,6 +61,7 @@ import {
runDatabaseInitCluster,
} from "./init";
import { JavaEnvVars, BuiltInLanguage } from "./languages";
import { isSwiftCompatible } from "./languages/swift";
import { Logger, withGroupAsync } from "./logging";
import {
downloadOverlayBaseDatabaseFromCache,
@@ -418,14 +419,7 @@ async function run(
logger,
});
if (
config.languages.includes(BuiltInLanguage.swift) &&
process.platform !== "darwin"
) {
throw new ConfigurationError(
`Swift analysis is only supported on macOS runner images. Please migrate to a macOS runner.`,
);
}
isSwiftCompatible(actionState, config);
if (repositoryPropertiesResult.isFailure()) {
addNoLanguageDiagnostic(

View File

@@ -0,0 +1,43 @@
import test from "ava";
import { createTestConfig, initAllState } from "../testing-utils";
import { isSwiftCompatible } from "./swift";
import { BuiltInLanguage } from ".";
test("isSwiftCompatible doesn't throw for non-Swift languages", (t) => {
for (const language of Object.values(BuiltInLanguage)) {
if (language === BuiltInLanguage.swift) {
continue;
}
t.notThrows(() =>
isSwiftCompatible(
initAllState(),
createTestConfig({ languages: [language] }),
),
);
}
});
test("isSwiftCompatible doesn't throw for Swift on darwin", (t) => {
t.notThrows(() => {
isSwiftCompatible(
initAllState({ platform: "darwin" }),
createTestConfig({ languages: [BuiltInLanguage.swift] }),
);
});
});
const nonDarwinPlatforms: NodeJS.Platform[] = ["linux", "win32"];
for (const nonDarwinPlatform of nonDarwinPlatforms) {
test(`isSwiftCompatible throws for Swift on ${nonDarwinPlatform}`, (t) => {
t.throws(() => {
isSwiftCompatible(
initAllState({ platform: nonDarwinPlatform }),
createTestConfig({ languages: [BuiltInLanguage.swift] }),
);
});
});
}

28
src/languages/swift.ts Normal file
View File

@@ -0,0 +1,28 @@
import { ActionState } from "../action-common";
import { Config } from "../config-utils";
import { ConfigurationError } from "../util";
import { BuiltInLanguage } from ".";
/**
* Determines whether we can run a Swift analysis on the current runner.
*
* @param action The Action state.
* @param config The Action configuration.
*
* @throws {ConfigurationError} If Swift analysis is not possible on the current runner.
* @returns True if we can run a Swift analysis.
*/
export function isSwiftCompatible(
action: ActionState<["Base"]>,
config: Config,
) {
if (
config.languages.includes(BuiltInLanguage.swift) &&
action.platform !== "darwin"
) {
throw new ConfigurationError(
`Swift analysis is only supported on macOS runner images. Please migrate to a macOS runner.`,
);
}
}