Loading...
Loading...
Use when generating multiple SDK variants from one repository. Covers workflow.yaml multi-target configuration, per-target gen.yaml, monorepo structure, versioning strategies. Triggers on "multi-target SDK", "multiple SDK variants", "Azure SDK variant", "GCP SDK", "cloud-specific SDK", "SDK monorepo".
npx skill4agent add speakeasy-api/agent-skills orchestrate-multi-target-sdksworkflow.yamlworkflowVersion: 1.0.0
speakeasyVersion: latest
sources:
main-source:
inputs:
- location: registry.speakeasyapi.dev/org/repo/main-openapi:main
azure-source:
inputs:
- location: registry.speakeasyapi.dev/org/repo/azure-openapi:main
targets:
main-sdk:
target: typescript
source: main-source
output: ./
azure-sdk:
target: typescript
source: azure-source
output: ./packages/azuremy-multi-sdk/
├── .speakeasy/
│ ├── workflow.yaml # Multi-target config
│ └── gen.yaml # Main SDK config
├── src/ # Main SDK source
├── packages/
│ ├── azure/
│ │ ├── .speakeasy/
│ │ │ └── gen.yaml # Azure-specific config
│ │ └── src/
│ └── gcp/
│ ├── .speakeasy/
│ │ └── gen.yaml # GCP-specific config
│ └── src/
├── .github/workflows/
│ ├── sdk_generation_main.yaml
│ ├── sdk_generation_azure.yaml
│ └── sdk_generation_gcp.yaml
└── package.json# packages/azure/.speakeasy/gen.yaml
configVersion: 2.0.0
generation:
sdkClassName: MySDKAzure
typescript:
version: 1.0.0
packageName: '@myorg/mysdk-azure'
envVarPrefix: MYSDK_AZURE| Variant | Package Name | Class Name |
|---|---|---|
| Main | | |
| Azure | | |
| GCP | | |
# .github/workflows/sdk_generation_azure.yaml
name: Generate Azure SDK
on:
workflow_dispatch:
inputs:
force:
type: boolean
default: false
jobs:
generate:
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
with:
target: azure-sdk
mode: pr
secrets:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}# Independent versioning
# Main: version: 2.1.0
# Azure: version: 1.8.0
# GCP: version: 1.3.0shared/
├── package.json # @myorg/mysdk-shared
└── src/
└── hooks.ts| Issue | Solution |
|---|---|
| Wrong target generated | Specify |
| Config not found | Ensure |
| Circular dependencies | Use workspace protocols in package.json |
start-new-sdk-projectconfigure-sdk-optionsmanage-openapi-overlaysorchestrate-multi-repo-sdks