ci: record-if-missing when coming from stainless (#4408)

# What does this PR do?

we will typically need to record the missing json for net new APIs. use
record-if-missing so that the integration tests can re-record and commit
the files to the PR

set the stainless inference mode to record-if-missing, and properly pass
the pr_head_sha on workflow_call.

## Test Plan

see 2031824567
which uses this commit.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-12-18 12:40:14 -05:00 committed by GitHub
parent 2d149e3d2d
commit 5d52cb28c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 4 deletions

View file

@ -48,6 +48,10 @@ on:
type: string
default: 'default'
description: 'Matrix configuration key from ci_matrix.json (e.g., "default", "stainless")'
pr_head_sha:
required: false
type: string
description: 'The SHA of the pull request head to checkout'
test-all-client-versions:
required: false
type: boolean
@ -67,6 +71,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ inputs.pr_head_sha || github.event.pull_request.head.sha || github.sha }}
- name: Generate test matrix
id: set-matrix
@ -100,6 +106,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ inputs.pr_head_sha || github.event.pull_request.head.sha || github.sha }}
- name: Setup test environment
if: ${{ matrix.config.allowed_clients == null || contains(matrix.config.allowed_clients, matrix.client) }}
@ -110,7 +118,7 @@ jobs:
sdk_install_url: ${{ inputs.sdk_install_url || '' }}
setup: ${{ matrix.config.setup }}
suite: ${{ matrix.config.suite }}
inference-mode: 'replay'
inference-mode: ${{ matrix.config.inference_mode || 'replay' }}
- name: Setup Node.js for TypeScript client tests
if: ${{ matrix.client == 'server' }}
@ -140,5 +148,5 @@ jobs:
|| (matrix.client == 'server' && 'server:ci-tests')
|| 'docker:ci-tests' }}
setup: ${{ matrix.config.setup }}
inference-mode: 'replay'
inference-mode: ${{ matrix.config.inference_mode || 'replay' }}
suite: ${{ matrix.config.suite }}

View file

@ -181,6 +181,7 @@ jobs:
sdk_install_url: ${{ inputs.sdk_install_url || needs.preview.outputs.sdk_install_url }}
matrix_key: 'stainless'
test-all-client-versions: false
pr_head_sha: ${{ needs.compute-branch.outputs.pr_head_sha }}
merge:
needs: compute-branch