| 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 | |