Setup helmfile with Helm and kubectl in GitHub Actions workflow.
- This action works on Linux runner.
- The AWS version of kubectl will be installed.
- Following Helm plugins will be installed
- helm-diff
- helm-s3
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup helmfile
uses: mamezou-tech/setup-helmfile@v2.2.0
- name: Test
run: |
helmfile --version
helm version
kubectl version --clientImportant
This action requires Node 24 or later on the runner. If you are using GitHub-managed runners, no action is needed. If you are using self-hosted runners, make sure the system version of Node is version 24 or higher.
helmfile-version: helmfile version. Default"v1.2.3".helm-version: Helm version. Default"v3.19.4"helm-download-url: Helm download URL. Default"https://get.helm.sh/helm-{version}-linux-amd64.tar.gz"kubectl-version: kubectl version. Default1.34.2kubectl-release-date: kubectl release date. Default2025-11-13install-kubectl: Install kubectl. Defaultyesinstall-helm: Install Helm. Defaultyesinstall-helm-plugins: Install Helm plugins. Defaultyeshelm-diff-plugin-version: Plugin version to install. Defaultv3.14.1helm-s3-plugin-version: Plugin version to install. Defaultv0.17.1additional-helm-plugins: A comma separated list of additional helm plugins to install. Should be a valid argument afterhelm plugin install.
See "Installing kubectl - Amazon EKS" for information how to specify the kubectl version.
As of January 2026, specifying helm v4 is not recommended as plugin support is not yet fully developed.
Example with optional inputs
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup helmfile
uses: mamezou-tech/setup-helmfile@v2.2.0
with:
helmfile-version: "v0.135.0"If you are not particular about the version of kubectl / Helm and you can use the versions pre-installed on GitHub Actions runner, you can specify inputs not to install them.
Notice: Helm plugins will be installed in this case.
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup helmfile
uses: mamezou-tech/setup-helmfile@v2.2.0
with:
install-kubectl: no
install-helm: noIf you want to install certain plugins other than the default plugins, use additional-helm-plugins, which accepts a comma separated list of additional plugins to install, accepting anything that can be passed to helm plugin install.
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup helmfile
uses: mamezou-tech/setup-helmfile@v2.2.0
with:
additional-helm-plugins: https://github.com/aslafy-z/helm-git --version 1.5.1If you don't want helm plugins installed, specify no for install-helm-plugins.
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup helmfile
uses: mamezou-tech/setup-helmfile@v2.2.0
with:
install-helm-plugins: nonpm install
npm run package
dist/index.jsshoud be included in commit.