@@ -29844,6 +29844,92 @@ function requireToolCache () {
2984429844
2984529845var toolCacheExports = requireToolCache();
2984629846
29847+ const platformFlavor = {
29848+   linux: {
29849+     x64: "linux-x64",
29850+     arm64: "linux-aarch64",
29851+   },
29852+   win32: {
29853+     x64: "windows-x64",
29854+   },
29855+   darwin: {
29856+     x64: "macosx-x64",
29857+     arm64: "macosx-aarch64",
29858+   },
29859+ };
29860+ 
29861+ function getPlatformFlavor(platform, arch) {
29862+   const flavor = platformFlavor[platform]?.[arch];
29863+ 
29864+   if (!flavor) {
29865+     throw new Error(`Platform ${platform} ${arch} not supported`);
29866+   }
29867+ 
29868+   return flavor;
29869+ }
29870+ 
29871+ function getScannerDownloadURL({
29872+   scannerBinariesUrl,
29873+   scannerVersion,
29874+   flavor,
29875+ }) {
29876+   const trimURL = scannerBinariesUrl.replace(/\/$/, "");
29877+   return `${trimURL}/sonar-scanner-cli-${scannerVersion}-${flavor}.zip`;
29878+ }
29879+ 
29880+ const scannerDirName = (version, flavor) =>
29881+   `sonar-scanner-${version}-${flavor}`;
29882+ 
29883+ const TOOLNAME = "sonar-scanner-cli";
29884+ 
29885+ /**
29886+  * Download the Sonar Scanner CLI for the current environment and cache it.
29887+  */
29888+ async function installSonarScanner({
29889+   scannerVersion,
29890+   scannerBinariesUrl,
29891+ }) {
29892+   const flavor = getPlatformFlavor(require$$0.platform(), require$$0.arch());
29893+ 
29894+   // Check if tool is already cached
29895+   let toolDir = toolCacheExports.find(TOOLNAME, scannerVersion, flavor);
29896+ 
29897+   if (!toolDir) {
29898+     console.log(
29899+       `Installing Sonar Scanner CLI ${scannerVersion} for ${flavor}...`
29900+     );
29901+ 
29902+     const downloadUrl = getScannerDownloadURL({
29903+       scannerBinariesUrl,
29904+       scannerVersion,
29905+       flavor,
29906+     });
29907+ 
29908+     console.log(`Downloading from: ${downloadUrl}`);
29909+ 
29910+     const downloadPath = await toolCacheExports.downloadTool(downloadUrl);
29911+     const extractedPath = await toolCacheExports.extractZip(downloadPath);
29912+ 
29913+     // Find the actual scanner directory inside the extracted folder
29914+     const scannerPath = path.join(
29915+       extractedPath,
29916+       scannerDirName(scannerVersion, flavor)
29917+     );
29918+ 
29919+     toolDir = await toolCacheExports.cacheDir(scannerPath, TOOLNAME, scannerVersion, flavor);
29920+ 
29921+     console.log(`Sonar Scanner CLI cached to: ${toolDir}`);
29922+   } else {
29923+     console.log(`Using cached Sonar Scanner CLI from: ${toolDir}`);
29924+   }
29925+ 
29926+   // Add the bin directory to PATH
29927+   const binDir = path.join(toolDir, "bin");
29928+   coreExports.addPath(binDir);
29929+ 
29930+   return toolDir;
29931+ }
29932+ 
2984729933var execExports = requireExec();
2984829934
2984929935function parseArgsStringToArgv(value, env, file) {
@@ -30029,8 +30115,8 @@ function validateScannerVersion(version) {
3002930115  }
3003030116}
3003130117
30032- function checkSonarToken(core) {
30033-   if (!process.env.SONAR_TOKEN)  {
30118+ function checkSonarToken(core, sonarToken ) {
30119+   {
3003430120    core.warning(
3003530121      "Running this GitHub Action without SONAR_TOKEN is not recommended"
3003630122    );
@@ -30058,44 +30144,6 @@ function checkGradleProject(core, projectBaseDir) {
3005830144  }
3005930145}
3006030146
30061- const platformFlavor = {
30062-   linux: {
30063-     x64: "linux-x64",
30064-     arm64: "linux-aarch64",
30065-   },
30066-   win32: {
30067-     x64: "windows-x64",
30068-   },
30069-   darwin: {
30070-     x64: "macosx-x64",
30071-     arm64: "macosx-aarch64",
30072-   },
30073- };
30074- 
30075- function getPlatformFlavor(platform, arch) {
30076-   const flavor = platformFlavor[platform]?.[arch];
30077- 
30078-   if (!flavor) {
30079-     throw new Error(`Platform ${platform} ${arch} not supported`);
30080-   }
30081- 
30082-   return flavor;
30083- }
30084- 
30085- function getScannerDownloadURL({
30086-   scannerBinariesUrl,
30087-   scannerVersion,
30088-   flavor,
30089- }) {
30090-   const trimURL = scannerBinariesUrl.replace(/\/$/, "");
30091-   return `${trimURL}/sonar-scanner-cli-${scannerVersion}-${flavor}.zip`;
30092- }
30093- 
30094- const scannerDirName = (version, flavor) =>
30095-   `sonar-scanner-${version}-${flavor}`;
30096- 
30097- const TOOLNAME = "sonar-scanner-cli";
30098- 
3009930147/**
3010030148 * Inputs are defined in action.yml
3010130149 */
@@ -30108,13 +30156,20 @@ function getInputs() {
3010830156  return { args, projectBaseDir, scannerBinariesUrl, scannerVersion };
3010930157}
3011030158
30111- function getRunnerEnv() {
30159+ /**
30160+  * These RUNNER env variables come from GitHub by default.
30161+  * See https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables
30162+  *
30163+  * The others are optional env variables provided by the user of the action
30164+  */
30165+ function getEnvVariables() {
3011230166  return {
30113-     RUNNER_OS: process.env.RUNNER_OS,
30114-     SONARCLOUD_URL: process.env.SONARCLOUD_URL,
3011530167    RUNNER_DEBUG: process.env.RUNNER_DEBUG,
30116-     SONAR_ROOT_CERT : process.env.SONAR_ROOT_CERT ,
30168+     RUNNER_OS : process.env.RUNNER_OS ,
3011730169    RUNNER_TEMP: process.env.RUNNER_TEMP,
30170+     SONAR_ROOT_CERT: process.env.SONAR_ROOT_CERT,
30171+     SONARCLOUD_URL: process.env.SONARCLOUD_URL,
30172+     SONAR_TOKEN: process.env.SONAR_TOKEN,
3011830173  };
3011930174}
3012030175
@@ -30132,64 +30187,20 @@ function runSanityChecks(inputs) {
3013230187  }
3013330188}
3013430189
30135- async function installSonarScannerCLI({ scannerVersion, scannerBinariesUrl }) {
30136-   const flavor = getPlatformFlavor(require$$0.platform(), require$$0.arch());
30137- 
30138-   // Check if tool is already cached
30139-   let toolDir = toolCacheExports.find(TOOLNAME, scannerVersion, flavor);
30140- 
30141-   if (!toolDir) {
30142-     console.log(
30143-       `Installing Sonar Scanner CLI ${scannerVersion} for ${flavor}...`
30144-     );
30145- 
30146-     const downloadUrl = getScannerDownloadURL({
30147-       scannerBinariesUrl,
30148-       scannerVersion,
30149-       flavor,
30150-     });
30151- 
30152-     console.log(`Downloading from: ${downloadUrl}`);
30153- 
30154-     const downloadPath = await toolCacheExports.downloadTool(downloadUrl);
30155-     const extractedPath = await toolCacheExports.extractZip(downloadPath);
30156- 
30157-     // Find the actual scanner directory inside the extracted folder
30158-     const scannerPath = path.join(
30159-       extractedPath,
30160-       scannerDirName(scannerVersion, flavor)
30161-     );
30162- 
30163-     toolDir = await toolCacheExports.cacheDir(scannerPath, TOOLNAME, scannerVersion, flavor);
30164- 
30165-     console.log(`Sonar Scanner CLI cached to: ${toolDir}`);
30166-   } else {
30167-     console.log(`Using cached Sonar Scanner CLI from: ${toolDir}`);
30168-   }
30169- 
30170-   // Add the bin directory to PATH
30171-   const binDir = path.join(toolDir, "bin");
30172-   coreExports.addPath(binDir);
30173- 
30174-   return toolDir;
30175- }
30176- 
3017730190async function run() {
3017830191  try {
3017930192    const { args, projectBaseDir, scannerVersion, scannerBinariesUrl } =
3018030193      getInputs();
30194+     const runnerEnv = getEnvVariables();
30195+     const { sonarToken } = runnerEnv;
3018130196
30182-     // Run sanity checks first
30183-     runSanityChecks({ projectBaseDir, scannerVersion });
30197+     runSanityChecks({ projectBaseDir, scannerVersion, sonarToken });
3018430198
30185-     // Install Sonar Scanner CLI using @actions/tool-cache
30186-     const scannerDir = await installSonarScannerCLI({
30199+     const scannerDir = await installSonarScanner({
3018730200      scannerVersion,
3018830201      scannerBinariesUrl,
3018930202    });
3019030203
30191-     // Run the sonar scanner
30192-     const runnerEnv = getRunnerEnv();
3019330204    await runSonarScanner(args, projectBaseDir, scannerDir, runnerEnv);
3019430205  } catch (error) {
3019530206    coreExports.setFailed(`Action failed: ${error.message}`);
0 commit comments