Feature Request: Add persistent cache support using actions/cache

Open
#223 1 comment 10 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
github-actions, helm, typescript
Domain
ci-cd, devops, tooling

Research direction

Start from the setup-helm action's installation flow and its use of /opt/hostedtoolcache/, then determine how the action currently defines inputs and dependencies. The work is done when @actions/cache restores and saves Helm installations with OS, architecture, and version-aware keys, and the chosen cache setting behaves consistently across workflow runs.

Written by the indexing model from the issue text.

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:

- 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.

Dominant language
TypeScript
Stars
191
Forks
79
Avg merge
17d 9h
Merged PRs (30d)
1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Azure/setup-helm

All issues in Azure/setup-helm

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.