From 65f439dd93c68606ecd22cf80e787aa350a612fe Mon Sep 17 00:00:00 2001 From: Chester Curme Date: Fri, 27 Sep 2024 15:22:50 -0400 Subject: [PATCH] add working-directory parameter --- .github/workflows/run_notebooks.yml | 6 +++++- docs/scripts/execute_notebooks.sh | 11 +++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run_notebooks.yml b/.github/workflows/run_notebooks.yml index f681b024d7bb0..fa8fe40039629 100644 --- a/.github/workflows/run_notebooks.yml +++ b/.github/workflows/run_notebooks.yml @@ -7,6 +7,10 @@ on: description: 'Python version' required: false default: '3.11' + working-directory: + description: 'Working directory or specific notebook file' + required: false + default: 'all' schedule: - cron: '0 13 * * *' @@ -56,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