mirror of
https://github.com/Azure/setup-helm.git
synced 2025-07-15 10:10:42 +00:00
Compare commits
31 Commits
Author | SHA1 | Date | |
---|---|---|---|
0147554077 | |||
4eee2cd0ed | |||
8527f3ee39 | |||
c9a6a97d7f | |||
027e8cdfd7 | |||
df342a2656 | |||
230641be01 | |||
f57bbf1821 | |||
5b950139b7 | |||
28f285563b | |||
d030d7f717 | |||
05502a08f2 | |||
24eca957cf | |||
56195efbb1 | |||
babfb8676f | |||
c757a812df | |||
d5f1fcb584 | |||
cc690771a5 | |||
c4cd5ccdf7 | |||
740f020522 | |||
5976fc8a1b | |||
0e8654bb94 | |||
b48e1dfac1 | |||
855ae7a03c | |||
124c6d88e7 | |||
048f4e7eae | |||
8618769467 | |||
4eb898eef0 | |||
7a2001c0f6 | |||
e90c86ceea | |||
4675ea6b05 |
18
.github/dependabot.yml
vendored
Normal file
18
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
groups:
|
||||
actions:
|
||||
patterns:
|
||||
- '*'
|
||||
- package-ecosystem: github-actions
|
||||
directory: .github/workflows
|
||||
schedule:
|
||||
interval: weekly
|
||||
groups:
|
||||
actions:
|
||||
patterns:
|
||||
- '*'
|
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:
|
||||
- uses: actions/stale@v9
|
||||
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 #v9.1.0
|
||||
name: Setting issue as idle
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@ -24,7 +24,7 @@ jobs:
|
||||
operations-per-run: 100
|
||||
exempt-issue-labels: 'backlog'
|
||||
|
||||
- uses: actions/stale@v9
|
||||
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 #v9.1.0
|
||||
name: Setting PR as idle
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
2
.github/workflows/integration-tests.yml
vendored
2
.github/workflows/integration-tests.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
||||
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: npm install and build
|
||||
id: action-npm-build
|
||||
run: |
|
||||
|
6
.github/workflows/prettify-code.yml
vendored
6
.github/workflows/prettify-code.yml
vendored
@ -10,9 +10,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Enforce Prettier
|
||||
uses: actionsx/prettier@v3
|
||||
with:
|
||||
args: --check .
|
||||
run: npx prettier --check .
|
||||
|
2
.github/workflows/release-pr.yml
vendored
2
.github/workflows/release-pr.yml
vendored
@ -13,6 +13,6 @@ jobs:
|
||||
permissions:
|
||||
actions: read
|
||||
contents: write
|
||||
uses: Azure/action-release-workflows/.github/workflows/release_js_project.yaml@v1
|
||||
uses: Azure/action-release-workflows/.github/workflows/release_js_project.yaml@3c677ba5ab58f5c5c1a6f0cfb176b333b1f27405 # v1.0.3
|
||||
with:
|
||||
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:
|
||||
tag-and-release:
|
||||
uses: OliverMKing/javascript-release-workflow/.github/workflows/tag-and-release.yml@main
|
||||
uses: OliverMKing/javascript-release-workflow/.github/workflows/tag-and-release.yml@c753e1545b144562237cd1177a95bab21a785cff # main
|
||||
|
2
.github/workflows/unit-tests.yml
vendored
2
.github/workflows/unit-tests.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
||||
build: # make sure build/ci works properly
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Run L0 tests.
|
||||
run: |
|
||||
|
7
.husky/pre-commit
Normal file
7
.husky/pre-commit
Normal file
@ -0,0 +1,7 @@
|
||||
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
|
||||
}
|
@ -1,5 +1,11 @@
|
||||
# Change Log
|
||||
|
||||
## [4.3.0] - 2025-02-15
|
||||
|
||||
- #152 feat: log when restoring from cache
|
||||
- #157 Dependencies Update
|
||||
- #137 Add dependabot
|
||||
|
||||
## [4.2.0] - 2024-04-15
|
||||
|
||||
- #124 Fix OS detection and download OS-native archive extension
|
||||
|
@ -7,7 +7,7 @@ Install a specific version of helm binary on the runner.
|
||||
Acceptable values are latest or any semantic version string like v3.5.0 Use this action in workflow to define which version of helm will be used. v2+ of this action only support Helm3.
|
||||
|
||||
```yaml
|
||||
- uses: azure/setup-helm@v4.2.0
|
||||
- uses: azure/setup-helm@v4.3.0
|
||||
with:
|
||||
version: '<version>' # default is latest (stable)
|
||||
id: install
|
||||
|
3360
package-lock.json
generated
3360
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@ -1,34 +1,36 @@
|
||||
{
|
||||
"name": "setuphelm",
|
||||
"version": "4.2.0",
|
||||
"version": "4.3.0",
|
||||
"private": true,
|
||||
"description": "Setup helm",
|
||||
"author": "Anumita Shenoy",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.0",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/io": "^1.1.2",
|
||||
"@actions/tool-cache": "2.0.1",
|
||||
"@octokit/action": "^6.0.7",
|
||||
"semver": "^7.5.4"
|
||||
"@actions/tool-cache": "2.0.2",
|
||||
"@octokit/action": "^8.0.2",
|
||||
"semver": "^7.7.2"
|
||||
},
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
"prebuild": "npm i ncc",
|
||||
"build": "ncc build src/run.ts -o lib",
|
||||
"build": "ncc build src/index.ts -o lib",
|
||||
"test": "jest",
|
||||
"test-coverage": "jest --coverage",
|
||||
"format": "prettier --write .",
|
||||
"format-check": "prettier --check ."
|
||||
"format-check": "prettier --check .",
|
||||
"prepare": "husky"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.5.11",
|
||||
"@types/node": "^20.11.8",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"jest": "^29.7.0",
|
||||
"prettier": "^3.2.5",
|
||||
"ts-jest": "^29.1.2",
|
||||
"typescript": "^5.3.3"
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/node": "^24.0.10",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"husky": "^9.1.7",
|
||||
"jest": "^30.0.4",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.4.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
4
src/index.ts
Normal file
4
src/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
import {run} from './run'
|
||||
import * as core from '@actions/core'
|
||||
|
||||
run().catch(core.setFailed)
|
@ -99,20 +99,20 @@ describe('run.ts', () => {
|
||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
||||
if (file == 'mainFolder')
|
||||
return [
|
||||
'file1' as unknown as fs.Dirent,
|
||||
'file2' as unknown as fs.Dirent,
|
||||
'folder1' as unknown as fs.Dirent,
|
||||
'folder2' as unknown as fs.Dirent
|
||||
'file1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'file2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'folder1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'folder2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
]
|
||||
if (file == path.join('mainFolder', 'folder1'))
|
||||
return [
|
||||
'file11' as unknown as fs.Dirent,
|
||||
'file12' as unknown as fs.Dirent
|
||||
'file11' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'file12' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
]
|
||||
if (file == path.join('mainFolder', 'folder2'))
|
||||
return [
|
||||
'file21' as unknown as fs.Dirent,
|
||||
'file22' as unknown as fs.Dirent
|
||||
'file21' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'file22' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
]
|
||||
return []
|
||||
})
|
||||
@ -134,20 +134,20 @@ describe('run.ts', () => {
|
||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
||||
if (file == 'mainFolder')
|
||||
return [
|
||||
'file1' as unknown as fs.Dirent,
|
||||
'file2' as unknown as fs.Dirent,
|
||||
'folder1' as unknown as fs.Dirent,
|
||||
'folder2' as unknown as fs.Dirent
|
||||
'file1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'file2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'folder1' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'folder2' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
]
|
||||
if (file == path.join('mainFolder', 'folder1'))
|
||||
return [
|
||||
'file11' as unknown as fs.Dirent,
|
||||
'file12' as unknown as fs.Dirent
|
||||
'file11' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'file12' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
]
|
||||
if (file == path.join('mainFolder', 'folder2'))
|
||||
return [
|
||||
'file21' as unknown as fs.Dirent,
|
||||
'file22' as unknown as fs.Dirent
|
||||
'file21' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>,
|
||||
'file22' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
]
|
||||
return []
|
||||
})
|
||||
@ -166,7 +166,8 @@ describe('run.ts', () => {
|
||||
test('findHelm() - change access permissions and find the helm in given directory', () => {
|
||||
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
||||
jest.spyOn(fs, 'readdirSync').mockImplementation((file, _) => {
|
||||
if (file == 'mainFolder') return ['helm.exe' as unknown as fs.Dirent]
|
||||
if (file == 'mainFolder')
|
||||
return ['helm.exe' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>]
|
||||
return []
|
||||
})
|
||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||
@ -208,7 +209,9 @@ describe('run.ts', () => {
|
||||
jest.spyOn(toolCache, 'cacheDir').mockResolvedValue('pathToCachedDir')
|
||||
jest
|
||||
.spyOn(fs, 'readdirSync')
|
||||
.mockImplementation((file, _) => ['helm.exe' as unknown as fs.Dirent])
|
||||
.mockImplementation((file, _) => [
|
||||
'helm.exe' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
])
|
||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||
const isDirectory =
|
||||
(file as string).indexOf('folder') == -1 ? false : true
|
||||
@ -254,7 +257,9 @@ describe('run.ts', () => {
|
||||
jest.spyOn(fs, 'chmodSync').mockImplementation(() => {})
|
||||
jest
|
||||
.spyOn(fs, 'readdirSync')
|
||||
.mockReturnValue(['helm.exe' as unknown as fs.Dirent])
|
||||
.mockReturnValue([
|
||||
'helm.exe' as unknown as fs.Dirent<Buffer<ArrayBufferLike>>
|
||||
])
|
||||
jest.spyOn(fs, 'statSync').mockImplementation((file) => {
|
||||
const isDirectory =
|
||||
(file as string).indexOf('folder') == -1 ? false : true
|
||||
|
10
src/run.ts
10
src/run.ts
@ -1,5 +1,4 @@
|
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
import * as os from 'os'
|
||||
@ -26,7 +25,7 @@ export async function run() {
|
||||
|
||||
const downloadBaseURL = core.getInput('downloadBaseURL', {required: false})
|
||||
|
||||
core.startGroup(`Downloading ${version}`)
|
||||
core.startGroup(`Installing ${version}`)
|
||||
const cachedPath = await downloadHelm(downloadBaseURL, version)
|
||||
core.endGroup()
|
||||
|
||||
@ -88,7 +87,10 @@ export async function downloadHelm(
|
||||
version: string
|
||||
): Promise<string> {
|
||||
let cachedToolpath = toolCache.find(helmToolName, version)
|
||||
if (!cachedToolpath) {
|
||||
if (cachedToolpath) {
|
||||
core.info(`Restoring '${version}' from cache`)
|
||||
} else {
|
||||
core.info(`Downloading '${version}' from '${baseURL}'`)
|
||||
let helmDownloadPath
|
||||
try {
|
||||
helmDownloadPath = await toolCache.downloadTool(
|
||||
@ -155,5 +157,3 @@ export var walkSync = function (dir, filelist, fileToFind) {
|
||||
})
|
||||
return filelist
|
||||
}
|
||||
|
||||
run().catch(core.setFailed)
|
||||
|
Reference in New Issue
Block a user