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@v3
- name: Setup helmfile
uses: mamezou-tech/[email protected]
- name: Test
run: |
helmfile --version
helm version
kubectl version --clientImportant
This action requires Node 20 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 20 or higher.
helmfile-version: helmfile version. Default"v0.170.1".helm-version: Helm version. Default"v3.17.0"helm-download-url: Helm download URL. Default"https://get.helm.sh/helm-{version}-linux-amd64.tar.gz"kubectl-version: kubectl version. Default1.32.0kubectl-release-date: kubectl release date. Default2025-01-10install-kubectl: Install kubectl. Defaultyesinstall-helm: Install Helm. Defaultyesinstall-helm-plugins: Install Helm plugins. Defaultyeshelm-diff-plugin-version: Plugin version to install. Defaultv3.9.14helm-s3-plugin-version: Plugin version to install. Defaultv0.16.2additional-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.
Example with optional inputs
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Setup helmfile
uses: mamezou-tech/[email protected]
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/[email protected]
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/[email protected]
with:
additional-helm-plugins: https://github.com/aslafy-z/helm-git --version 0.10.0If 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/[email protected]
with:
install-helm-plugins: nonpm install
npm run package
dist/index.jsshoud be included in commit.