Skip to content

Commit 6854e8d

Browse files
committed
使用封装的 Action 并总结
1 parent bdd457a commit 6854e8d

3 files changed

Lines changed: 327 additions & 104 deletions

File tree

‎.github/workflows/upload-pages.yml‎

Lines changed: 5 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -39,110 +39,11 @@ jobs:
3939
with:
4040
# 👇 Specify build output path
4141
path: build
42-
- name: Check blog posts changes
43-
id: check_blogs
44-
run: |
45-
if [ $(git rev-list --count HEAD) -eq 1 ]; then
46-
echo "Initial commit detected. Skipping blog change detection."
47-
echo "blogs_changed=false" >> $GITHUB_ENV
48-
exit 0
49-
fi
50-
51-
ADDED_BLOGS=$(git diff --diff-filter=A --name-only HEAD^ | grep '^blog/.*\.md$' || true)
52-
UPDATED_BLOGS=$(git diff --diff-filter=M --name-only HEAD^ | grep '^blog/.*\.md$' || true)
53-
REMOVED_BLOGS=$(git diff --diff-filter=D --name-only HEAD^ | grep '^blog/.*\.md$' || true)
54-
55-
if [ -n "$ADDED_BLOGS"]; then
56-
echo "New blog posts added: $ADDED_BLOGS"
57-
fi
58-
59-
if [ -n "$UPDATED_BLOGS"]; then
60-
echo "Blog posts updated: $UPDATED_BLOGS"
61-
fi
62-
63-
if [ -n "$REMOVED_BLOGS"]; then
64-
echo "Blog posts removed: $REMOVED_BLOGS"
65-
fi
66-
67-
echo "added_blogs=$ADDED_BLOGS" >> $GITHUB_ENV
68-
echo "updated_blogs=$UPDATED_BLOGS" >> $GITHUB_ENV
69-
echo "removed_blogs=$REMOVED_BLOGS" >> $GITHUB_ENV
70-
71-
if [ -n "$ADDED_BLOGS" ] || [ -n "$UPDATED_BLOGS" ] || [ -n "$REMOVED_BLOGS" ]; then
72-
echo "blogs_changed=true" >> $GITHUB_ENV
73-
else
74-
echo "blogs_changed=false" >> $GITHUB_ENV
75-
fi
7642
- name: Deploy to GitHub Pages
7743
id: deployment
7844
uses: actions/deploy-pages@v2
79-
- name: Send WeChat notification
80-
id: send_wechat
81-
if: env.blogs_changed == 'true'
82-
env:
83-
WECHAT_WEBHOOK: ${{ secrets.WECHAT_WEBHOOK }}
84-
ADDED_BLOGS: ${{ env.added_blogs }}
85-
UPDATED_BLOGS: ${{ env.updated_blogs }}
86-
REMOVED_BLOGS: ${{ env.removed_blogs }}
87-
BASE_URL: https://tinyfun.club
88-
run: |
89-
extract_slug() {
90-
local file=$1
91-
local slug=$(awk '/^slug:/ {print $2}' "$file")
92-
if [ -z "$slug" ]; then
93-
slug=$(basename "$file" .md)
94-
fi
95-
echo "$slug"
96-
}
97-
98-
extract_title() {
99-
local file=$1
100-
local title=$(awk '/^title:/ {print $2}' "$file")
101-
if [ -z "$title" ]; then
102-
title="$file"
103-
fi
104-
echo "$title"
105-
}
106-
107-
if [ -n "$ADDED_BLOGS" ]; then
108-
ADDED_LIST=$(echo "$ADDED_BLOGS" | while read -r line; do
109-
SLUG=$(extract_slug "$line")
110-
TITLE=$(extract_title "$line")
111-
echo "- [${TITLE}](${BASE_URL}/blog/${SLUG})"
112-
done)
113-
else
114-
ADDED_LIST="无新增博客"
115-
fi
116-
117-
if [ -n "$UPDATED_BLOGS" ]; then
118-
UPDATED_LIST=$(echo "$UPDATED_BLOGS" | while read -r line; do
119-
SLUG=$(extract_slug "$line")
120-
TITLE=$(extract_title "$line")
121-
echo "- [${TITLE}](${BASE_URL}/blog/${SLUG})"
122-
done)
123-
else
124-
UPDATED_LIST="无更新博客"
125-
fi
126-
127-
if [ -n "$REMOVED_BLOGS" ]; then
128-
REMOVED_LIST=$(echo "$REMOVED_BLOGS" | while read -r line; do
129-
SLUG=$(extract_slug "$line")
130-
TITLE=$(extract_title "$line")
131-
echo "- [${TITLE}](${BASE_URL}/blog/${SLUG})"
132-
done)
133-
else
134-
REMOVED_LIST="无删除博客"
135-
fi
136-
137-
MESSAGE=$(cat <<EOF
138-
{
139-
"msgtype": "markdown",
140-
"markdown": {
141-
"content": "**📢 博客变更通知**\n> 仓库: [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }})\n> 分支: \`${{ github.ref_name }}\`\n> 提交信息: ${{ github.event.head_commit.message }}\n> 执行者: ${{ github.actor }}\n\n**新增博客文章**:\n${ADDED_LIST}\n\n**更新博客文章**:\n${UPDATED_LIST}"
142-
}
143-
}
144-
EOF
145-
)
146-
147-
curl -X POST -H "Content-Type: application/json" -d "$MESSAGE" $WECHAT_WEBHOOK
148-
45+
- name: Docusaurus Blogs Changes to Work-WeChat Action
46+
uses: TinyFunction/docusaurus-blogs-changes-to-workwechat@1.0.4
47+
with:
48+
wechat_webhook: ${{ secrets.WECHAT_WEBHOOK }}
49+
base_url: "https://tinyfun.club"

0 commit comments

Comments
 (0)