name: Sync-Wiki

on:
  push:
    branches:
      - main
    paths:
      - "**/*.md"
      - ".github/workflows/sync-wiki.yml"
      - "doc/mdDocs/markdownList.yml"
      - ".github/scripts/sync-wiki.py"
  workflow_dispatch:

jobs:
  sync-wiki:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
        with:
          path: repo
      - name: Checkout Wiki
        uses: actions/checkout@v3
        with:
          repository: ${{ github.repository }}.wiki
          path: wiki
        continue-on-error: true
      - name: Create Wiki Directory if Not Exists
        run: |
          if [ ! -d "wiki" ]; then
            mkdir -p wiki
            cd wiki
            git init
            git config user.name "${{ github.actor }}"
            git config user.email "${{ github.actor }}@users.noreply.github.com"
            git remote add origin "https://github.com/${{ github.repository }}.wiki.git"
          fi
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - name: Install dependencies
        run: pip install pyyaml
      - name: Sync markdown files to Wiki
        run: |
          python $GITHUB_WORKSPACE/repo/.github/scripts/sync-wiki.py
        env:
          GITHUB_REPOSITORY: ${{ github.repository }}
      - name: Push changes to wiki
        run: |
          cd wiki
          git config user.name "${{ github.actor }}"
          git config user.email "${{ github.actor }}@users.noreply.github.com"
          git add .
          if git status --porcelain | grep .; then
            git commit -m "Auto sync wiki from main repository"
            git push --set-upstream https://${{ github.actor }}:${{ github.token }}@github.com/${{ github.repository }}.wiki.git master -f
          else
            echo "No changes to commit"
          fi
