Azure / Azure/setup-helm

Feature Request: Add persistent cache support using actions/cache

Open
#223 1 comment 10 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
191
Forks
79
Avg merge
17d 9h
Merged PRs (30d)
1

Description

### Feature request

The `setup-helm` action currently only uses the runner's local tool cache (`/opt/hostedtoolcache/`) which does not persist across different GitHub Actions runners. This means Helm is re-downloaded on every workflow run, even when using the same version.

Unlike other setup actions (e.g., `actions/setup-go`, `actions/setup-node`), the Helm installation is not visible in GitHub's cache dashboard and cannot be shared across workflow runs. This results in:

* Slower workflow runs due to repeated downloads
* Increased bandwidth usage
* Inconsistent behavior compared to other GitHub setup actions

Users can currently work around this by manually adding an `actions/cache` step before `setup-helm`, but this requires understanding the internal cache directory structure and adds boilerplate to every workflow.

### Solution

Integrate `@actions/cache` directly into the action to enable persistent caching across workflow runs. This would:

* Add `@actions/cache` as a dependency
* Restore the cache from GitHub's cache storage before checking the local tool cache
* Save the cache after successful Helm installation
* Make cached Helm installations visible in the repository's cache dashboard

This could be implemented as an opt-in or opt-out feature via a new input parameter:

```yaml
- uses: azure/setup-helm@v4
with:
version: 'v3.18.4'
cache: true # Enable persistent caching (could default to true)
```

The cache key should include the OS, architecture, and Helm version to ensure correct cache invalidation when any of these change.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.