diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index bf0315ad3e..f6bcf46dbc 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -60,7 +60,7 @@ jobs: - job: macOS pool: - vmImage: macOS-10.14 + vmImage: macOS-11 strategy: matrix: node_14.x: @@ -105,54 +105,6 @@ jobs: BUILD_NUMBER: $(Build.BuildNumber) displayName: Build - - job: macOS-arm64 - pool: - vmImage: macOS-10.14 - strategy: - matrix: - node_14.x: - node_version: 14.x - steps: - - script: CI_BUILD_TAG=`git describe --tags` && echo "##vso[task.setvariable variable=CI_BUILD_TAG]$CI_BUILD_TAG" - condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" - displayName: Set the tag name as an environment variable - - - task: NodeTool@0 - inputs: - versionSpec: $(node_version) - displayName: Install Node.js - - - task: Cache@2 - inputs: - key: 'yarn | "$(Agent.OS)" | yarn.lock' - restoreKeys: | - yarn | "$(Agent.OS)" - path: $(YARN_CACHE_FOLDER) - displayName: Cache Yarn packages - - - bash: | - set -e - git clone "https://${GH_TOKEN}@github.com/lensapp/lens-ide.git" .lens-ide-overlay - rm -rf .lens-ide-overlay/.git - cp -r .lens-ide-overlay/* ./ - jq -s '.[0] * .[1]' package.json package.ide.json > package.custom.json && mv package.custom.json package.json - env: - GH_TOKEN: $(LENS_IDE_GH_TOKEN) - displayName: Customize config - - - script: make build - condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" - env: - BINARY_ARCH: arm64 - APPLEID: $(APPLEID) - APPLEIDPASS: $(APPLEIDPASS) - CSC_LINK: $(CSC_LINK) - CSC_KEY_PASSWORD: $(CSC_KEY_PASSWORD) - AWS_ACCESS_KEY_ID: $(AWS_ACCESS_KEY_ID) - AWS_SECRET_ACCESS_KEY: $(AWS_SECRET_ACCESS_KEY) - BUILD_NUMBER: $(Build.BuildNumber) - displayName: Build - - job: Linux pool: vmImage: ubuntu-16.04 diff --git a/Makefile b/Makefile index 75f6f55fa0..b832da1117 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,6 @@ CMD_ARGS = $(filter-out $@,$(MAKECMDGOALS)) %: @: -BINARY_ARCH ?= x64 NPM_RELEASE_TAG ?= latest EXTENSIONS_DIR = ./extensions extensions = $(foreach dir, $(wildcard $(EXTENSIONS_DIR)/*), ${dir}) @@ -65,7 +64,7 @@ ifeq "$(DETECTED_OS)" "Windows" rm -rf node_modules/win-ca/pem yarn run electron-builder --publish onTag --x64 --ia32 else - yarn run electron-builder --publish onTag --$(BINARY_ARCH) + yarn run electron-builder --publish onTag --x64 --arm64 endif $(extension_node_modules): node_modules diff --git a/build/download_helm.ts b/build/download_helm.ts index 703684066b..6c606d06d5 100644 --- a/build/download_helm.ts +++ b/build/download_helm.ts @@ -18,6 +18,18 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -import { helmCli } from "../src/main/helm/helm-cli"; +import packageInfo from "../package.json"; +import { isWindows } from "../src/common/vars"; +import { HelmCli } from "../src/main/helm/helm-cli"; +import * as path from "path"; -helmCli.ensureBinary(); +const helmVersion = packageInfo.config.bundledHelmVersion; + +if (!isWindows) { + Promise.all([ + new HelmCli(path.join(process.cwd(), "binaries", "client", "x64"), helmVersion).ensureBinary(), + new HelmCli(path.join(process.cwd(), "binaries", "client", "arm64"), helmVersion).ensureBinary() + ]); +} else { + new HelmCli(path.join(process.cwd(), "binaries", "client", "x64"), helmVersion).ensureBinary(); +} diff --git a/build/download_kubectl.ts b/build/download_kubectl.ts index fefdb6ebb1..e87534d24f 100644 --- a/build/download_kubectl.ts +++ b/build/download_kubectl.ts @@ -118,17 +118,17 @@ class KubectlDownloader { } const downloadVersion = packageInfo.config.bundledKubectlVersion; const baseDir = path.join(__dirname, "..", "binaries", "client"); -const binaryArch = process.env.BINARY_ARCH || "amd64"; -const binaryTargetArch = binaryArch === "amd64" ? "x64" : "arm64"; const downloads = []; if (isMac) { - downloads.push({ platform: "darwin", arch: binaryArch, target: path.join(baseDir, "darwin", binaryTargetArch, "kubectl") }); + downloads.push({ platform: "darwin", arch: "amd64", target: path.join(baseDir, "darwin", "x64", "kubectl") }); + downloads.push({ platform: "darwin", arch: "arm64", target: path.join(baseDir, "darwin", "arm64", "kubectl") }); } else if (isLinux) { - downloads.push({ platform: "linux", arch: binaryArch, target: path.join(baseDir, "linux", binaryTargetArch, "kubectl") }); + downloads.push({ platform: "linux", arch: "amd64", target: path.join(baseDir, "linux", "x64", "kubectl") }); + downloads.push({ platform: "linux", arch: "arm64", target: path.join(baseDir, "linux", "arm64", "kubectl") }); } else { - downloads.push({ platform: "windows", arch: "amd64", target: path.join(baseDir, "windows", binaryTargetArch, "kubectl.exe") }); + downloads.push({ platform: "windows", arch: "amd64", target: path.join(baseDir, "windows", "x64", "kubectl.exe") }); downloads.push({ platform: "windows", arch: "386", target: path.join(baseDir, "windows", "ia32", "kubectl.exe") }); } diff --git a/package.json b/package.json index f016a896b3..bfae02639b 100644 --- a/package.json +++ b/package.json @@ -121,8 +121,8 @@ ], "extraResources": [ { - "from": "binaries/client/linux/x64/kubectl", - "to": "./x64/kubectl" + "from": "binaries/client/linux/${arch}/kubectl", + "to": "./${arch}/kubectl" }, { "from": "binaries/client/helm3/helm3", @@ -137,15 +137,11 @@ "entitlementsInherit": "build/entitlements.mac.plist", "extraResources": [ { - "from": "binaries/client/darwin/x64/kubectl", - "to": "./x64/kubectl" + "from": "binaries/client/darwin/${arch}/kubectl", + "to": "./${arch}/kubectl" }, { - "from": "binaries/client/darwin/arm64/kubectl", - "to": "./arm64/kubectl" - }, - { - "from": "binaries/client/helm3/helm3", + "from": "binaries/client/${arch}/helm3/helm3", "to": "./helm3/helm3" } ] diff --git a/src/main/helm/helm-cli.ts b/src/main/helm/helm-cli.ts index 72d4acba29..2ce575ee4e 100644 --- a/src/main/helm/helm-cli.ts +++ b/src/main/helm/helm-cli.ts @@ -58,7 +58,7 @@ const helmVersion = packageInfo.config.bundledHelmVersion; let baseDir = process.resourcesPath; if (!isProduction) { - baseDir = path.join(process.cwd(), "binaries", "client"); + baseDir = path.join(process.cwd(), "binaries", "client", process.arch); } export const helmCli = new HelmCli(baseDir, helmVersion);