mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-17 21:25:46 +02:00
79 lines
2.5 KiB
YAML
79 lines
2.5 KiB
YAML
name: Run notebooks
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
workflow_call:
|
|
inputs:
|
|
changed-files:
|
|
required: false
|
|
type: string
|
|
description: "JSON string of changed files"
|
|
schedule:
|
|
- cron: '0 13 * * *'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
lib-version:
|
|
- "development"
|
|
- "latest"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up Python + Poetry
|
|
uses: "./.github/actions/poetry_setup"
|
|
with:
|
|
python-version: 3.11
|
|
poetry-version: 1.7.1
|
|
cache-key: test-langgraph-notebooks
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
poetry install --with test
|
|
poetry run pip install jupyter
|
|
|
|
- name: Start services
|
|
run: make start-services
|
|
|
|
- name: Pre-download tiktoken files
|
|
run: |
|
|
poetry run python docs/_scripts/download_tiktoken.py
|
|
|
|
- name: Prepare notebooks
|
|
run: |
|
|
if [ "${{ matrix.lib-version }}" = "development" ]; then
|
|
poetry run python docs/_scripts/prepare_notebooks_for_ci.py --comment-install-cells
|
|
else
|
|
poetry run python docs/_scripts/prepare_notebooks_for_ci.py
|
|
fi
|
|
|
|
- name: Run notebooks
|
|
env:
|
|
# these won't actually be used because of the VCR cassettes
|
|
# but need to set them to avoid triggering getpass()
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
TAVILY_API_KEY: ${{ secrets.TAVILY_API_KEY }}
|
|
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
|
|
NOMIC_API_KEY: ${{ secrets.NOMIC_API_KEY }}
|
|
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}
|
|
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
|
|
run: |
|
|
if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ "${{ github.event_name }}" = "schedule" ]; then
|
|
echo "Running all notebooks"
|
|
./docs/_scripts/execute_notebooks.sh
|
|
else
|
|
CHANGED_FILES=$(echo '${{ inputs.changed-files }}' | tr ' ' '\n' | grep '\.ipynb$' || true)
|
|
if [ -n "$CHANGED_FILES" ]; then
|
|
echo "Running changed notebooks: $CHANGED_FILES"
|
|
./docs/_scripts/execute_notebooks.sh $CHANGED_FILES
|
|
else
|
|
echo "No notebook files changed, skipping execution"
|
|
fi
|
|
fi
|
|
|
|
- name: Stop services
|
|
run: make stop-services
|