mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 09:53:45 +00:00
feat(api): oasdiff OpenAI openAPI spec against ours
diff the `/v1/` routes that are OpenAI compatible against the OpenAI openAPI spec. This will of course only trigger on PRs where the spec is changed. This will catch errors with new handwritten additions to our openAI compat routes. Instead of fetching the OpenAPI spec from a dynamic URL, which could cause non-deterministic build failures, this change uses a local copy stored at `docs/static/openai-spec-2.3.0.yml`. This makes the conformance check fully reproducible and prevents CI failures caused by uncontrolled upstream changes. Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
parent
b83184f7ef
commit
2b187cb309
3 changed files with 66760 additions and 0 deletions
18
.github/workflows/conformance.yml
vendored
18
.github/workflows/conformance.yml
vendored
|
|
@ -64,6 +64,7 @@ jobs:
|
|||
ref: ${{ github.event.pull_request.base.ref }}
|
||||
path: 'base'
|
||||
|
||||
|
||||
# Cache oasdiff to avoid checksum failures and speed up builds
|
||||
- name: Cache oasdiff
|
||||
if: steps.skip-check.outputs.skip != 'true'
|
||||
|
|
@ -136,6 +137,23 @@ jobs:
|
|||
run: |
|
||||
oasdiff breaking --fail-on ERR $BASE_SPEC $CURRENT_SPEC --match-path '^/v1/'
|
||||
|
||||
# Run oasdiff to detect breaking changes in the API specification when compared to the OpenAI openAPI spec
|
||||
- name: Run OpenAPI Breaking Change Diff Against OpenAI API
|
||||
if: steps.skip-check.outputs.skip != 'true'
|
||||
continue-on-error: true
|
||||
shell: bash
|
||||
run: |
|
||||
OPENAI_SPEC=docs/static/openai-spec-2.3.0.yml
|
||||
LLAMA_STACK_SPEC=docs/static/llama-stack-spec.yaml
|
||||
|
||||
# Compare Llama Stack spec against OpenAI spec.
|
||||
# This finds breaking changes in our implementation of common endpoints.
|
||||
# By using our spec as the base, we avoid errors for endpoints we don't implement.
|
||||
oasdiff breaking --fail-on ERR \
|
||||
"$LLAMA_STACK_SPEC" \
|
||||
"$OPENAI_SPEC" \
|
||||
--strip-prefix-base "/v1"
|
||||
|
||||
# Report when test is skipped
|
||||
- name: Report skip reason
|
||||
if: steps.skip-check.outputs.skip == 'true'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue