mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-08 03:08:45 +00:00
detect-backend-changes diffed the event payload's base.sha against the checked-out ref. Those are two different points in time: actions/checkout resolves refs/pull/N/merge, and GitHub recomputes that ref whenever the base branch advances, so the diff picked up whatever landed on staging between the event firing and the job starting. On a recent UI-only pull request three backend commits from staging were attributed to the branch, and every backend shard ran in full Ask the API which files the pull request touches instead. That is the same set the Files changed tab shows, and it is immune to either endpoint moving. The shell body moves into .github/scripts/detect_backend_changes.sh so it can be exercised directly, and the fail-open paths now also cover an API failure, a file list past the API's 3000-entry listing ceiling, and a classifier that prints something unexpected
34 lines
1.5 KiB
YAML
34 lines
1.5 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 file list comes from the
|
|
pull request itself rather than from a git diff, because the checked-out merge ref is
|
|
recomputed as the base branch advances and would otherwise attribute the base
|
|
branch's own commits to the pull request. 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.
|
|
|
|
inputs:
|
|
github-token:
|
|
description: "Token used to list the pull request's files; needs pull-requests: read"
|
|
required: false
|
|
default: ${{ github.token }}
|
|
|
|
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:
|
|
GH_TOKEN: ${{ inputs.github-token }}
|
|
REPO: ${{ github.repository }}
|
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
CHANGED_FILE_COUNT: ${{ github.event.pull_request.changed_files }}
|
|
run: bash "${GITHUB_ACTION_PATH}/../../scripts/detect_backend_changes.sh"
|