mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-21 18:02:24 +00:00
fix: run all clients on stainless SDK, fix workflow, properly commit recordings (#4410)
# What does this PR do?
Various fixes to integration test recording + stainless calling of
integration tests:
1. only the library client was being run, they all should be
2. the git check grabs diffs like:
M tests/integration/client-typescript/package-lock.json
M tests/integration/client-typescript/package.json
it should not
additionally:
Fixes rebase conflicts when stainless workflow runs integration tests
with
record-if-missing mode on PRs. Previously, the workflow would:
1. Commit all files in tests/integration/ (including non-recordings)
2. Try to rebase and push to 'main' instead of the PR branch
3. Fail with merge conflicts on PR-specific changes
Changes:
- Add pr_head_ref and is_fork_pr parameters flowing through workflow
chain
- Use target-branch input instead of github.ref_name in recording
commits
- Detect and handle fork PRs by skipping push and uploading recordings
as artifacts
- Add 7-day artifact retention for fork PR recordings
- Support both workflow_call and direct pull_request trigger contexts
For same-repo PRs: recordings now commit/push to the PR branch correctly
For fork PRs: recordings upload as downloadable artifacts with
instructions
you can see a failing workflow:
5846590613
with the rebase issues.
---------
Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
parent
5d52cb28c2
commit
e710622d4c
4 changed files with 62 additions and 11 deletions
11
.github/workflows/integration-tests.yml
vendored
11
.github/workflows/integration-tests.yml
vendored
|
|
@ -52,6 +52,15 @@ on:
|
|||
required: false
|
||||
type: string
|
||||
description: 'The SHA of the pull request head to checkout'
|
||||
pr_head_ref:
|
||||
required: false
|
||||
type: string
|
||||
description: 'The branch name of the pull request head (for recording commits)'
|
||||
is_fork_pr:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
description: 'Whether this is a fork PR (cannot push recordings to forks)'
|
||||
test-all-client-versions:
|
||||
required: false
|
||||
type: boolean
|
||||
|
|
@ -150,3 +159,5 @@ jobs:
|
|||
setup: ${{ matrix.config.setup }}
|
||||
inference-mode: ${{ matrix.config.inference_mode || 'replay' }}
|
||||
suite: ${{ matrix.config.suite }}
|
||||
target-branch: ${{ inputs.pr_head_ref || '' }}
|
||||
is-fork-pr: ${{ inputs.is_fork_pr && 'true' || (github.event.pull_request.head.repo.full_name != github.repository && 'true' || 'false') }}
|
||||
|
|
|
|||
6
.github/workflows/stainless-builds.yml
vendored
6
.github/workflows/stainless-builds.yml
vendored
|
|
@ -66,6 +66,7 @@ jobs:
|
|||
pr_base_sha: ${{ steps.compute.outputs.pr_base_sha }}
|
||||
pr_base_ref: ${{ steps.compute.outputs.pr_base_ref }}
|
||||
pr_title: ${{ steps.compute.outputs.pr_title }}
|
||||
is_fork_pr: ${{ steps.compute.outputs.is_fork_pr }}
|
||||
steps:
|
||||
- name: Fetch PR details for workflow_dispatch
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
|
|
@ -111,10 +112,12 @@ jobs:
|
|||
fi
|
||||
PREVIEW_BRANCH="preview/${FORK_OWNER}/${BRANCH_NAME}"
|
||||
BASE_BRANCH="preview/base/${FORK_OWNER}/${BRANCH_NAME}"
|
||||
IS_FORK_PR="true"
|
||||
else
|
||||
# Same-repo PR
|
||||
PREVIEW_BRANCH="preview/${BRANCH_NAME}"
|
||||
BASE_BRANCH="preview/base/${BRANCH_NAME}"
|
||||
IS_FORK_PR="false"
|
||||
fi
|
||||
|
||||
echo "preview_branch=${PREVIEW_BRANCH}" >> $GITHUB_OUTPUT
|
||||
|
|
@ -126,6 +129,7 @@ jobs:
|
|||
echo "pr_base_sha=${BASE_SHA}" >> $GITHUB_OUTPUT
|
||||
echo "pr_base_ref=${BASE_REF}" >> $GITHUB_OUTPUT
|
||||
echo "pr_title=${PR_TITLE}" >> $GITHUB_OUTPUT
|
||||
echo "is_fork_pr=${IS_FORK_PR}" >> $GITHUB_OUTPUT
|
||||
|
||||
preview:
|
||||
needs: compute-branch
|
||||
|
|
@ -182,6 +186,8 @@ jobs:
|
|||
matrix_key: 'stainless'
|
||||
test-all-client-versions: false
|
||||
pr_head_sha: ${{ needs.compute-branch.outputs.pr_head_sha }}
|
||||
pr_head_ref: ${{ needs.compute-branch.outputs.pr_head_ref }}
|
||||
is_fork_pr: ${{ needs.compute-branch.outputs.is_fork_pr == 'true' }}
|
||||
|
||||
merge:
|
||||
needs: compute-branch
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue