diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index f33fdeef..a3b1b92f 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -11,7 +11,7 @@ jobs: env: HELM_3_8_0: "v3.8.0" HELM_3_7_2: "v3.7.2" - HELM_3_5_0: "v3.5.0" + HELM_NO_V: "3.5.0" PR_BASE_REF: ${{ github.event.pull_request.base.ref }} steps: - name: Check out repository @@ -50,13 +50,13 @@ jobs: else echo "HELM VERSION $HELM_3_7_2 INSTALLED SUCCESSFULLY" fi - - name: Setup helm 3.5.0 + - name: Setup helm 3.5.0 with no v in version uses: ./ with: - version: ${{ env.HELM_3_5_0 }} - - name: Validate 3.5.0 + version: ${{ env.HELM_NO_V }} + - name: Validate 3.5.0 without v in version run: | - if [[ $(helm version) != *$HELM_3_5_0* ]]; then + if [[ $(helm version) != *$HELM_NO_V* ]]; then echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN v3.5.0" echo "HELM VERSION OUTPUT: $(helm version)" exit 1 diff --git a/src/run.test.ts b/src/run.test.ts index d50930d7..0dcea785 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -60,6 +60,10 @@ describe("run.ts", () => { expect(os.arch).toBeCalled(); }); + test("getValidVersion() - return version with v prepended", () => { + expect(run.getValidVersion("3.8.0")).toBe("v3.8.0"); + }); + test("getHelmDownloadURL() - return the URL to download helm for Windows", () => { jest.spyOn(os, "type").mockReturnValue("Windows_NT"); diff --git a/src/run.ts b/src/run.ts index 1e58f01c..f59cb48e 100644 --- a/src/run.ts +++ b/src/run.ts @@ -17,6 +17,9 @@ const helmAllReleasesUrl = "https://api.github.com/repos/helm/helm/releases"; export async function run() { let version = core.getInput("version", { required: true }); + if(version !== "latest" && version[0] !== "v"){ + version = getValidVersion(version); + } if (version.toLocaleLowerCase() === "latest") { version = await getLatestHelmVersion(); } @@ -38,6 +41,11 @@ export async function run() { core.setOutput("helm-path", cachedPath); } +//Returns version with proper v before it +export function getValidVersion(version: string): string { + return "v" + version; +} + // Downloads the helm releases JSON and parses all the recent versions of helm from it. // Defaults to sending stable helm version if none are valid or if it fails