[helm-chart] Add helm-docs to the helm chart workflow #7
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Garnet Helm Chart | ||
on: | ||
workflow_dispatch: # allow manual run | ||
push: | ||
branches: | ||
- main | ||
paths: | ||
- 'charts/**' | ||
paths-ignore: | ||
- 'charts/*/README.md' | ||
permissions: | ||
contents: write | ||
packages: write | ||
jobs: | ||
helm-chart: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Configure git | ||
run: | | ||
git config user.name "${GITHUB_ACTOR}" | ||
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" | ||
- name: Install helm | ||
uses: azure/setup-helm@v4 | ||
env: | ||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | ||
- name: Install helm-docs | ||
env: | ||
HELM_DOCS_VERSION: "1.14.2" | ||
run: | | ||
cd /tmp | ||
wget https://github.com/norwoodj/helm-docs/releases/download/v"${HELM_DOCS_VERSION}"/helm-docs_"${HELM_DOCS_VERSION}"_Linux_x86_64.tar.gz | ||
tar -xvf helm-docs_"${HELM_DOCS_VERSION}"_Linux_x86_64.tar.gz | ||
sudo mv helm-docs /usr/local/bin | ||
- name: Set helm chart appVersion from Version.props | ||
run: | | ||
export VERSION_PROPS=$(awk -F'[<>]' '/VersionPrefix/{print $3}' Version.props) | ||
sed -i -e 's#Version.props#"'${VERSION_PROPS}'"#g' charts/garnet/Chart.yaml | ||
- name: Helm lint, helm-docs and helm package | ||
run: | | ||
mkdir .cr-release-packages | ||
for chart in $(find charts -mindepth 1 -maxdepth 1 -type d); do | ||
if [ -z "${chart:-}" ]; then | ||
break | ||
fi | ||
helm lint "${chart}" | ||
helm-docs --document-dependency-values --chart-search-root "${chart}" | ||
helm package "${chart}" --dependency-update --destination .cr-release-packages | ||
done | ||
- name: Git commit charts/garnet/README.md and push to main | ||
run: | | ||
git checkout -- charts/garnet/Chart.yaml | ||
git add charts/garnet/README.md | ||
git commit -s -m "Apply README.md changes in helm chart" | ||
git push origin HEAD:main | ||
- name: Login to GHCR | ||
env: | ||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | ||
run: | | ||
echo "${GITHUB_TOKEN}" | helm registry login ghcr.io --username "${GITHUB_ACTOR}" --password-stdin | ||
- name: Push charts to GHCR | ||
run: | | ||
shopt -s nullglob | ||
for pkg in .cr-release-packages/*.tgz; do | ||
if [ -z "${pkg:-}" ]; then | ||
break | ||
fi | ||
helm push "${pkg}" "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/helm-charts" | ||
done | ||