mirror of
https://github.com/SonarSource/sonarqube-scan-action.git
synced 2026-01-27 23:23:15 +03:00
SQSCANGHA-107 Migrate install-build-wrapper
This commit is contained in:
committed by
Julien HENRY
parent
a88c96d7e4
commit
ff001fd600
98
src/install-build-wrapper/utils.js
Normal file
98
src/install-build-wrapper/utils.js
Normal file
@@ -0,0 +1,98 @@
|
||||
import * as exec from "@actions/exec";
|
||||
import * as path from "path";
|
||||
|
||||
/**
|
||||
* Compute all names and paths related to the build wrapper
|
||||
* based on the runner environment
|
||||
*/
|
||||
export function getBuildWrapperInfo({
|
||||
runnerOS,
|
||||
runnerArch,
|
||||
runnerTemp,
|
||||
sonarHostUrl,
|
||||
}) {
|
||||
const { buildWrapperSuffix, buildWrapperName } = getSuffixAndName(
|
||||
runnerOS,
|
||||
runnerArch
|
||||
);
|
||||
|
||||
const buildWrapperDir = `${runnerTemp}/build-wrapper-${buildWrapperSuffix}`;
|
||||
const buildWrapperUrl = `${sonarHostUrl}/static/cpp/build-wrapper-${buildWrapperSuffix}.zip`;
|
||||
const buildWrapperBin = `${buildWrapperDir}/${buildWrapperName}`;
|
||||
|
||||
return {
|
||||
buildWrapperUrl,
|
||||
buildWrapperDir,
|
||||
buildWrapperBin,
|
||||
};
|
||||
}
|
||||
|
||||
function getSuffixAndName(runnerOS, runnerArch) {
|
||||
if (
|
||||
runnerArch !== "X64" &&
|
||||
!(runnerArch === "ARM64" && (runnerOS === "macOS" || runnerOS === "Linux"))
|
||||
) {
|
||||
throw new Error(
|
||||
`Architecture '${runnerArch}' is unsupported by build-wrapper`
|
||||
);
|
||||
}
|
||||
|
||||
switch (runnerOS) {
|
||||
case "Windows":
|
||||
return {
|
||||
buildWrapperSuffix: "win-x86",
|
||||
buildWrapperName: "build-wrapper-win-x86-64.exe",
|
||||
};
|
||||
|
||||
case "Linux":
|
||||
switch (runnerArch) {
|
||||
case "X64":
|
||||
return {
|
||||
buildWrapperSuffix: "linux-x86",
|
||||
buildWrapperName: "build-wrapper-linux-x86-64",
|
||||
};
|
||||
|
||||
case "ARM64":
|
||||
return {
|
||||
buildWrapperSuffix: "linux-aarch64",
|
||||
buildWrapperName: "build-wrapper-linux-aarch64",
|
||||
};
|
||||
}
|
||||
break; // handled before the switch
|
||||
|
||||
case "macOS":
|
||||
return {
|
||||
buildWrapperSuffix: "macosx-x86",
|
||||
buildWrapperName: "build-wrapper-macosx-x86",
|
||||
};
|
||||
|
||||
default:
|
||||
throw new Error(`Unsupported runner OS '${runnerOS}'`);
|
||||
}
|
||||
}
|
||||
|
||||
export async function getRealPath(filePath, runnerOS) {
|
||||
switch (runnerOS) {
|
||||
case "Windows": {
|
||||
const windowsResult = await exec.getExecOutput("cygpath", [
|
||||
"--absolute",
|
||||
"--windows",
|
||||
filePath,
|
||||
]);
|
||||
return windowsResult.stdout.trim();
|
||||
}
|
||||
case "Linux": {
|
||||
const linuxResult = await exec.getExecOutput("readlink", [
|
||||
"-f",
|
||||
filePath,
|
||||
]);
|
||||
return linuxResult.stdout.trim();
|
||||
}
|
||||
case "macOS": {
|
||||
const macResult = await exec.getExecOutput("greadlink", ["-f", filePath]);
|
||||
return macResult.stdout.trim();
|
||||
}
|
||||
default:
|
||||
return path.resolve(filePath);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user