@@ -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