From 363e4253a033d02696eec77b4a24d350d7ecf803 Mon Sep 17 00:00:00 2001 From: Asa Gayle Date: Fri, 21 Jan 2022 17:07:38 -0500 Subject: [PATCH] Pushing recent changes before computer reset --- __tests__/run.test.ts | 20 ++++++++++++++------ lib/run.js | 9 ++++++--- src/run.ts | 9 +++++---- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/__tests__/run.test.ts b/__tests__/run.test.ts index 324d4d2..b2ed76b 100644 --- a/__tests__/run.test.ts +++ b/__tests__/run.test.ts @@ -22,28 +22,36 @@ describe('run.ts', () => { test('getHelmDownloadURL() - return the URL to download helm for Linux', () => { jest.spyOn(os, 'type').mockReturnValue('Linux'); - const kubectlLinuxUrl = 'https://get.helm.sh/helm-v3.2.1-linux-amd64.zip' + const kubectlLinuxUrl = 'https://get.helm.sh/helm-v3.7.2-linux-amd64.zip' - expect(run.getHelmDownloadURL('v3.2.1')).toBe(kubectlLinuxUrl); + expect(run.getHelmDownloadURL('v3.7.2')).toBe(kubectlLinuxUrl); expect(os.type).toBeCalled(); }); test('getHelmDownloadURL() - return the URL to download helm for Darwin', () => { jest.spyOn(os, 'type').mockReturnValue('Darwin'); - const kubectlDarwinUrl = 'https://get.helm.sh/helm-v3.2.1-darwin-amd64.zip' + const kubectlDarwinUrl = 'https://get.helm.sh/helm-v3.7.2-darwin-amd64.zip' - expect(run.getHelmDownloadURL('v3.2.1')).toBe(kubectlDarwinUrl); + expect(run.getHelmDownloadURL('v3.7.2')).toBe(kubectlDarwinUrl); expect(os.type).toBeCalled(); }); test('getHelmDownloadURL() - return the URL to download helm for Windows', () => { jest.spyOn(os, 'type').mockReturnValue('Windows_NT'); - const kubectlWindowsUrl = 'https://get.helm.sh/helm-v3.2.1-windows-amd64.zip' - expect(run.getHelmDownloadURL('v3.2.1')).toBe(kubectlWindowsUrl); + const kubectlWindowsUrl = 'https://get.helm.sh/helm-v3.7.2-windows-amd64.zip' + expect(run.getHelmDownloadURL('v3.7.2')).toBe(kubectlWindowsUrl); expect(os.type).toBeCalled(); }); + test('getLatestHelmVersion() - return the latest version of HELM', async () => { + try{ + expect(run.getLatestHelmVersion()).toBe("v3.7.2"); + } catch (e){ + return e; + } + }); + test('getStableHelmVersion() - download stable version file, read version and return it', async () => { jest.spyOn(toolCache, 'downloadTool').mockResolvedValue('pathToTool'); const response = JSON.stringify( diff --git a/lib/run.js b/lib/run.js index e2554b2..e4de9b2 100644 --- a/lib/run.js +++ b/lib/run.js @@ -12,7 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.run = exports.findHelm = exports.downloadHelm = exports.walkSync = exports.getStableHelmVersion = exports.getHelmDownloadURL = exports.getExecutableExtension = void 0; +exports.run = exports.findHelm = exports.getLatestHelmVersion = exports.downloadHelm = exports.walkSync = exports.getStableHelmVersion = exports.getHelmDownloadURL = exports.getExecutableExtension = void 0; const os = require("os"); const path = require("path"); const util = require("util"); @@ -116,7 +116,8 @@ exports.downloadHelm = downloadHelm; // getLatestHelmVersion uses cURL and regex to scrape the latest version function getLatestHelmVersion() { return __awaiter(this, void 0, void 0, function* () { - const command = `curl -Ls ${helmAllReleasesUrl} | grep 'v3.[0-9]*.[0-9]*' | sed -E 's/ .*\/helm\/helm\/releases\/tag\/tag\/(v[0-9\.]+)".*/\\1/g' | head -1 | sed -E 's/.*tag\///' | sed -E 's/".*//'`; + console.log("Test"); + const command = `curl -Ls https://api.github.com/repos/helm/helm/releases | grep 'v3.[0-9]*.[0-9]*' | sed -E 's/ .*\/helm\/helm\/releases\/tag\/tag\/(v[0-9\.]+)".*/\\1/g' | head -1 | sed -E 's/.*tag\///' | sed -E 's/".*//'`; let latestHelm = ""; let latestHelmErr = ""; const options = {}; @@ -129,11 +130,13 @@ function getLatestHelmVersion() { } }; yield exec.exec(command, [], options); - if (latestHelmErr !== "" || isValidVersion(latestHelm)) + console.log("latestHelm"); + if (latestHelmErr !== "" || !isValidVersion(latestHelm)) return getStableHelmVersion(); return latestHelm; }); } +exports.getLatestHelmVersion = getLatestHelmVersion; // isValidVersion checks if verison matches the specified type and is a stable release function isValidVersion(version) { return version.indexOf('rc') == -1; diff --git a/src/run.ts b/src/run.ts index 8651a99..7b15df7 100644 --- a/src/run.ts +++ b/src/run.ts @@ -106,8 +106,9 @@ export async function downloadHelm(version: string): Promise { } // getLatestHelmVersion uses cURL and regex to scrape the latest version -async function getLatestHelmVersion(): Promise{ - const command:string = `curl -Ls ${helmAllReleasesUrl} | grep 'v3.[0-9]*.[0-9]*' | sed -E 's/ .*\/helm\/helm\/releases\/tag\/tag\/(v[0-9\.]+)".*/\\1/g' | head -1 | sed -E 's/.*tag\///' | sed -E 's/".*//'`; +export async function getLatestHelmVersion(): Promise{ + console.log("Test"); + const command:string = `curl -Ls https://api.github.com/repos/helm/helm/releases | grep 'v3.[0-9]*.[0-9]*' | sed -E 's/ .*\/helm\/helm\/releases\/tag\/tag\/(v[0-9\.]+)".*/\\1/g' | head -1 | sed -E 's/.*tag\///' | sed -E 's/".*//'`; let latestHelm: string = ""; let latestHelmErr: string = ""; @@ -123,8 +124,8 @@ async function getLatestHelmVersion(): Promise{ }; await exec.exec(command, [], options); - - if(latestHelmErr !== "" || isValidVersion(latestHelm)) return getStableHelmVersion(); + console.log("latestHelm") + if(latestHelmErr !== "" || !isValidVersion(latestHelm)) return getStableHelmVersion(); return latestHelm; }