Skip to content

Commit 5bc7540

Browse files
committed
wip
1 parent 8fa11c6 commit 5bc7540

File tree

1 file changed

+61
-27
lines changed

1 file changed

+61
-27
lines changed

.github/workflows/build.yml

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -814,48 +814,82 @@ jobs:
814814
815815
if [ -z "$PREVIOUS_TAG" ]; then
816816
echo "No previous tag found, showing recent commits"
817-
CHANGES=$(git log --pretty=format:"- %s" HEAD~10..HEAD 2>/dev/null || echo "- Initial release")
817+
COMMIT_RANGE="HEAD~10..HEAD"
818818
else
819819
echo "Generating changes since $PREVIOUS_TAG"
820-
CHANGES=$(git log --pretty=format:"- %s" "$PREVIOUS_TAG"..HEAD 2>/dev/null || echo "- Initial release")
820+
COMMIT_RANGE="$PREVIOUS_TAG..HEAD"
821821
fi
822822
823-
if [ -z "$CHANGES" ]; then
824-
CHANGES="- Initial release"
825-
fi
823+
# Extract raw commits
824+
RAW_COMMITS=$(git log --pretty=format:"%s" "$COMMIT_RANGE" 2>/dev/null || echo "")
826825
827-
cat > release_notes.md <<EOF
828-
## OpenTable ${VERSION}
826+
# Filter noise commits
827+
FILTERED_COMMITS=$(echo "$RAW_COMMITS" | awk '
828+
tolower($0) ~ /^wip$/ { next }
829+
tolower($0) ~ /^wip:/ { next }
830+
/^Merge pull request/ { next }
831+
/^Merge branch/ { next }
832+
/^Bump [0-9]/ { next }
833+
tolower($0) ~ /^bump version/ { next }
834+
tolower($0) ~ /^bump [0-9]/ { next }
835+
/^\[.*[Bb]ot\]/ { next }
836+
/^$/ { next }
837+
{ print }
838+
')
829839
830-
### Downloads
840+
# Categorize commits by conventional commit type
841+
FEAT_COMMITS=$(echo "$FILTERED_COMMITS" | grep -i "^feat:" | sed 's/^feat: *//' || true)
842+
FIX_COMMITS=$(echo "$FILTERED_COMMITS" | grep -i "^fix:" | sed 's/^fix: *//' || true)
843+
PERF_COMMITS=$(echo "$FILTERED_COMMITS" | grep -i "^perf:" | sed 's/^perf: *//' || true)
844+
DOCS_COMMITS=$(echo "$FILTERED_COMMITS" | grep -i "^docs:" | sed 's/^docs: *//' || true)
845+
REFACTOR_COMMITS=$(echo "$FILTERED_COMMITS" | grep -i "^refactor:" | sed 's/^refactor: *//' || true)
846+
CHORE_COMMITS=$(echo "$FILTERED_COMMITS" | grep -iE "^(chore|style|test):" | sed 's/^[^:]*: *//' || true)
847+
OTHER_COMMITS=$(echo "$FILTERED_COMMITS" | grep -ivE "^(feat|fix|perf|docs|refactor|chore|style|test):" || true)
831848
832-
Choose the appropriate version for your Mac:
849+
# Build categorized output
850+
CHANGES=""
833851
834-
**Recommended (DMG Installer):**
835-
- 🍎 **Apple Silicon (M1/M2/M3/M4)**: \`OpenTable-${VERSION}-arm64.dmg\`
836-
- 💻 **Intel**: \`OpenTable-${VERSION}-x86_64.dmg\`
852+
if [ -n "$FEAT_COMMITS" ]; then
853+
CHANGES="${CHANGES}### New Features"$'\n\n'
854+
CHANGES="${CHANGES}$(echo "$FEAT_COMMITS" | sed 's/^/- /')"$'\n\n'
855+
fi
837856
838-
**Alternative (ZIP Archive):**
839-
- \`OpenTable-${VERSION}-arm64.zip\` (Apple Silicon)
840-
- \`OpenTable-${VERSION}-x86_64.zip\` (Intel)
857+
if [ -n "$FIX_COMMITS" ]; then
858+
CHANGES="${CHANGES}### Bug Fixes"$'\n\n'
859+
CHANGES="${CHANGES}$(echo "$FIX_COMMITS" | sed 's/^/- /')"$'\n\n'
860+
fi
861+
862+
if [ -n "$PERF_COMMITS" ]; then
863+
CHANGES="${CHANGES}### Performance Improvements"$'\n\n'
864+
CHANGES="${CHANGES}$(echo "$PERF_COMMITS" | sed 's/^/- /')"$'\n\n'
865+
fi
841866
842-
### Installation
867+
if [ -n "$DOCS_COMMITS" ]; then
868+
CHANGES="${CHANGES}### Documentation"$'\n\n'
869+
CHANGES="${CHANGES}$(echo "$DOCS_COMMITS" | sed 's/^/- /')"$'\n\n'
870+
fi
843871
844-
**DMG Installer (Recommended):**
845-
1. Download and open the DMG file
846-
2. Drag OpenTable to the Applications folder
847-
3. Eject the DMG
848-
4. Right-click OpenTable in Applications and select "Open" on first launch
872+
if [ -n "$REFACTOR_COMMITS" ]; then
873+
CHANGES="${CHANGES}### Refactoring"$'\n\n'
874+
CHANGES="${CHANGES}$(echo "$REFACTOR_COMMITS" | sed 's/^/- /')"$'\n\n'
875+
fi
849876
850-
**ZIP Archive:**
851-
1. Download and unzip the file
852-
2. Move OpenTable.app to your Applications folder
853-
3. Right-click and select "Open" on first launch
877+
if [ -n "$CHORE_COMMITS" ]; then
878+
CHANGES="${CHANGES}### Maintenance"$'\n\n'
879+
CHANGES="${CHANGES}$(echo "$CHORE_COMMITS" | sed 's/^/- /')"$'\n\n'
880+
fi
854881
855-
> **Note:** This app is not signed with an Apple Developer certificate. You may need to allow it in System Settings > Privacy & Security on first launch.
882+
if [ -n "$OTHER_COMMITS" ]; then
883+
CHANGES="${CHANGES}### Other Changes"$'\n\n'
884+
CHANGES="${CHANGES}$(echo "$OTHER_COMMITS" | sed 's/^/- /')"$'\n\n'
885+
fi
856886
857-
### Changes
887+
# Fallback if all commits were filtered out
888+
if [ -z "$CHANGES" ]; then
889+
CHANGES="### Changes"$'\n\n'"- Minor improvements and bug fixes"$'\n\n'
890+
fi
858891
892+
cat > release_notes.md <<EOF
859893
$CHANGES
860894
EOF
861895

0 commit comments

Comments
 (0)