@@ -40,20 +40,16 @@ jobs:
4040 env :
4141 SITE_ORIGIN : https://involutionhell.vercel.app
4242 INDEXNOW_API : https://involutionhell.vercel.app/api/indexnow
43- INDEXNOW_API_TOKEN : ${{ secrets.INDEXNOW_API_TOKEN }} # 若未启用鉴权可删
43+ INDEXNOW_API_TOKEN : ${{ secrets.INDEXNOW_API_TOKEN }}
4444 run : |
4545 set -euo pipefail
4646
47- # 获取本次代码变更
4847 git fetch --depth=2 origin ${{ github.ref }} || true
4948 CHANGED="$(git diff --name-only HEAD~1 HEAD || true)"
50-
51- # 过滤属于文档或页面的变更(按需调整正则)
5249 CHANGED_DOCS="$(echo "$CHANGED" | grep -E '^(app/docs/|content/docs/).*\.(mdx?|tsx?)$' || true)"
5350
5451 URLS=()
5552
56- # 规则 1:app/docs/**/page.(md/tsx) → /docs/**
5753 while IFS= read -r f; do
5854 [ -z "$f" ] && continue
5955 if [[ "$f" =~ ^app/docs/(.*)/page\.(mdx|md|tsx|ts|jsx|js)$ ]]; then
6258 fi
6359 done <<< "$CHANGED_DOCS"
6460
65- # 规则 2:content/docs/**.(md|mdx) → /docs/**(若不用 MDX 直出可删掉此段)
6661 while IFS= read -r f; do
6762 [ -z "$f" ] && continue
6863 if [[ "$f" =~ ^content/docs/(.*)\.(md|mdx)$ ]]; then
@@ -72,28 +67,38 @@ jobs:
7267 fi
7368 done <<< "$CHANGED_DOCS"
7469
75- # 去重
7670 mapfile -t URLS < <(printf "%s\n" "${URLS[@]}" | awk 'NF' | sort -u)
7771
78- # 兜底:没有匹配就推首页
7972 if [ "${#URLS[@]}" -eq 0 ]; then
8073 URLS=("$SITE_ORIGIN/")
8174 fi
8275
8376 echo "✅ Submitting URLs to IndexNow:"
8477 printf ' - %s\n' "${URLS[@]}"
8578
86- # 组 JSON
8779 JSON="$(jq -n --argjson arr "$(printf '%s\n' "${URLS[@]}" | jq -R . | jq -s .)" '{urlList: $arr}')"
8880
89- # 可选鉴权
9081 AUTH_HEADER=()
9182 if [ -n "${INDEXNOW_API_TOKEN:-}" ]; then
9283 AUTH_HEADER=(-H "Authorization: Bearer ${INDEXNOW_API_TOKEN}")
9384 fi
9485
95- # 调用你的 /api/indexnow
96- curl -sS -X POST "$INDEXNOW_API" \
86+ echo "📡 Sending request to $INDEXNOW_API ..."
87+ RESPONSE=$( curl -sS -w "\nHTTP_STATUS=%{http_code}" -X POST "$INDEXNOW_API" \
9788 -H "Content-Type: application/json" \
9889 "${AUTH_HEADER[@]}" \
99- -d "$JSON"
90+ -d "$JSON")
91+
92+ BODY=$(echo "$RESPONSE" | sed -e 's/HTTP_STATUS=.*//g')
93+ STATUS=$(echo "$RESPONSE" | tr -d '\n' | sed -e 's/.*HTTP_STATUS=//')
94+
95+ echo "📥 API Response Status: $STATUS"
96+ echo "📦 Response Body:"
97+ echo "$BODY"
98+
99+ if [ "$STATUS" -ge 400 ]; then
100+ echo "❌ IndexNow submission failed!"
101+ exit 1
102+ fi
103+
104+ echo "✅ IndexNow submission completed."
0 commit comments