chore: only commit stats when points change

This commit is contained in:
fujie
2026-01-08 23:21:04 +08:00
parent 29fa5bae29
commit 8c6fe6784e

View File

@@ -35,18 +35,12 @@ jobs:
- name: Get previous stats - name: Get previous stats
id: prev_stats id: prev_stats
run: | run: |
# 获取当前的统计数据用于比较 # 获取当前的 points 用于比较
if [ -f docs/community-stats.json ]; then if [ -f docs/community-stats.json ]; then
OLD_DOWNLOADS=$(jq -r '.total_downloads' docs/community-stats.json 2>/dev/null || echo "0") OLD_POINTS=$(jq -r '.user.total_points' docs/community-stats.json 2>/dev/null || echo "0")
OLD_POSTS=$(jq -r '.total_posts' docs/community-stats.json 2>/dev/null || echo "0") echo "old_points=$OLD_POINTS" >> $GITHUB_OUTPUT
OLD_UPVOTES=$(jq -r '.total_upvotes' docs/community-stats.json 2>/dev/null || echo "0")
echo "old_downloads=$OLD_DOWNLOADS" >> $GITHUB_OUTPUT
echo "old_posts=$OLD_POSTS" >> $GITHUB_OUTPUT
echo "old_upvotes=$OLD_UPVOTES" >> $GITHUB_OUTPUT
else else
echo "old_downloads=0" >> $GITHUB_OUTPUT echo "old_points=0" >> $GITHUB_OUTPUT
echo "old_posts=0" >> $GITHUB_OUTPUT
echo "old_upvotes=0" >> $GITHUB_OUTPUT
fi fi
- name: Generate stats report - name: Generate stats report
@@ -59,23 +53,19 @@ jobs:
- name: Check for significant changes - name: Check for significant changes
id: check_changes id: check_changes
run: | run: |
# 获取新的统计数据 # 获取新的 points
NEW_DOWNLOADS=$(jq -r '.total_downloads' docs/community-stats.json 2>/dev/null || echo "0") NEW_POINTS=$(jq -r '.user.total_points' docs/community-stats.json 2>/dev/null || echo "0")
NEW_POSTS=$(jq -r '.total_posts' docs/community-stats.json 2>/dev/null || echo "0")
NEW_UPVOTES=$(jq -r '.total_upvotes' docs/community-stats.json 2>/dev/null || echo "0")
echo "📊 Previous: ${{ steps.prev_stats.outputs.old_downloads }} downloads, ${{ steps.prev_stats.outputs.old_posts }} posts, ${{ steps.prev_stats.outputs.old_upvotes }} upvotes" echo "📊 Previous points: ${{ steps.prev_stats.outputs.old_points }}"
echo "📊 Current: $NEW_DOWNLOADS downloads, $NEW_POSTS posts, $NEW_UPVOTES upvotes" echo "📊 Current points: $NEW_POINTS"
# 比较是否有变化 # 只在 points 变化时才 commit
if [ "$NEW_DOWNLOADS" != "${{ steps.prev_stats.outputs.old_downloads }}" ] || \ if [ "$NEW_POINTS" != "${{ steps.prev_stats.outputs.old_points }}" ]; then
[ "$NEW_POSTS" != "${{ steps.prev_stats.outputs.old_posts }}" ] || \
[ "$NEW_UPVOTES" != "${{ steps.prev_stats.outputs.old_upvotes }}" ]; then
echo "changed=true" >> $GITHUB_OUTPUT echo "changed=true" >> $GITHUB_OUTPUT
echo "✅ Stats changed, will commit" echo "✅ Points changed (${{ steps.prev_stats.outputs.old_points }} → $NEW_POINTS), will commit"
else else
echo "changed=false" >> $GITHUB_OUTPUT echo "changed=false" >> $GITHUB_OUTPUT
echo "⏭️ No changes, skipping commit" echo "⏭️ Points unchanged, skipping commit"
fi fi
- name: Commit and push changes - name: Commit and push changes