diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000000..e684fe86af --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,71 @@ +name: docs + +on: + create: + tags: + # https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet + - b[0-9][0-9][0-9] + - publish-docs* + push: + branches: + - main + +jobs: + decompile: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Install latest release + run: pip install --user --upgrade pywin32 + + - name: Set Python user site directory + run: python -c "import os,site;open(os.environ['GITHUB_ENV'], 'a').write(f'USER_DIR={site.USER_SITE}\n')" + + - name: Decompile shipped help file + run: hh -decompile site ${env:USER_DIR}\PyWin32.chm + + - name: Rename root HTML file + run: mv site\PyWin32.HTML site\index.html + + # Compress first to avoid slowly uploading thousands of individual files + - name: Create archive + run: python -m zipfile -c site.zip site + + - uses: actions/upload-artifact@v2 + with: + name: documentation + path: site.zip + + publish: + runs-on: ubuntu-latest + needs: + - decompile + + # Only publish tags + if: github.event_name == 'create' && github.event.ref_type == 'tag' + + steps: + - uses: actions/download-artifact@v2 + with: + name: documentation + + - name: Unpack archive + run: python -m zipfile -e site.zip . + + - uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: site + commit_message: ${{ github.event.head_commit.message }} + # Write .nojekyll at the root, see: + # https://help.github.com/en/github/working-with-github-pages/about-github-pages#static-site-generators + enable_jekyll: false + # Only deploy if there were changes + allow_empty_commit: false