Skip to content

Merge pull request #143 from qpoint-io/marc-barry/chart-upgrade #141

Merge pull request #143 from qpoint-io/marc-barry/chart-upgrade

Merge pull request #143 from qpoint-io/marc-barry/chart-upgrade #141

Workflow file for this run

name: Release Changed Charts
on:
push:
branches:
- main
jobs:
release-charts:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Helm
uses: azure/setup-helm@v4
- name: Identify Changed Charts
id: changed_charts
run: |
git fetch --depth=2 origin main
LAST_COMMIT=$(git rev-parse origin/main)
PREVIOUS_COMMIT=$(git rev-parse origin/main^)
CHANGED_CHARTS=$(git diff --name-only $PREVIOUS_COMMIT $LAST_COMMIT charts/ | awk -F/ '{print $2}' | uniq | tr '\n' ' ')
echo "CHANGED_CHARTS=$CHANGED_CHARTS" >> $GITHUB_ENV
- name: Package and Release Each Changed Chart
if: env.CHANGED_CHARTS != ''
run: |
for chart in $CHANGED_CHARTS; do
CHART_PATH="charts/$chart"
echo $CHART_PATH
if [ -d "$CHART_PATH" ]; then
echo "Packaging and releasing $chart..."
helm package $CHART_PATH
CHART_VERSION=$(grep 'version:' $CHART_PATH/Chart.yaml | cut -d ' ' -f 2)
RELEASE_NAME="$chart-$CHART_VERSION"
gh release create $RELEASE_NAME *.tgz --title "$RELEASE_NAME" --notes "New release of $chart"
# Update the Helm repository index
helm repo index . --url https://github.com/qpoint-io/helm-charts/releases/download/$RELEASE_NAME --merge index.yaml
# Add to commit message
echo "$RELEASE_NAME" >> changed_versions.txt
fi
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Commit Updated Index
if: env.CHANGED_CHARTS != ''
run: |
# Create commit message from changed versions
echo "Update Helm repository index with:" > commit_msg.txt
echo "" >> commit_msg.txt
cat changed_versions.txt >> commit_msg.txt
# Configure Git
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
# Commit and push changes
git add index.yaml
git commit -F commit_msg.txt
git push