GitHub Action
Helm Artifactory Publisher
v1.0.5
Latest version
GitHub Action for packaging, testing helm charts and publishing to Artifactory helm repo
Note this action is written to specifically work with Helm repos in Artifactory
action
- [check, dependency, lint, package, check_push, push]
check
- Runs all checks on helm chart (dependency build, lint, package)dependency
- Run dependency build on the target helm chartlint
- Run helm lint on the target chartpackage
- Run helm package on the target chartcheck_push
- Runs all tests and upload the chart to artifactorypush
- Uses helm artifactory plugin to uploads the chart
CHART_DIR: manifests/charts/mycomponent # path where the helm chart is located
ARTIFACTORY_URL: # Artifactory registry https://<company>.jfrog.io/<company>
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} # ARTIFACTORY_USERNAME (Artifactory username) must be set in GitHub Repo secrets
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} # ARTIFACTORY_PASSWORD (Artifactory password) must be set in GitHub Repo secrets
OR
ARTIFACTORY_API_KEY: ${{ secrets.ARTIFACTORY_API_KEY }} # ARTIFACTORY_API_KEY (Artifactory api key) must be set in GitHub Repo secrets
CHART_VERSION: # Override helm chart version when pushing
HELM_VERSION: # Override helm version. Default "3.5.1"
HELM_ARTIFACTORY_PLUGIN_VERSION: # Override helm artifactory plugin version. Default "v1.0.2"
CHART_VERSION: # if defined override version in Chart.yaml. Default is unset
Perform all checks on pull requests
name: Helm lint, test, package and publish
on: pull_request
jobs:
helm-suite:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# - name: myOtherJob1
# run:
- name: "Helm checks"
uses: mbovo/[email protected]
with:
action: "check"
env:
CHART_DIR: resources/helm/minechart
ARTIFACTORY_URL: https://artifactory.zroot.org:443/artifactory/helm-local/
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
Push helm charts on merge/commits on main branch
name: Helm lint, test, package and publish
on:
push:
branches: ["main"]
jobs:
helm-suite:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# - name: myOtherJob1
# run:
- name: "Helm publish"
uses: mbovo/[email protected]
with:
action: "push"
env:
CHART_DIR: resources/helm/minechart
ARTIFACTORY_URL: https://artifactory.zroot.org:443/artifactory/helm-local/
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}