Skip to content

fix(cli): validated example generation #9760

fix(cli): validated example generation

fix(cli): validated example generation #9760

Workflow file for this run

name: seed
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_call:
# Cancel previous workflows on previous push
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest
outputs:
seed: ${{ steps.filter.outputs.seed }}
ruby: ${{ steps.filter.outputs.ruby }}
openapi: ${{ steps.filter.outputs.openapi }}
python: ${{ steps.filter.outputs.python }}
postman: ${{ steps.filter.outputs.postman }}
java: ${{ steps.filter.outputs.java }}
typescript: ${{ steps.filter.outputs.typescript }}
go: ${{ steps.filter.outputs.go }}
csharp: ${{ steps.filter.outputs.csharp }}
php: ${{ steps.filter.outputs.php }}
steps:
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
seed:
- '.github/workflows/seed.yml'
- 'packages/seed/**'
- 'test-definitions/**'
- 'packages/ir-sdk/fern/apis/**'
- 'packages/cli/generation/ir-generator/**'
ruby:
- 'generators/ruby/**'
- seed/ruby-sdk/seed.yml
- seed/ruby-model/seed.yml
openapi:
- 'generators/openapi/**'
- seed/openapi/seed.yml
python:
- 'generators/python/**'
- seed/pydantic/seed.yml
- seed/python-sdk/seed.yml
- seed/fastapi/seed.yml
postman:
- 'generators/postman/**'
- seed/postman/seed.yml
java:
- 'generators/java/**'
- seed/java-sdk/seed.yml
- seed/java-model/seed.yml
- seed/java-spring/seed.yml
typescript:
- 'generators/typescript/**'
- seed/ts-sdk/seed.yml
- seed/ts-express/seed.yml
go:
- 'generators/go/**'
- seed/go-sdk/seed.yml
- seed/go-model/seed.yml
- seed/go-fiber/seed.yml
csharp:
- 'generators/csharp/**'
- seed/csharp-sdk/seed.yml
- seed/csharp-model/seed.yml
php:
- 'generators/php/**'
- seed/php-sdk/seed.yml
- seed/php-model/seed.yml
ruby-model:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.ruby == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator ruby-model
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
ruby-sdk:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.ruby == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator ruby-sdk
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
pydantic-model:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.python == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Install Poetry
uses: snok/install-poetry@v1
- name: Install Dependencies
working-directory: ./generators/python
run: poetry install
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator pydantic
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
python-sdk:
runs-on: Seed
needs: changes
if: ${{ needs.changes.outputs.python == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Install Poetry
uses: snok/install-poetry@v1
- name: Install Dependencies
working-directory: ./generators/python
run: poetry install
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator python-sdk --parallel 10
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
fastapi:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.python == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Install Poetry
uses: snok/install-poetry@v1
- name: Install Dependencies
working-directory: ./generators/python
run: poetry install
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator fastapi
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
openapi:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.openapi == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator openapi
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
postman:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.postman == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator postman
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
java-sdk:
runs-on: Seed
needs: changes
if: ${{ needs.changes.outputs.java == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator java-sdk --parallel 10
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
java-model:
runs-on: Seed
needs: changes
if: ${{ needs.changes.outputs.java == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator java-model --parallel 10
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
java-spring:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.java == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator java-spring
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
typescript-sdk:
runs-on: Seed
needs: changes
if: ${{ needs.changes.outputs.typescript == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator ts-sdk --parallel 10
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
typescript-express:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.typescript == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator ts-express --parallel 10
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
go-fiber:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.go == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator go-fiber --parallel 16
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
go-model:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.go == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator go-model --parallel 16
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
go-sdk:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.go == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator go-sdk --parallel 16
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
csharp-model:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.csharp == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator csharp-model --parallel 16
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
csharp-sdk:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.csharp == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator csharp-sdk --parallel 16
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
php-model:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.php == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator php-model --parallel 8
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"
php-sdk:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.php == 'true' || needs.changes.outputs.seed == 'true' }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install
uses: ./.github/actions/install
- uses: bufbuild/buf-setup-action@v1.34.0
with:
github_token: ${{ github.token }}
- uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install protoc-gen-openapi
run: go install github.com/google/gnostic/cmd/protoc-gen-openapi@v0.7.0
- name: Seed Test
env:
FORCE_COLOR: "2"
run: |
pnpm seed:local test --generator php-sdk --parallel 8
- name: Ensure no changes to git-tracked files
run: git --no-pager diff --exit-code -- ":(exclude)seed/*/.mock/*"