mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-20 14:42:28 +02:00
+2








3055c4b9cc
Main changes made: - Add top level horizontal tabs - Reorganize the sidenav - Build out README/index page - Consolidate how-tos under each section - Remove duplicate content --------- Signed-off-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> Co-authored-by: Tat Dat Duong <david@duong.cz> Co-authored-by: Sydney Runkle <sydneymarierunkle@gmail.com> Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> Co-authored-by: Vadym Barda <vadym@langchain.dev> Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com> Co-authored-by: ccurme <chester.curme@gmail.com> Co-authored-by: Andrew Nguonly <andrewnguonly@users.noreply.github.com> Co-authored-by: David Asamu <david.asamu@langchain.dev> Co-authored-by: infra <mukil@langchain.dev> Co-authored-by: Arjun Natarajan <arjun@langchain.dev>
163 lines
6.0 KiB
YAML
163 lines
6.0 KiB
YAML
name: Deploy Docs
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
POETRY_VERSION: "2.1.2"
|
|
|
|
permissions:
|
|
contents: read
|
|
pages: write
|
|
id-token: write
|
|
|
|
concurrency:
|
|
group: "pages"
|
|
cancel-in-progress: false
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: docs
|
|
|
|
jobs:
|
|
get-changed-files:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
changed-files: ${{ steps.changed-files.outputs.added_modified }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: Ana06/get-changed-files@v2.3.0
|
|
with:
|
|
filter: "docs/docs/**"
|
|
|
|
# TODO: Uncomment this to run on PRs
|
|
# run-changed-notebooks:
|
|
# needs: get-changed-files
|
|
# uses: ./.github/workflows/run_notebooks.yml
|
|
# secrets: inherit
|
|
# with:
|
|
# changed-files: ${{ needs.get-changed-files.outputs.changed-files }}
|
|
|
|
deploy:
|
|
# needs: run-changed-notebooks
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10 # Job will be cancelled if it runs for more than 10 minutes
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.MKDOCS_GITHUB_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python + Poetry ${{ env.POETRY_VERSION }}
|
|
uses: "./.github/actions/poetry_setup"
|
|
with:
|
|
python-version: "3.12"
|
|
poetry-version: ${{ env.POETRY_VERSION }}
|
|
cache-key: docs
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
yarn
|
|
poetry install --with test --with docs --no-root
|
|
# we run this installation only for internal PRs
|
|
# as GITHUB_TOKEN is not available for PRs from outside contributors
|
|
if [ -n "${GITHUB_TOKEN}" ]; then
|
|
poetry run pip install "git+https://${GITHUB_TOKEN}@github.com/langchain-ai/mkdocs-material-insiders.git"
|
|
fi
|
|
|
|
- name: Run unit tests
|
|
# Run unit tests on the docs build pipeline
|
|
run: make tests
|
|
- name: Lint Docs
|
|
# This step lints the docs using the existing linting set up.
|
|
# It should be very fast and should not require any external services.
|
|
run: make lint-docs
|
|
- name: Build llms-text
|
|
run: make llms-text
|
|
- name: Build site
|
|
run: |
|
|
# If this is main branch, then we want to download stats. we do this
|
|
# with the env variable DOWNLOAD_STATS=true
|
|
if [ "${{ github.ref }}" == "refs/heads/main" ]; then
|
|
DOWNLOAD_STATS=true make build-docs
|
|
else
|
|
make build-docs
|
|
fi
|
|
env:
|
|
MKDOCS_GIT_COMMITTERS_APIKEY: ${{ secrets.MKDOCS_GIT_COMMITTERS_APIKEY }}
|
|
OPENAI_API_KEY: sf-proj-1234567890 # fake placeholder, shouldn't actually be used
|
|
ANTHROPIC_API_KEY: sk-ant-api03-1234567890 # fake placeholder, shouldn't actually be used
|
|
- name: Check links in notebooks
|
|
env:
|
|
LANGCHAIN_API_KEY: test
|
|
if: github.event_name == 'schedule'
|
|
run: |
|
|
if [ "${{ github.event_name }}" == "schedule" ]; then
|
|
echo "Running link check on all HTML files matching notebooks in docs directory..."
|
|
poetry run pytest -v \
|
|
--check-links-ignore "https://(api|web|docs)\.smith\.langchain\.com/.*" \
|
|
--check-links-ignore "https://academy\.langchain\.com/.*" \
|
|
--check-links-ignore "https://x.com/.*" \
|
|
--check-links-ignore "https://twitter.com/.*" \
|
|
--check-links-ignore "https://github\.com/.*" \
|
|
--check-links-ignore "http://localhost:8123/.*" \
|
|
--check-links-ignore "http://localhost:2024.*" \
|
|
--check-links-ignore "http://127.0.0.1:.*" \
|
|
--check-links-ignore "/.*\.(ipynb|html)$" \
|
|
--check-links-ignore "https://python\.langchain\.com/.*" \
|
|
--check-links-ignore "https://openai\.com/.*" \
|
|
--check-links-ignore "https://www\.uber\.com/.*" \
|
|
--check-links-ignore "https://pepy\.tech/.*" \
|
|
--check-links-ignore "docs/docs/static/wordmark_*" \
|
|
--check-links $(find site -name "index.html" | grep -v 'storm/index.html')
|
|
|
|
else
|
|
echo "Fetching changes from origin/main..."
|
|
git fetch origin main
|
|
echo "Checking for changed notebook files..."
|
|
CHANGED_FILES=$(git diff --name-only --diff-filter=d origin/main | grep 'docs/docs/.*\.ipynb$' | grep -v 'storm.ipynb' | sed -E 's|^docs/docs/|site/|; s/\.ipynb$/\/index.html/' || true)
|
|
echo "Changed files: ${CHANGED_FILES}"
|
|
if [ -n "${CHANGED_FILES}" ]; then
|
|
echo "Running link check on HTML files matching changed notebook files..."
|
|
poetry run pytest -v \
|
|
--check-links-ignore "https://(api|web|docs)\.smith\.langchain\.com/.*" \
|
|
--check-links-ignore "https://academy\.langchain\.com/.*" \
|
|
--check-links-ignore "http://localhost:8123/.*" \
|
|
--check-links-ignore "http://localhost:2024.*" \
|
|
--check-links-ignore "http://127.0.0.1:.*" \
|
|
--check-links-ignore "https://x.com/.*" \
|
|
--check-links-ignore "https://twitter.com/.*" \
|
|
--check-links-ignore "https://github\.com/.*" \
|
|
--check-links-ignore "/.*\.(ipynb|html)$" \
|
|
--check-links-ignore "docs/docs/static/wordmark_*" \
|
|
--check-links ${CHANGED_FILES} \
|
|
|| ([ $? = 5 ] && exit 0 || exit $?)
|
|
else
|
|
echo "No notebook files changed."
|
|
fi
|
|
fi
|
|
|
|
- name: Configure GitHub Pages
|
|
if: github.ref == 'refs/heads/main'
|
|
uses: actions/configure-pages@v4
|
|
|
|
- name: Upload Pages Artifact
|
|
# if: github.ref == 'refs/heads/main'
|
|
uses: actions/upload-pages-artifact@v3
|
|
with:
|
|
path: ./docs/site/
|
|
|
|
- name: Deploy to GitHub Pages
|
|
if: github.ref == 'refs/heads/main'
|
|
id: deployment
|
|
uses: actions/deploy-pages@v4
|