chore: only commit stats when points change
This commit is contained in:
34
.github/workflows/community-stats.yml
vendored
34
.github/workflows/community-stats.yml
vendored
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user