From 79f048b860e4d027c05c7a3684596d4d28ae902a Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Fri, 27 Sep 2024 09:47:43 -0700 Subject: [PATCH] infra: api docs build (#26948) --- .github/workflows/api_doc_build.yml | 134 ++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 .github/workflows/api_doc_build.yml diff --git a/.github/workflows/api_doc_build.yml b/.github/workflows/api_doc_build.yml new file mode 100644 index 00000000000000..53969996e3ff24 --- /dev/null +++ b/.github/workflows/api_doc_build.yml @@ -0,0 +1,134 @@ +name: API docs build + +on: + workflow_dispatch: + schedule: + - cron: '0 13 * * *' +env: + POETRY_VERSION: "1.8.1" + PYTHON_VERSION: "3.11" + +jobs: + build: + runs-on: ubuntu-latest + permissions: write-all + steps: + - uses: actions/checkout@v4 + with: + path: langchain + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-api-docs-html + ref: ${{ github.ref_name }} + path: langchain-api-docs-html + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-google + path: langchain-google + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-datastax + path: langchain-datastax + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-nvidia + path: langchain-nvidia + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-cohere + path: langchain-cohere + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-elastic + path: langchain-elastic + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-postgres + path: langchain-postgres + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-aws + path: langchain-aws + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-weaviate + path: langchain-weaviate + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-ai21 + path: langchain-ai21 + - uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain-together + path: langchain-together + + - name: Set Git config + working-directory: langchain + run: | + git config --local user.email "actions@github.com" + git config --local user.name "Github Actions" + + - name: Move google libs + run: | + rm -rf \ + langchain/libs/partners/google-genai \ + langchain/libs/partners/google-vertexai \ + langchain/libs/partners/astradb \ + langchain/libs/partners/nvidia-trt \ + langchain/libs/partners/nvidia-ai-endpoints \ + langchain/libs/partners/cohere \ + langchain/libs/partners/elasticsearch \ + langchain/libs/partners/upstage \ + langchain/libs/partners/ai21 \ + langchain/libs/partners/together \ + langchain/libs/standard-tests + mv langchain-google/libs/genai langchain/libs/partners/google-genai + mv langchain-google/libs/vertexai langchain/libs/partners/google-vertexai + mv langchain-google/libs/community langchain/libs/partners/google-community + # mv langchain-datastax/libs/astradb langchain/libs/partners/astradb + # mv langchain-nvidia/libs/ai-endpoints langchain/libs/partners/nvidia-ai-endpoints + mv langchain-cohere/libs/cohere langchain/libs/partners/cohere + mv langchain-elastic/libs/elasticsearch langchain/libs/partners/elasticsearch + mv langchain-postgres langchain/libs/partners/postgres + mv langchain-aws/libs/aws langchain/libs/partners/aws + mv langchain-weaviate/libs/weaviate langchain/libs/partners/weaviate + mv langchain-ai21/libs/ai21 langchain/libs/partners/ai21 + mv langchain-together/libs/together langchain/libs/partners/together + + - name: Rm old html + run: + rm -rf langchain-api-docs-html/api_reference_build/html + + - name: Set up Python ${{ env.PYTHON_VERSION }} + Poetry ${{ env.POETRY_VERSION }} + uses: "./langchain/.github/actions/poetry_setup" + with: + python-version: ${{ env.PYTHON_VERSION }} + poetry-version: ${{ env.POETRY_VERSION }} + cache-key: api-docs + working-directory: langchain + + - name: Install dependencies + working-directory: langchain + run: | + python -m pip install -U uv + python -m uv pip install --upgrade --no-cache-dir pip setuptools + # skip airbyte and ibm due to pandas dependency issue + python -m uv pip install $(ls ./libs/partners | grep -vE "airbyte|ibm" | xargs -I {} echo "./libs/partners/{}") + python -m uv pip install libs/core libs/langchain libs/text-splitters libs/community libs/experimental + python -m uv pip install -r docs/api_reference/requirements.txt + + - name: Build docs + working-directory: langchain + run: | + python docs/api_reference/create_api_rst.py + python -m sphinx -T -E -b html -d ../langchain-api-docs-html/_build/doctrees -c docs/api_reference docs/api_reference ../langchain-api-docs-html/api_reference_build/html -j auto + python docs/api_reference/scripts/custom_formatter.py ../langchain-api-docs-html/api_reference_build/html + # Default index page is blank so we copy in the actual home page. + cp ../langchain-api-docs-html/api_reference_build/html/{reference,index}.html + rm -rf ../langchain-api-docs-html/_build/ + + # https://github.com/marketplace/actions/add-commit + - uses: EndBug/add-and-commit@v9 + with: + cwd: langchain-api-docs-html + message: 'Update API docs build' \ No newline at end of file