# Workflow that builds and deploys the documentation website name: Deploy Docs to GitHub Pages # Only run one workflow of the same group at a time. # There can be at most one running and one pending job in a concurrency group at any time. concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} # * Always run on "main" # * Run on PRs that target the "main" branch and have changes in the "docs" folder on: push: branches: - main pull_request: paths: - 'docs/**' branches: - main jobs: # Build the documentation website build: name: Build Docusaurus runs-on: ubuntu-latest if: github.repository == 'OpenDevin/OpenDevin' 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.11' - 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: name: Deploy to GitHub Pages runs-on: ubuntu-latest needs: build if: github.ref == 'refs/heads/main' && github.repository == 'OpenDevin/OpenDevin' # 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