| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # Workflow that builds and deploys the documentation website
- name: Deploy Docs to GitHub Pages
- # * Always run on "main"
- # * Run on PRs that target the "main" branch and have changes in the "docs" folder or this workflow
- on:
- push:
- branches:
- - main
- pull_request:
- paths:
- - 'docs/**'
- - '.github/workflows/deploy-docs.yml'
- branches:
- - main
- # If triggered by a PR, it will be in the same group. However, each commit on main will be in its own unique group
- concurrency:
- group: ${{ github.workflow }}-${{ (github.head_ref && github.ref) || github.run_id }}
- cancel-in-progress: true
- jobs:
- # Build the documentation website
- build:
- if: github.repository == 'All-Hands-AI/OpenHands'
- name: Build Docusaurus
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - uses: actions/setup-node@v4
- with:
- node-version: 18
- cache: npm
- cache-dependency-path: docs/package-lock.json
- - name: Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: '3.12'
- - name: Generate Python Docs
- run: rm -rf docs/modules/python && pip install pydoc-markdown && pydoc-markdown
- - name: Install dependencies
- run: cd docs && npm ci
- - name: Build website
- run: cd docs && npm run build
- - name: Upload Build Artifact
- if: github.ref == 'refs/heads/main'
- uses: actions/upload-pages-artifact@v3
- with:
- path: docs/build
- # Deploy the documentation website
- deploy:
- if: github.ref == 'refs/heads/main' && github.repository == 'All-Hands-AI/OpenHands'
- name: Deploy to GitHub Pages
- runs-on: ubuntu-latest
- # This job only runs on "main" so only run one of these jobs at a time
- # otherwise it will fail if one is already running
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- needs: build
- # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
- permissions:
- pages: write # to deploy to Pages
- id-token: write # to verify the deployment originates from an appropriate source
- # Deploy to the github-pages environment
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
|