ci(infra): add exclude input to skip libs in scheduled integration tests (#37902)

This commit is contained in:
Mason Daugherty
2026-06-04 13:55:02 -04:00
committed by GitHub
parent 3b999176c8
commit be2e8f70bc

View File

@@ -5,7 +5,7 @@
# Runs daily with the option to trigger manually. # Runs daily with the option to trigger manually.
name: "⏰ Integration Tests" name: "⏰ Integration Tests"
run-name: "Run Integration Tests - ${{ inputs.working-directory-override || (inputs.working-directory != 'all' && inputs.working-directory) || 'all libs' }} (Python ${{ inputs.python-version-override || '3.10, 3.13' }})" run-name: "Run Integration Tests - ${{ inputs.working-directory-override || (inputs.working-directory != 'all' && inputs.working-directory) || (inputs.exclude != '' && format('exclude:{0}', inputs.exclude)) || 'all libs' }} (Python ${{ inputs.python-version-override || '3.10, 3.13' }})"
on: on:
workflow_dispatch: workflow_dispatch:
@@ -47,6 +47,9 @@ on:
working-directory-override: working-directory-override:
type: string type: string
description: "Manual override — takes precedence over dropdown (e.g. libs/partners/partner-xyz)" description: "Manual override — takes precedence over dropdown (e.g. libs/partners/partner-xyz)"
exclude:
type: string
description: "Comma-separated short names to drop from the 'all' run (e.g. openai,anthropic). Ignored unless dropdown is 'all' and no working-directory-override is set."
python-version-override: python-version-override:
type: string type: string
description: "Python version override — defaults to 3.10 and 3.13 in matrix (e.g. 3.11)" description: "Python version override — defaults to 3.10 and 3.13 in matrix (e.g. 3.11)"
@@ -89,6 +92,7 @@ jobs:
WORKING_DIRECTORY_OVERRIDE: ${{ github.event.inputs.working-directory-override || '' }} WORKING_DIRECTORY_OVERRIDE: ${{ github.event.inputs.working-directory-override || '' }}
WORKING_DIRECTORY_CHOICE: ${{ github.event.inputs.working-directory || 'all' }} WORKING_DIRECTORY_CHOICE: ${{ github.event.inputs.working-directory || 'all' }}
PYTHON_VERSION_OVERRIDE: ${{ github.event.inputs.python-version-override || '' }} PYTHON_VERSION_OVERRIDE: ${{ github.event.inputs.python-version-override || '' }}
EXCLUDE: ${{ github.event.inputs.exclude || '' }}
run: | run: |
# echo "matrix=..." where matrix is a json formatted str with keys python-version and working-directory # echo "matrix=..." where matrix is a json formatted str with keys python-version and working-directory
# python-version defaults to 3.10 and 3.13, overridden to [PYTHON_VERSION_OVERRIDE] if set # python-version defaults to 3.10 and 3.13, overridden to [PYTHON_VERSION_OVERRIDE] if set
@@ -117,6 +121,28 @@ jobs:
working_directory="[\"libs/partners/$WORKING_DIRECTORY_CHOICE\"]" working_directory="[\"libs/partners/$WORKING_DIRECTORY_CHOICE\"]"
;; ;;
esac esac
elif [ -n "$EXCLUDE" ]; then
# Only honored on the 'all' run (no override, dropdown left at 'all').
# Map each comma-separated short name to its full path (mirroring the
# case statement above), then subtract from the DEFAULT_LIBS array.
exclude_paths='[]'
IFS=',' read -ra exclude_names <<< "$EXCLUDE"
for name in "${exclude_names[@]}"; do
# Trim surrounding whitespace so "openai, anthropic" works.
name="${name#"${name%%[![:space:]]*}"}" # ltrim
name="${name%"${name##*[![:space:]]}"}" # rtrim
[ -z "$name" ] && continue
case "$name" in
core|langchain|langchain_v1|text-splitters|standard-tests|model-profiles)
path="libs/$name"
;;
*)
path="libs/partners/$name"
;;
esac
exclude_paths="$(jq -nc --argjson acc "$exclude_paths" --arg path "$path" '$acc + [$path]')"
done
working_directory="$(jq -nc --argjson libs "$working_directory" --argjson excl "$exclude_paths" '$libs - $excl')"
fi fi
matrix="{\"python-version\": $python_version, \"working-directory\": $working_directory}" matrix="{\"python-version\": $python_version, \"working-directory\": $working_directory}"
echo "$matrix" echo "$matrix"