From 44eddd39d68c57844cb3ac8d9c973fb0d6b36d55 Mon Sep 17 00:00:00 2001 From: ccurme Date: Fri, 27 Sep 2024 15:39:14 -0400 Subject: [PATCH] infra[patch]: update notebooks workflow (#26956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addressing some lingering comments from https://github.com/langchain-ai/langchain/pull/26944, adding parameters for - python version - working directory ![Screenshot 2024-09-27 at 3 33 21 PM](https://github.com/user-attachments/assets/dfa45772-fddb-4489-a148-c9ed83d844d0) --- .github/workflows/run_notebooks.yml | 15 +++++++++++---- docs/scripts/execute_notebooks.sh | 11 +++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.github/workflows/run_notebooks.yml b/.github/workflows/run_notebooks.yml index 6750612b4850c..14c70f779bf63 100644 --- a/.github/workflows/run_notebooks.yml +++ b/.github/workflows/run_notebooks.yml @@ -2,11 +2,19 @@ name: Run notebooks on: workflow_dispatch: + inputs: + python_version: + description: 'Python version' + required: false + default: '3.11' + working-directory: + description: 'Working directory or subset (e.g., docs/docs/tutorials/llm_chain.ipynb)' + required: false + default: 'all' schedule: - cron: '0 13 * * *' env: - PYTHON_VERSION: "3.11" POETRY_VERSION: "1.7.1" jobs: @@ -20,7 +28,7 @@ jobs: - name: Set up Python + Poetry ${{ env.POETRY_VERSION }} uses: "./.github/actions/poetry_setup" with: - python-version: ${{ env.PYTHON_VERSION }} + python-version: ${{ github.event.inputs.python_version || '3.11' }} poetry-version: ${{ env.POETRY_VERSION }} working-directory: ${{ inputs.working-directory }} cache-key: run-notebooks @@ -43,7 +51,6 @@ jobs: - name: Prepare notebooks run: | - python docs/scripts/prepare_notebooks_for_ci.py --comment-install-cells - name: Run notebooks @@ -53,4 +60,4 @@ jobs: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} TAVILY_API_KEY: ${{ secrets.TAVILY_API_KEY }} run: | - ./docs/scripts/execute_notebooks.sh + ./docs/scripts/execute_notebooks.sh ${{ github.event.inputs.working-directory || 'all' }} diff --git a/docs/scripts/execute_notebooks.sh b/docs/scripts/execute_notebooks.sh index a2442ac7ff9bd..8ac1cdb918281 100755 --- a/docs/scripts/execute_notebooks.sh +++ b/docs/scripts/execute_notebooks.sh @@ -3,6 +3,9 @@ # Read the list of notebooks to skip from the JSON file SKIP_NOTEBOOKS=$(python -c "import json; print('\n'.join(json.load(open('docs/notebooks_no_execution.json'))))") +# Get the working directory or specific notebook file from the input parameter +WORKING_DIRECTORY=$1 + # Function to execute a single notebook execute_notebook() { file="$1" @@ -22,8 +25,12 @@ execute_notebook() { export -f execute_notebook -# Find all notebooks and filter out those in the skip list -notebooks=$(find docs/docs/tutorials -name "*.ipynb" | grep -v ".ipynb_checkpoints" | grep -vFf <(echo "$SKIP_NOTEBOOKS")) +# Determine the list of notebooks to execute +if [ "$WORKING_DIRECTORY" == "all" ]; then + notebooks=$(find docs/docs/tutorials -name "*.ipynb" | grep -v ".ipynb_checkpoints" | grep -vFf <(echo "$SKIP_NOTEBOOKS")) +else + notebooks=$(find "$WORKING_DIRECTORY" -name "*.ipynb" | grep -v ".ipynb_checkpoints" | grep -vFf <(echo "$SKIP_NOTEBOOKS")) +fi # Execute notebooks sequentially for file in $notebooks; do