@@ -81,21 +81,59 @@ jobs:
8181 echo "$BODY" >> $GITHUB_OUTPUT
8282 echo "EOF" >> $GITHUB_OUTPUT
8383
84- - name : Bump version in config/version.php
84+ - name : Bump version and update CHANGELOG.md
8585 run : |
8686 VERSION="${{ steps.version.outputs.version }}"
87+ DATE=$(date +%Y-%m-%d)
8788 git config user.name "github-actions[bot]"
8889 git config user.email "github-actions[bot]@users.noreply.github.com"
8990 git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
9091 git fetch origin main
9192 git checkout main
9293 git pull origin main
94+
95+ # Bump version.php
9396 sed -i "s/'current' => '.*'/'current' => '${VERSION}'/" backend/config/version.php
97+
98+ # Update CHANGELOG.md — replace [Unreleased] header with version + date, add new Unreleased
99+ if [ -f CHANGELOG.md ]; then
100+ # Build changelog entry from conventional commits
101+ PREV_TAG=$(git tag --sort=-v:refname | grep -v "^${VERSION}$" | head -1 || echo "")
102+ FEATURES=""
103+ FIXES=""
104+ if [ -n "$PREV_TAG" ]; then
105+ FEATURES=$(git log "${PREV_TAG}..HEAD" --pretty=format:"%s" --no-merges | grep -E "^feat" | sed 's/^feat[^:]*: /- /' || true)
106+ FIXES=$(git log "${PREV_TAG}..HEAD" --pretty=format:"%s" --no-merges | grep -E "^fix" | sed 's/^fix[^:]*: /- /' || true)
107+ fi
108+
109+ # Build the new entry
110+ ENTRY="## [${VERSION}] - ${DATE}\n"
111+ if [ -n "$FEATURES" ]; then
112+ ENTRY="${ENTRY}\n### Added\n${FEATURES}\n"
113+ fi
114+ if [ -n "$FIXES" ]; then
115+ ENTRY="${ENTRY}\n### Fixed\n${FIXES}\n"
116+ fi
117+
118+ # Insert after the [Unreleased] section marker
119+ sed -i "/^## \[Unreleased\]/,/^## \[/ {
120+ /^## \[Unreleased\]/! {
121+ /^## \[/ i\\
122+ ${ENTRY}
123+ }
124+ }" CHANGELOG.md
125+
126+ # Update comparison links
127+ sed -i "s|\[Unreleased\] : .*|[Unreleased]: https://github.com/Mes-Open/OpenMes/compare/${VERSION}...develop|" CHANGELOG.md
128+
129+ git add CHANGELOG.md
130+ fi
131+
94132 git add backend/config/version.php
95133 if git diff --cached --quiet; then
96134 echo "Version already set to ${VERSION}, no commit needed."
97135 else
98- git commit -m "chore: bump version to ${VERSION}"
136+ git commit -m "chore : bump version to ${VERSION}, update CHANGELOG "
99137 git push origin main
100138 fi
101139
0 commit comments