#!/usr/bin/env bash set -euo pipefail CHANGELOG_FILE="CHANGELOG.md" CLIFF_CONFIG="cliff.toml" GIT_BRANCH="${GITHUB_REF##refs/heads/}" # === Step 1: Generate Changelog (only if file exists or on main) === if [[ -f "$CHANGELOG_FILE" || "$GIT_BRANCH" == "main" ]]; then echo "📄 Generating $CHANGELOG_FILE using git-cliff..." git-cliff -c "$CLIFF_CONFIG" -o "$CHANGELOG_FILE" else echo "â„šī¸ $CHANGELOG_FILE does not exist and branch is not 'main'. Skipping generation." exit 0 fi # === Step 2: Commit and push changes if any === git add "$CHANGELOG_FILE" if git diff --cached --quiet; then echo "✅ No changes to commit – changelog is up to date." else echo "âœī¸ Committing updated $CHANGELOG_FILE..." git commit -m "chore(changelog): update unreleased changelog" echo "🚀 Pushing to origin/$GIT_BRANCH..." git push origin "$GIT_BRANCH" fi