name: Publish docs to Wiki

# Trigger this action only if there are changes pushed to the docs/** directory under the main branch
on:
  push:
    branches:
      - main # This can be changed to any branch of your preference

env:
  USER_TOKEN: ${{ secrets.WIKI_ACTION_TOKEN }} # This is the repository secret
  USER_NAME: AbdullahAlfaraj # Enter the username of your (bot) account
  USER_EMAIL: 7842232+AbdullahAlfaraj@users.noreply.github.com # Enter the e-mail of your (bot) account
  OWNER: ${{ github.event.repository.owner.name }} # This is the repository owner
  REPOSITORY_NAME: ${{ github.event.repository.name }} # This is the repository name

jobs:
  publish_docs_to_wiki:
    name: Publish docs to Wiki
    runs-on: ubuntu-latest
    steps:  
      - name: Checkout repository
        uses: actions/checkout@v2

      # 1. Create folder named `tmp_wiki`
      # 2. Initialize Git
      # 3. Pull old Wiki content
      - name: Pull content from wiki
        run: |
          mkdir tmp_wiki
          cd tmp_wiki
          git init
          git config user.name $USER_NAME
          git config user.email $USER_EMAIL
          git pull https://$USER_TOKEN@github.com/$OWNER/$REPOSITORY_NAME.wiki.git
      # 4. Synchronize differences between `docs` & `tmp_wiki`
      # 5. Push new Wiki content
      - name: Push content to wiki
        run: |
          rsync -av --delete docs/ tmp_wiki/ --exclude .git
          cd tmp_wiki
          git add .
          git commit -m "Update Wiki content" 
          git push -f --set-upstream https://$USER_TOKEN@github.com/$OWNER/$REPOSITORY_NAME.wiki.git master
