Release Charts #173
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: 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 }} | |