From 138f9d14ff3f9450f9a5e1500f0cb874ba9052f3 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 9 May 2023 15:56:24 -0400 Subject: [PATCH] chore: Only download binaries for the current platform by default - Set the DOWNLOAD_ALL_ARCHITECTURES env var to "true" to download for both platforms Signed-off-by: Sebastian Malton --- packages/ensure-binaries/src/index.ts | 75 ++++++++++++++++----------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/packages/ensure-binaries/src/index.ts b/packages/ensure-binaries/src/index.ts index 06f0a9cfa0..1114d178cc 100644 --- a/packages/ensure-binaries/src/index.ts +++ b/packages/ensure-binaries/src/index.ts @@ -17,6 +17,7 @@ import gunzip from "gunzip-maybe"; import fetch from "node-fetch" import z from "zod"; import arg from "arg"; +import { arch } from "process"; const options = arg({ "--package": String, @@ -245,56 +246,70 @@ const multiBar = new MultiBar({ noTTYOutput: true, format: "[{bar}] {percentage}% | {downloadArch} {binaryName}", }); -const downloaders: BinaryDownloader[] = [ - new LensK8sProxyDownloader({ - version: packageInfo.config.k8sProxyVersion, - platform: normalizedPlatform, - downloadArch: "amd64", - fileArch: "x64", - baseDir: pathToBaseDir, - }, multiBar), - new KubectlDownloader({ - version: packageInfo.config.bundledKubectlVersion, - platform: normalizedPlatform, - downloadArch: "amd64", - fileArch: "x64", - baseDir: pathToBaseDir, - }, multiBar), - new HelmDownloader({ - version: packageInfo.config.bundledHelmVersion, - platform: normalizedPlatform, - downloadArch: "amd64", - fileArch: "x64", - baseDir: pathToBaseDir, - }, multiBar), -]; -if (normalizedPlatform !== "windows") { +const downloaders: BinaryDownloader[] = []; + +const downloadX64Binaries = () => { downloaders.push( new LensK8sProxyDownloader({ version: packageInfo.config.k8sProxyVersion, platform: normalizedPlatform, - downloadArch: "arm64", - fileArch: "arm64", + downloadArch: "amd64", + fileArch: "x64", baseDir: pathToBaseDir, }, multiBar), new KubectlDownloader({ version: packageInfo.config.bundledKubectlVersion, platform: normalizedPlatform, - downloadArch: "arm64", - fileArch: "arm64", + downloadArch: "amd64", + fileArch: "x64", baseDir: pathToBaseDir, }, multiBar), new HelmDownloader({ version: packageInfo.config.bundledHelmVersion, platform: normalizedPlatform, - downloadArch: "arm64", - fileArch: "arm64", + downloadArch: "amd64", + fileArch: "x64", baseDir: pathToBaseDir, }, multiBar), ); } +const downloadAmd64Binaries = () => { + downloaders.push( + new LensK8sProxyDownloader({ + version: packageInfo.config.k8sProxyVersion, + platform: normalizedPlatform, + downloadArch: "amd64", + fileArch: "amd64", + baseDir: pathToBaseDir, + }, multiBar), + new KubectlDownloader({ + version: packageInfo.config.bundledKubectlVersion, + platform: normalizedPlatform, + downloadArch: "amd64", + fileArch: "amd64", + baseDir: pathToBaseDir, + }, multiBar), + new HelmDownloader({ + version: packageInfo.config.bundledHelmVersion, + platform: normalizedPlatform, + downloadArch: "amd64", + fileArch: "amd64", + baseDir: pathToBaseDir, + }, multiBar), + ); +} + +if (process.env.DOWNLOAD_ALL_ARCHITECTURES === "true") { + downloadX64Binaries(); + downloadAmd64Binaries(); +} else if (arch === "x64") { + downloadX64Binaries(); +} else if (arch === "arm64") { + downloadAmd64Binaries(); +} + const settledResults = await Promise.allSettled(downloaders.map(downloader => ( downloader.ensureBinary() .catch(error => {