Skip to content

Release Charts

Release Charts #173

name: Release Charts
on:
# push:
# branches:
# - main
# paths:
# - 'charts/**'
# # - 'README.md'
workflow_dispatch:
inputs:
version_part:
description: 'Which part of the version to increment? (major, minor, patch)'
required: true
default: 'patch'
jobs:
release:
# depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions
# see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
permissions:
contents: write
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 "[email protected]"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Install Python dependencies
run: pip install pyyaml yq
- name: Update SemVer in config.yaml
run: python .github/workflows/update_version.py ${{ github.event.inputs.version_part }}
- name: Get latest release version
id: get_latest_release
run: |
VERSION=$(yq '.version' charts/home-assistant/Chart.yaml)
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Version: $VERSION"
- name: Merge README.md files using diff3
run: |
# Ensure both README.md files are present
if [ ! -f README.md ]; then
echo "Root README.md does not exist."
exit 1
fi
if [ ! -f charts/home-assistant/README.md ]; then
echo "charts/home-assistant/README.md does not exist. Creating an empty file."
touch charts/home-assistant/README.md
fi
# Create a base file (empty or a common ancestor if available)
touch baseREADME.md
# Show content of both files for debugging
echo "Content of root README.md:"
cat README.md
echo "-------------------"
echo "Content of charts/home-assistant/README.md:"
cat charts/home-assistant/README.md
echo "-------------------"
# Attempt to auto-merge using diff3
diff3 -m baseREADME.md README.md charts/home-assistant/README.md > mergedREADME.md || true
DIFF3_EXIT_CODE=$?
if [ $DIFF3_EXIT_CODE -eq 0 ]; then
echo "Merge successful without conflicts."
mv mergedREADME.md charts/home-assistant/README.md
else
echo "Using root README.md as the source of truth"
cp README.md charts/home-assistant/README.md
fi
- name: Commit latest release version
run: |
git add charts/home-assistant/Chart.yaml
git add charts/home-assistant/README.md
git commit -m "Released version ${{ env.VERSION }} of the helm chart"
git push
- name: Install Helm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: azure/setup-helm@v4
- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: ${{ secrets.REPO_SCOPED_TOKEN }}