mirror of
https://github.com/BerriAI/litellm.git
synced 2026-08-28 05:25:59 +00:00
48 lines
2.1 KiB
YAML
48 lines
2.1 KiB
YAML
name: "Detect backend-relevant changes"
|
|
description: >-
|
|
Classify the pull request's changed files with .circleci/scripts/classify_changes.sh
|
|
and expose decision=run|skip. decision=skip means only ui/**, **.md or **.mdx files
|
|
changed, so callers can short-circuit expensive steps while the job still completes
|
|
successfully and satisfies its required status check. The decision defaults to run for
|
|
any non pull_request event or whenever the changed set cannot be resolved, so tests are
|
|
never skipped when the classification is uncertain.
|
|
|
|
outputs:
|
|
decision:
|
|
description: "run when backend-relevant files changed, otherwise skip"
|
|
value: ${{ steps.classify.outputs.decision }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- id: classify
|
|
shell: bash
|
|
env:
|
|
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
|
run: |
|
|
set -uo pipefail
|
|
if [ -z "${BASE_SHA:-}" ]; then
|
|
echo "detect-backend-changes: not a pull_request event; running job"
|
|
echo "decision=run" >> "${GITHUB_OUTPUT}"
|
|
exit 0
|
|
fi
|
|
if ! git fetch --no-tags --depth=1 origin "${BASE_SHA}" >/dev/null 2>&1; then
|
|
echo "detect-backend-changes: could not fetch base ${BASE_SHA}; running job"
|
|
echo "decision=run" >> "${GITHUB_OUTPUT}"
|
|
exit 0
|
|
fi
|
|
changed="$(git diff --name-only "${BASE_SHA}" HEAD 2>/dev/null)" || {
|
|
echo "detect-backend-changes: git diff failed; running job"
|
|
echo "decision=run" >> "${GITHUB_OUTPUT}"
|
|
exit 0
|
|
}
|
|
if [ -z "${changed}" ]; then
|
|
echo "detect-backend-changes: no changed files vs ${BASE_SHA}; skipping job"
|
|
echo "decision=skip" >> "${GITHUB_OUTPUT}"
|
|
exit 0
|
|
fi
|
|
echo "detect-backend-changes: changed files vs ${BASE_SHA}:"
|
|
printf '%s\n' "${changed}" | sed 's/^/ /'
|
|
decision="$(printf '%s\n' "${changed}" | bash .circleci/scripts/classify_changes.sh backend)" || decision="run"
|
|
echo "detect-backend-changes: decision=${decision}"
|
|
echo "decision=${decision}" >> "${GITHUB_OUTPUT}"
|