mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-05 08:07:05 +00:00
* ci: gate CircleCI jobs on changed paths Every CircleCI job used to run on every PR. Now each job starts with a lightweight `skip_if_unrelated_changes` step that inspects the PR diff and halts the job as successful when nothing relevant changed. Docs-only PRs (*.md, *.mdx, docs/) run nothing, UI-only PRs (ui/) run just the frontend jobs, and any backend change still runs both the backend and frontend jobs. The decision logic lives in .circleci/scripts/classify_changes.sh (pure, reads the changed-file list on stdin) so it can be unit tested, while path_filter.sh handles the git plumbing and fails open (runs the job) on any uncertainty such as a missing merge base or a non-PR pipeline. Halting via `circleci-agent step halt` keeps the job green, so required status checks are never left pending. The Windows smoke job is intentionally left ungated to avoid cross-platform shell fragility * fix(ci): keep path filter fail-open when classifier errors Guard the classify_changes.sh invocation with `|| run_full` so a broken or non-zero classifier runs the job instead of falling through to a silent halt, and mark the advisory logging pipe best-effort with `|| true`. Add path_filter.sh regression tests covering the docs-only halt, backend run, non-PR fail-open, and classifier-failure fail-open paths
27 lines
557 B
Bash
Executable file
27 lines
557 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -uo pipefail
|
|
|
|
category="${1:?usage: classify_changes.sh <backend|client>}"
|
|
|
|
has_client=false
|
|
has_backend=false
|
|
while IFS= read -r file || [ -n "$file" ]; do
|
|
[ -n "$file" ] || continue
|
|
case "$file" in
|
|
ui/*) has_client=true ;;
|
|
docs/* | *.md | *.mdx) : ;;
|
|
*) has_backend=true ;;
|
|
esac
|
|
done
|
|
|
|
case "$category" in
|
|
backend)
|
|
[ "$has_backend" = true ] && echo run || echo skip
|
|
;;
|
|
client)
|
|
{ [ "$has_client" = true ] || [ "$has_backend" = true ]; } && echo run || echo skip
|
|
;;
|
|
*)
|
|
echo run
|
|
;;
|
|
esac
|