Files

69 lines
2.1 KiB
YAML

name: Sync Wiki
on:
workflow_dispatch:
inputs:
branch:
description: "Branch to sync from"
required: false
default: "main"
type: string
workflow_call:
inputs:
branch:
description: "Branch to sync from"
required: false
default: "main"
type: string
permissions:
contents: write
pull-requests: write
jobs:
sync-wiki:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout main repo
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch || github.ref }}
fetch-depth: 0
- name: Checkout wiki repo
id: checkout-wiki
continue-on-error: true
run: |
if git clone "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.wiki.git" wiki; then
echo "wiki_exists=true" >> $GITHUB_OUTPUT
else
echo "wiki_exists=false" >> $GITHUB_OUTPUT
echo "::warning::Wiki repository not found. Create the first wiki page at https://github.com/${GITHUB_REPOSITORY}/wiki to enable auto-sync."
fi
- name: Sync WIKI.md to Wiki/Home.md
if: steps.checkout-wiki.outputs.wiki_exists == 'true'
run: |
set -e
SRC_FILE="WIKI.md"
DEST_FILE="wiki/Home.md"
if [ ! -f "$SRC_FILE" ]; then
echo "No $SRC_FILE in main repo; skipping."
exit 0
fi
if ! cmp -s "$SRC_FILE" "$DEST_FILE"; then
echo "Changes found, updating wiki..."
cp "$SRC_FILE" "$DEST_FILE"
cd wiki
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add Home.md
git commit -m "Sync WIKI.md from main repo [skip ci]" || echo "No changes to commit"
git push "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.wiki.git"
else
echo "No changes in $SRC_FILE; wiki is up to date."
fi