[FER-3590] Design wire tests #9438
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/[email protected] | |
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/[email protected] | |
- 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/*" |