From 34207cea3b156aceeae22af4c46cce4660938286 Mon Sep 17 00:00:00 2001 From: robert-j-y <212159665+robert-j-y@users.noreply.github.com> Date: Thu, 11 Jun 2026 09:56:50 -0700 Subject: [PATCH] ci: regenerate SDK directly on merged spec changes Spec updates land on main automatically, but the only generation trigger is the nightly cron in PR mode, whose rolling PRs require a manual merge (#205 sat open Apr 24 - Jun 11). Mirror typescript-sdk's spec-change workflow: when a PR touching .speakeasy/in.openapi.yaml merges to main, run Speakeasy in direct mode so the regenerated SDK lands on main. --- .../sdk_generation_for_spec_change.yaml | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/sdk_generation_for_spec_change.yaml diff --git a/.github/workflows/sdk_generation_for_spec_change.yaml b/.github/workflows/sdk_generation_for_spec_change.yaml new file mode 100644 index 00000000..30c733e4 --- /dev/null +++ b/.github/workflows/sdk_generation_for_spec_change.yaml @@ -0,0 +1,36 @@ +name: Generate (spec change merged) +permissions: + checks: write + contents: write + pull-requests: write + statuses: write + id-token: write +"on": + workflow_dispatch: + inputs: + force: + description: Force generation of SDKs + type: boolean + default: false + set_version: + description: optionally set a specific SDK version + type: string + pull_request: + types: [closed] + branches: + - main + paths: + - .speakeasy/in.openapi.yaml + +jobs: + generate: + if: github.event.pull_request.merged == true || github.event_name == 'workflow_dispatch' + uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15 + with: + force: ${{ github.event.inputs.force }} + mode: direct + set_version: ${{ github.event.inputs.set_version }} + secrets: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + pypi_token: ${{ secrets.PYPI_TOKEN }} + speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}