mirror of
https://github.com/Azure/setup-helm.git
synced 2025-12-21 23:05:47 +00:00
Compare commits
1 Commits
releases/v
...
v4.3.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9e51907a0 |
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@@ -1 +1 @@
|
|||||||
* @Azure/cloud-native-github-action-owners
|
* @Azure/aks-atlanta
|
||||||
|
|||||||
4
.github/workflows/defaultLabels.yml
vendored
4
.github/workflows/defaultLabels.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
|
|
||||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 #v9.1.0
|
- uses: actions/stale@v9
|
||||||
name: Setting issue as idle
|
name: Setting issue as idle
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -24,7 +24,7 @@ jobs:
|
|||||||
operations-per-run: 100
|
operations-per-run: 100
|
||||||
exempt-issue-labels: 'backlog'
|
exempt-issue-labels: 'backlog'
|
||||||
|
|
||||||
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 #v9.1.0
|
- uses: actions/stale@v9
|
||||||
name: Setting PR as idle
|
name: Setting PR as idle
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
51
.github/workflows/integration-tests.yml
vendored
51
.github/workflows/integration-tests.yml
vendored
@@ -7,23 +7,15 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
trigger-integration-tests:
|
trigger-integration-tests:
|
||||||
name: Trigger Integration tests
|
name: Trigger Integration tests
|
||||||
strategy:
|
runs-on: ubuntu-latest
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
- ubuntu-latest
|
|
||||||
- ubuntu-24.04-arm
|
|
||||||
- macos-latest # arm
|
|
||||||
- macos-13 # x64
|
|
||||||
fail-fast: false
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
env:
|
env:
|
||||||
HELM_3_18_4: 'v3.18.4'
|
HELM_3_8_0: 'v3.8.0'
|
||||||
HELM_3_18_0: 'v3.18.0'
|
HELM_3_7_2: 'v3.7.2'
|
||||||
HELM_NO_V: '3.18.4'
|
HELM_NO_V: '3.5.0'
|
||||||
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
|
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
|
||||||
steps:
|
steps:
|
||||||
- name: Check out repository
|
- name: Check out repository
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
- name: npm install and build
|
- name: npm install and build
|
||||||
id: action-npm-build
|
id: action-npm-build
|
||||||
run: |
|
run: |
|
||||||
@@ -35,41 +27,41 @@ jobs:
|
|||||||
- name: Setup helm
|
- name: Setup helm
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
version: ${{ env.HELM_3_18_4 }}
|
version: ${{ env.HELM_3_8_0 }}
|
||||||
- name: Validate helm 3.18.4
|
- name: Validate helm 3.8.0
|
||||||
run: |
|
run: |
|
||||||
if [[ $(helm version) != *$HELM_3_18_4* ]]; then
|
if [[ $(helm version) != *$HELM_3_8_0* ]]; then
|
||||||
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN v3.18.4"
|
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN v3.8.0"
|
||||||
echo "HELM VERSION OUTPUT: $(helm version)"
|
echo "HELM VERSION OUTPUT: $(helm version)"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "HELM VERSION $HELM_3_18_4 INSTALLED SUCCESSFULLY"
|
echo "HELM VERSION $HELM_3_8_0 INSTALLED SUCCESSFULLY"
|
||||||
fi
|
fi
|
||||||
- name: Setup helm 3.18.0
|
- name: Setup helm 3.7.2
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
version: ${{ env.HELM_3_18_0 }}
|
version: ${{ env.HELM_3_7_2 }}
|
||||||
- name: Validate 3.18.0
|
- name: Validate 3.7.2
|
||||||
run: |
|
run: |
|
||||||
if [[ $(helm version) != *$HELM_3_18_0* ]]; then
|
if [[ $(helm version) != *$HELM_3_7_2* ]]; then
|
||||||
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN v3.18.0"
|
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN v3.7.2"
|
||||||
echo "HELM VERSION OUTPUT: $(helm version)"
|
echo "HELM VERSION OUTPUT: $(helm version)"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "HELM VERSION $HELM_3_18_0 INSTALLED SUCCESSFULLY"
|
echo "HELM VERSION $HELM_3_7_2 INSTALLED SUCCESSFULLY"
|
||||||
fi
|
fi
|
||||||
- name: Setup helm 3.18.4 with no v in version
|
- name: Setup helm 3.5.0 with no v in version
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
version: ${{ env.HELM_NO_V }}
|
version: ${{ env.HELM_NO_V }}
|
||||||
- name: Validate 3.18.4 without v in version
|
- name: Validate 3.5.0 without v in version
|
||||||
run: |
|
run: |
|
||||||
if [[ $(helm version) != *$HELM_NO_V* ]]; then
|
if [[ $(helm version) != *$HELM_NO_V* ]]; then
|
||||||
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN 3.18.4"
|
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN v3.5.0"
|
||||||
echo "HELM VERSION OUTPUT: $(helm version)"
|
echo "HELM VERSION OUTPUT: $(helm version)"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "HELM VERSION $HELM_NO_V INSTALLED SUCCESSFULLY"
|
echo "HELM VERSION $HELM_3_5_0 INSTALLED SUCCESSFULLY"
|
||||||
fi
|
fi
|
||||||
- name: Setup helm latest version
|
- name: Setup helm latest version
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -84,8 +76,7 @@ jobs:
|
|||||||
--repo helm/helm \
|
--repo helm/helm \
|
||||||
--exclude-drafts \
|
--exclude-drafts \
|
||||||
--exclude-pre-releases \
|
--exclude-pre-releases \
|
||||||
--json name,isLatest \
|
--limit 1 | awk '{print $4}')
|
||||||
--jq '.[] | select(.isLatest)|.name' | awk '{print $2}')
|
|
||||||
|
|
||||||
if [[ $(helm version) != *$HELM_LATEST* ]]; then
|
if [[ $(helm version) != *$HELM_LATEST* ]]; then
|
||||||
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN $HELM_LATEST"
|
echo "HELM VERSION INCORRECT: HELM VERSION DOES NOT CONTAIN $HELM_LATEST"
|
||||||
|
|||||||
6
.github/workflows/prettify-code.yml
vendored
6
.github/workflows/prettify-code.yml
vendored
@@ -10,7 +10,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Enforce Prettier
|
- name: Enforce Prettier
|
||||||
run: npx prettier --check .
|
uses: actionsx/prettier@v3
|
||||||
|
with:
|
||||||
|
args: --check .
|
||||||
|
|||||||
2
.github/workflows/release-pr.yml
vendored
2
.github/workflows/release-pr.yml
vendored
@@ -13,6 +13,6 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
actions: read
|
actions: read
|
||||||
contents: write
|
contents: write
|
||||||
uses: Azure/action-release-workflows/.github/workflows/release_js_project.yaml@3c677ba5ab58f5c5c1a6f0cfb176b333b1f27405 # v1.0.3
|
uses: Azure/action-release-workflows/.github/workflows/release_js_project.yaml@v1
|
||||||
with:
|
with:
|
||||||
changelogPath: ./CHANGELOG.md
|
changelogPath: ./CHANGELOG.md
|
||||||
|
|||||||
2
.github/workflows/tag-and-draft.yml
vendored
2
.github/workflows/tag-and-draft.yml
vendored
@@ -7,4 +7,4 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tag-and-release:
|
tag-and-release:
|
||||||
uses: OliverMKing/javascript-release-workflow/.github/workflows/tag-and-release.yml@c753e1545b144562237cd1177a95bab21a785cff # main
|
uses: OliverMKing/javascript-release-workflow/.github/workflows/tag-and-release.yml@main
|
||||||
|
|||||||
14
.github/workflows/unit-tests.yml
vendored
14
.github/workflows/unit-tests.yml
vendored
@@ -11,19 +11,9 @@ on: # rebuild any PRs and main branch changes
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build: # make sure build/ci works properly
|
build: # make sure build/ci works properly
|
||||||
strategy:
|
runs-on: ubuntu-latest
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
- ubuntu-latest
|
|
||||||
- ubuntu-24.04-arm
|
|
||||||
- windows-latest
|
|
||||||
- windows-11-arm
|
|
||||||
- macos-latest # arm
|
|
||||||
- macos-13 # x64
|
|
||||||
fail-fast: false
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Run L0 tests.
|
- name: Run L0 tests.
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
npm test
|
|
||||||
npm run format-check || {
|
|
||||||
echo ""
|
|
||||||
echo "❌ Formatting check failed."
|
|
||||||
echo "💡 Run 'npm run format' or 'prettier --write .' to fix formatting issues."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
15
CHANGELOG.md
15
CHANGELOG.md
@@ -1,20 +1,5 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
## [4.3.1] - 2025-08-12
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- #167 [Pinning Action Dependencies for Security and Reliability](https://github.com/Azure/setup-helm/pull/167)
|
|
||||||
- #181 [Fix types, and update node version.](https://github.com/Azure/setup-helm/pull/181)
|
|
||||||
- #191 [chore(tests): Mock arch to make tests pass on arm host](https://github.com/Azure/setup-helm/pull/191)
|
|
||||||
- #192 [chore: remove unnecessary prebuild script](https://github.com/Azure/setup-helm/pull/192)
|
|
||||||
- #203 [Update helm version retrieval to use JSON output for latest version](https://github.com/Azure/setup-helm/pull/203)
|
|
||||||
- #207 [ci(workflows): update helm version to v3.18.4 and add matrix for tests](https://github.com/Azure/setup-helm/pull/207)
|
|
||||||
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- #197 [Add pre-commit hook](https://github.com/Azure/setup-helm/pull/197)
|
|
||||||
|
|
||||||
## [4.3.0] - 2025-02-15
|
## [4.3.0] - 2025-02-15
|
||||||
|
|
||||||
- #152 feat: log when restoring from cache
|
- #152 feat: log when restoring from cache
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Acceptable values are latest or any semantic version string like v3.5.0 Use this
|
|||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> If something goes wrong with fetching the latest version the action will use the hardcoded default version (currently v3.18.3). If you rely on a certain version higher than the default, you should explicitly use that version instead of latest.
|
> If something goes wrong with fetching the latest version the action will use the hardcoded default stable version (currently v3.13.3). If you rely on a certain version higher than the default, you should explicitly use that version instead of latest.
|
||||||
|
|
||||||
The cached helm binary path is prepended to the PATH environment variable as well as stored in the helm-path output variable.
|
The cached helm binary path is prepended to the PATH environment variable as well as stored in the helm-path output variable.
|
||||||
Refer to the action metadata file for details about all the inputs https://github.com/Azure/setup-helm/blob/master/action.yml
|
Refer to the action metadata file for details about all the inputs https://github.com/Azure/setup-helm/blob/master/action.yml
|
||||||
|
|||||||
26
lib/index.js
26
lib/index.js
@@ -14079,14 +14079,6 @@ const { isUint8Array, isArrayBuffer } = __nccwpck_require__(8253)
|
|||||||
const { File: UndiciFile } = __nccwpck_require__(3041)
|
const { File: UndiciFile } = __nccwpck_require__(3041)
|
||||||
const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(4322)
|
const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(4322)
|
||||||
|
|
||||||
let random
|
|
||||||
try {
|
|
||||||
const crypto = __nccwpck_require__(7598)
|
|
||||||
random = (max) => crypto.randomInt(0, max)
|
|
||||||
} catch {
|
|
||||||
random = (max) => Math.floor(Math.random(max))
|
|
||||||
}
|
|
||||||
|
|
||||||
let ReadableStream = globalThis.ReadableStream
|
let ReadableStream = globalThis.ReadableStream
|
||||||
|
|
||||||
/** @type {globalThis['File']} */
|
/** @type {globalThis['File']} */
|
||||||
@@ -14172,7 +14164,7 @@ function extractBody (object, keepalive = false) {
|
|||||||
// Set source to a copy of the bytes held by object.
|
// Set source to a copy of the bytes held by object.
|
||||||
source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))
|
source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))
|
||||||
} else if (util.isFormDataLike(object)) {
|
} else if (util.isFormDataLike(object)) {
|
||||||
const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`
|
const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}`
|
||||||
const prefix = `--${boundary}\r\nContent-Disposition: form-data`
|
const prefix = `--${boundary}\r\nContent-Disposition: form-data`
|
||||||
|
|
||||||
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */
|
/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */
|
||||||
@@ -28204,7 +28196,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.walkSync = exports.stableHelmVersion = void 0;
|
exports.walkSync = void 0;
|
||||||
exports.run = run;
|
exports.run = run;
|
||||||
exports.getValidVersion = getValidVersion;
|
exports.getValidVersion = getValidVersion;
|
||||||
exports.getLatestHelmVersion = getLatestHelmVersion;
|
exports.getLatestHelmVersion = getLatestHelmVersion;
|
||||||
@@ -28222,7 +28214,7 @@ const fs = __nccwpck_require__(9896);
|
|||||||
const toolCache = __nccwpck_require__(3472);
|
const toolCache = __nccwpck_require__(3472);
|
||||||
const core = __nccwpck_require__(7484);
|
const core = __nccwpck_require__(7484);
|
||||||
const helmToolName = 'helm';
|
const helmToolName = 'helm';
|
||||||
exports.stableHelmVersion = 'v3.18.4';
|
const stableHelmVersion = 'v3.13.3';
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let version = core.getInput('version', { required: true });
|
let version = core.getInput('version', { required: true });
|
||||||
@@ -28262,8 +28254,8 @@ function getLatestHelmVersion() {
|
|||||||
return release;
|
return release;
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
core.warning(`Error while fetching latest Helm release: ${err.toString()}. Using default version ${exports.stableHelmVersion}`);
|
core.warning(`Error while fetching latest Helm release: ${err.toString()}. Using default version ${stableHelmVersion}`);
|
||||||
return exports.stableHelmVersion;
|
return stableHelmVersion;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -28449,14 +28441,6 @@ module.exports = require("net");
|
|||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 7598:
|
|
||||||
/***/ ((module) => {
|
|
||||||
|
|
||||||
"use strict";
|
|
||||||
module.exports = require("node:crypto");
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 8474:
|
/***/ 8474:
|
||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
|
|||||||
3587
package-lock.json
generated
3587
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setuphelm",
|
"name": "setuphelm",
|
||||||
"version": "4.3.1",
|
"version": "4.3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Setup helm",
|
"description": "Setup helm",
|
||||||
"author": "Anumita Shenoy",
|
"author": "Anumita Shenoy",
|
||||||
@@ -10,26 +10,26 @@
|
|||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/io": "^1.1.2",
|
"@actions/io": "^1.1.2",
|
||||||
"@actions/tool-cache": "2.0.2",
|
"@actions/tool-cache": "2.0.2",
|
||||||
"@octokit/action": "^8.0.2",
|
"@octokit/action": "^7.0.0",
|
||||||
"semver": "^7.7.2"
|
"ncc": "^0.3.6",
|
||||||
|
"semver": "^7.7.1"
|
||||||
},
|
},
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"prebuild": "npm i ncc",
|
||||||
"build": "ncc build src/index.ts -o lib",
|
"build": "ncc build src/index.ts -o lib",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test-coverage": "jest --coverage",
|
"test-coverage": "jest --coverage",
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
"format-check": "prettier --check .",
|
"format-check": "prettier --check ."
|
||||||
"prepare": "husky"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^30.0.0",
|
"@types/jest": "^29.5.14",
|
||||||
"@types/node": "^24.2.1",
|
"@types/node": "^22.13.1",
|
||||||
"@vercel/ncc": "^0.38.3",
|
"@vercel/ncc": "^0.38.3",
|
||||||
"husky": "^9.1.7",
|
"jest": "^29.7.0",
|
||||||
"jest": "^30.0.5",
|
"prettier": "^3.5.0",
|
||||||
"prettier": "^3.6.2",
|
"ts-jest": "^29.2.5",
|
||||||
"ts-jest": "^29.4.1",
|
"typescript": "^5.7.3"
|
||||||
"typescript": "^5.9.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ describe('run.ts', () => {
|
|||||||
expect(os.arch).toHaveBeenCalled()
|
expect(os.arch).toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('getHelmDownloadURL() - return the URL to download helm for Windows x64', () => {
|
test('getHelmDownloadURL() - return the URL to download helm for Windows', () => {
|
||||||
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
||||||
jest.spyOn(os, 'arch').mockReturnValue('x64')
|
jest.spyOn(os, 'arch').mockReturnValue('x64')
|
||||||
|
|
||||||
@@ -76,15 +76,6 @@ describe('run.ts', () => {
|
|||||||
expect(os.platform).toHaveBeenCalled()
|
expect(os.platform).toHaveBeenCalled()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('getHelmDownloadURL() - return the URL to download helm for Windows arm64', () => {
|
|
||||||
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
|
||||||
jest.spyOn(os, 'arch').mockReturnValue('arm64')
|
|
||||||
|
|
||||||
const expected = 'https://test.tld/helm-v3.8.0-windows-arm64.zip'
|
|
||||||
expect(run.getHelmDownloadURL(downloadBaseURL, 'v3.8.0')).toBe(expected)
|
|
||||||
expect(os.platform).toHaveBeenCalled()
|
|
||||||
})
|
|
||||||
|
|
||||||
test('getLatestHelmVersion() - return the latest version of HELM', async () => {
|
test('getLatestHelmVersion() - return the latest version of HELM', async () => {
|
||||||
const res = {
|
const res = {
|
||||||
status: 200,
|
status: 200,
|
||||||
@@ -97,7 +88,7 @@ describe('run.ts', () => {
|
|||||||
test('getLatestHelmVersion() - return the stable version of HELM when simulating a network error', async () => {
|
test('getLatestHelmVersion() - return the stable version of HELM when simulating a network error', async () => {
|
||||||
const errorMessage: string = 'Network Error'
|
const errorMessage: string = 'Network Error'
|
||||||
global.fetch = jest.fn().mockRejectedValueOnce(new Error(errorMessage))
|
global.fetch = jest.fn().mockRejectedValueOnce(new Error(errorMessage))
|
||||||
expect(await run.getLatestHelmVersion()).toBe(run.stableHelmVersion)
|
expect(await run.getLatestHelmVersion()).toBe('v3.13.3')
|
||||||
})
|
})
|
||||||
|
|
||||||
test('getValidVersion() - return version with v prepended', () => {
|
test('getValidVersion() - return version with v prepended', () => {
|
||||||
@@ -108,20 +99,20 @@ describe('run.ts', () => {
|
|||||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
||||||
if (file == 'mainFolder')
|
if (file == 'mainFolder')
|
||||||
return [
|
return [
|
||||||
'file1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file1' as unknown as fs.Dirent,
|
||||||
'file2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file2' as unknown as fs.Dirent,
|
||||||
'folder1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'folder1' as unknown as fs.Dirent,
|
||||||
'folder2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
'folder2' as unknown as fs.Dirent
|
||||||
]
|
]
|
||||||
if (file == path.join('mainFolder', 'folder1'))
|
if (file == path.join('mainFolder', 'folder1'))
|
||||||
return [
|
return [
|
||||||
'file11' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file11' as unknown as fs.Dirent,
|
||||||
'file12' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
'file12' as unknown as fs.Dirent
|
||||||
]
|
]
|
||||||
if (file == path.join('mainFolder', 'folder2'))
|
if (file == path.join('mainFolder', 'folder2'))
|
||||||
return [
|
return [
|
||||||
'file21' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file21' as unknown as fs.Dirent,
|
||||||
'file22' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
'file22' as unknown as fs.Dirent
|
||||||
]
|
]
|
||||||
return []
|
return []
|
||||||
})
|
})
|
||||||
@@ -143,20 +134,20 @@ describe('run.ts', () => {
|
|||||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
||||||
if (file == 'mainFolder')
|
if (file == 'mainFolder')
|
||||||
return [
|
return [
|
||||||
'file1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file1' as unknown as fs.Dirent,
|
||||||
'file2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file2' as unknown as fs.Dirent,
|
||||||
'folder1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'folder1' as unknown as fs.Dirent,
|
||||||
'folder2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
'folder2' as unknown as fs.Dirent
|
||||||
]
|
]
|
||||||
if (file == path.join('mainFolder', 'folder1'))
|
if (file == path.join('mainFolder', 'folder1'))
|
||||||
return [
|
return [
|
||||||
'file11' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file11' as unknown as fs.Dirent,
|
||||||
'file12' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
'file12' as unknown as fs.Dirent
|
||||||
]
|
]
|
||||||
if (file == path.join('mainFolder', 'folder2'))
|
if (file == path.join('mainFolder', 'folder2'))
|
||||||
return [
|
return [
|
||||||
'file21' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
'file21' as unknown as fs.Dirent,
|
||||||
'file22' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
'file22' as unknown as fs.Dirent
|
||||||
]
|
]
|
||||||
return []
|
return []
|
||||||
})
|
})
|
||||||
@@ -175,8 +166,7 @@ describe('run.ts', () => {
|
|||||||
test('findHelm() - change access permissions and find the helm in given directory', () => {
|
test('findHelm() - change access permissions and find the helm in given directory', () => {
|
||||||
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
||||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
||||||
if (file == 'mainFolder')
|
if (file == 'mainFolder') return ['helm.exe' as unknown as fs.Dirent]
|
||||||
return ['helm.exe' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>]
|
|
||||||
return []
|
return []
|
||||||
})
|
})
|
||||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||||
@@ -213,15 +203,12 @@ describe('run.ts', () => {
|
|||||||
const response = JSON.stringify([{tag_name: 'v4.0.0'}])
|
const response = JSON.stringify([{tag_name: 'v4.0.0'}])
|
||||||
jest.spyOn(fs, 'readFileSync').mockReturnValue(response)
|
jest.spyOn(fs, 'readFileSync').mockReturnValue(response)
|
||||||
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
||||||
jest.spyOn(os, 'arch').mockReturnValue('x64')
|
|
||||||
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
||||||
jest.spyOn(toolCache, 'extractZip').mockResolvedValue('extractedPath')
|
jest.spyOn(toolCache, 'extractZip').mockResolvedValue('extractedPath')
|
||||||
jest.spyOn(toolCache, 'cacheDir').mockResolvedValue('pathToCachedDir')
|
jest.spyOn(toolCache, 'cacheDir').mockResolvedValue('pathToCachedDir')
|
||||||
jest
|
jest
|
||||||
.spyOn(fs, 'readdirSync')
|
.spyOn(fs, 'readdirSync')
|
||||||
.mockImplementation((file, _) => [
|
.mockImplementation((file, _) => ['helm.exe' as unknown as fs.Dirent])
|
||||||
'helm.exe' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
|
||||||
])
|
|
||||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||||
const isDirectory =
|
const isDirectory =
|
||||||
(file as string).indexOf('folder') == -1 ? false : true
|
(file as string).indexOf('folder') == -1 ? false : true
|
||||||
@@ -249,7 +236,6 @@ describe('run.ts', () => {
|
|||||||
throw 'Unable to download'
|
throw 'Unable to download'
|
||||||
})
|
})
|
||||||
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
||||||
jest.spyOn(os, 'arch').mockReturnValue('x64')
|
|
||||||
|
|
||||||
const downloadUrl = 'https://test.tld/helm-v3.2.1-windows-amd64.zip'
|
const downloadUrl = 'https://test.tld/helm-v3.2.1-windows-amd64.zip'
|
||||||
await expect(run.downloadHelm(downloadBaseURL, 'v3.2.1')).rejects.toThrow(
|
await expect(run.downloadHelm(downloadBaseURL, 'v3.2.1')).rejects.toThrow(
|
||||||
@@ -265,13 +251,10 @@ describe('run.ts', () => {
|
|||||||
jest.spyOn(toolCache, 'downloadTool').mockResolvedValue('pathToTool')
|
jest.spyOn(toolCache, 'downloadTool').mockResolvedValue('pathToTool')
|
||||||
jest.spyOn(toolCache, 'extractZip').mockResolvedValue('extractedPath')
|
jest.spyOn(toolCache, 'extractZip').mockResolvedValue('extractedPath')
|
||||||
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
||||||
jest.spyOn(os, 'arch').mockReturnValue('x64')
|
|
||||||
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
||||||
jest
|
jest
|
||||||
.spyOn(fs, 'readdirSync')
|
.spyOn(fs, 'readdirSync')
|
||||||
.mockReturnValue([
|
.mockReturnValue(['helm.exe' as unknown as fs.Dirent])
|
||||||
'helm.exe' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
|
||||||
])
|
|
||||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||||
const isDirectory =
|
const isDirectory =
|
||||||
(file as string).indexOf('folder') == -1 ? false : true
|
(file as string).indexOf('folder') == -1 ? false : true
|
||||||
@@ -295,7 +278,6 @@ describe('run.ts', () => {
|
|||||||
jest.spyOn(toolCache, 'downloadTool').mockResolvedValue('pathToTool')
|
jest.spyOn(toolCache, 'downloadTool').mockResolvedValue('pathToTool')
|
||||||
jest.spyOn(toolCache, 'extractZip').mockResolvedValue('extractedPath')
|
jest.spyOn(toolCache, 'extractZip').mockResolvedValue('extractedPath')
|
||||||
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
jest.spyOn(os, 'platform').mockReturnValue('win32')
|
||||||
jest.spyOn(os, 'arch').mockReturnValue('x64')
|
|
||||||
jest.spyOn(fs, 'chmodSync').mockImplementation()
|
jest.spyOn(fs, 'chmodSync').mockImplementation()
|
||||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => [])
|
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => [])
|
||||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import * as toolCache from '@actions/tool-cache'
|
|||||||
import * as core from '@actions/core'
|
import * as core from '@actions/core'
|
||||||
|
|
||||||
const helmToolName = 'helm'
|
const helmToolName = 'helm'
|
||||||
export const stableHelmVersion = 'v3.18.4'
|
const stableHelmVersion = 'v3.13.3'
|
||||||
|
|
||||||
export async function run() {
|
export async function run() {
|
||||||
let version = core.getInput('version', {required: true})
|
let version = core.getInput('version', {required: true})
|
||||||
|
|||||||
Reference in New Issue
Block a user