[rfc] langgraph: allow tools / ToolNode to modify state #4392
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Docs | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
workflow_dispatch: | |
env: | |
POETRY_VERSION: "1.7.1" | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
concurrency: | |
group: "pages" | |
cancel-in-progress: false | |
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/[email protected] | |
with: | |
filter: "docs/docs/**" | |
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 | |
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: | | |
poetry install --with test | |
poetry run pip install -U pytest pytest-check-links langsmith langchain GitPython | |
- 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 site | |
run: make build-docs | |
env: | |
MKDOCS_GIT_COMMITTERS_APIKEY: ${{ secrets.MKDOCS_GIT_COMMITTERS_APIKEY }} | |
- name: Check links in notebooks | |
env: | |
LANGCHAIN_API_KEY: test | |
run: | | |
if [ "${{ github.event_name }}" == "schedule" ] || [ "${{ github.event_name }}" == "workflow_dispatch" ] || ([ "${{ github.event_name }}" == "push" ] && [ "${{ github.ref }}" == "refs/heads/main" ]); 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://x.com/.*" \ | |
--check-links-ignore "https://github\.com/.*" \ | |
--check-links-ignore "/.*\.(ipynb|html)$" \ | |
--check-links-ignore "https://python\.langchain\.com/.*" \ | |
--check-links-ignore "https://openai.com/index/memory-and-new-controls-for-chatgpt/" \ | |
--check-links $(find docs/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/|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://x.com/.*" \ | |
--check-links-ignore "https://github\.com/.*" \ | |
--check-links-ignore "/.*\.(ipynb|html)$" \ | |
--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 |