Skip to content

Remove missing image references from linked list article #418

Remove missing image references from linked list article

Remove missing image references from linked list article #418

Workflow file for this run

name: Build Check
permissions:
contents: read
actions: write
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
env:
NEXT_TELEMETRY_DISABLED: "1"
CI: "true"
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm run lint
- run: pnpm run lint:images
- run: pnpm run typecheck
# === IndexNow 提交(仅在 main 分支执行) ===
- name: Install jq (for JSON build)
if: github.ref == 'refs/heads/main'
run: sudo apt-get update && sudo apt-get install -y jq
- name: Submit IndexNow (changed URLs)
if: github.ref == 'refs/heads/main'
env:
SITE_ORIGIN: https://involutionhell.com
INDEXNOW_API: https://involutionhell.com/api/indexnow
INDEXNOW_API_TOKEN: ${{ secrets.INDEXNOW_API_TOKEN }}
run: |
set -euo pipefail
git fetch --depth=2 origin ${{ github.ref }} || true
CHANGED="$(git diff --name-only HEAD~1 HEAD || true)"
CHANGED_DOCS="$(echo "$CHANGED" | grep -E '^(app/docs/|content/docs/).*\.(mdx?|tsx?)$' || true)"
URLS=()
while IFS= read -r f; do
[ -z "$f" ] && continue
if [[ "$f" =~ ^app/docs/(.*)/page\.(mdx|md|tsx|ts|jsx|js)$ ]]; then
slug="${BASH_REMATCH[1]}"
URLS+=("$SITE_ORIGIN/docs/$slug")
fi
done <<< "$CHANGED_DOCS"
while IFS= read -r f; do
[ -z "$f" ] && continue
if [[ "$f" =~ ^content/docs/(.*)\.(md|mdx)$ ]]; then
slug="${BASH_REMATCH[1]}"
slug="${slug%/index}"
URLS+=("$SITE_ORIGIN/docs/$slug")
fi
done <<< "$CHANGED_DOCS"
mapfile -t URLS < <(printf "%s\n" "${URLS[@]}" | awk 'NF' | sort -u)
if [ "${#URLS[@]}" -eq 0 ]; then
URLS=("$SITE_ORIGIN/")
fi
echo "✅ Submitting URLs to IndexNow:"
printf ' - %s\n' "${URLS[@]}"
JSON="$(jq -n --argjson arr "$(printf '%s\n' "${URLS[@]}" | jq -R . | jq -s .)" '{urlList: $arr}')"
AUTH_HEADER=()
if [ -n "${INDEXNOW_API_TOKEN:-}" ]; then
AUTH_HEADER=(-H "Authorization: Bearer ${INDEXNOW_API_TOKEN}")
fi
echo "📡 Sending request to $INDEXNOW_API ..."
RESPONSE=$(curl -sS -w "\nHTTP_STATUS=%{http_code}" -X POST "$INDEXNOW_API" \
-H "Content-Type: application/json" \
"${AUTH_HEADER[@]}" \
-d "$JSON")
BODY=$(echo "$RESPONSE" | sed -e 's/HTTP_STATUS=.*//g')
STATUS=$(echo "$RESPONSE" | tr -d '\n' | sed -e 's/.*HTTP_STATUS=//')
echo "📥 API Response Status: $STATUS"
echo "📦 Response Body:"
echo "$BODY"
if [ "$STATUS" -ge 400 ]; then
echo "❌ IndexNow submission failed!"
exit 1
fi
echo "✅ IndexNow submission completed."