Skip to content

Add comprehensive client verification workflow#17

Open
guysmoilov wants to merge 3 commits intomainfrom
add-client-verification-workflow
Open

Add comprehensive client verification workflow#17
guysmoilov wants to merge 3 commits intomainfrom
add-client-verification-workflow

Conversation

@guysmoilov
Copy link
Copy Markdown
Member

Summary

This PR adds a GitHub Actions workflow to automatically verify all generated API clients on PRs.

What it does

Runs automated checks for all 10 client languages:

  • Python: syntax, imports, flake8 linting
  • TypeScript: TypeScript compilation (tsc)
  • JavaScript: Node.js syntax checking
  • Java: Gradle build (without tests)
  • Go: Module initialization and build
  • C#: .NET build
  • Kotlin: Gradle build
  • Scala: Gradle/SBT detection
  • Swift: Package build or syntax check
  • R: Package structure and syntax validation

Benefits

  • Catch syntax errors and compilation issues before merging
  • Ensure auto-generated PRs from openapi-description updates are valid
  • Quick feedback on client generation quality
  • Each language runs independently as a separate job

Test Plan

  • Workflow triggers on PRs to main branch
  • Can also be triggered manually via workflow_dispatch
  • Each job will show pass/fail status independently

- Verify Python: syntax, imports, and flake8 linting
- Verify TypeScript: compilation with tsc
- Verify JavaScript: syntax checking
- Verify Java: Gradle build
- Verify Go: module initialization and build
- Verify C#: dotnet build
- Verify Kotlin: Gradle build
- Verify Scala: Gradle/SBT detection
- Verify Swift: Package.swift or syntax check
- Verify R: package structure and syntax

This workflow runs on all PRs to ensure auto-generated clients compile and pass basic sanity checks.
- Java/Scala: Add chmod +x for gradlew scripts
- C#: Use Windows runner with MSBuild for .NET Framework 4.5
- Go: Mark as continue-on-error (generated code has missing imports)
- Kotlin: Add chmod +x for gradlew, mark continue-on-error (Gradle compatibility)
These clients have issues in their generated code/build files:
- Java: Uses Gradle 2.6 which doesn't support Java 17
- C#: Targets .NET Framework 4.5 (not available)
- Kotlin: Gradle deprecated API usage
- Scala: Missing/corrupted Gradle wrapper jar
- Go: Missing imports in generated code

Marking as continue-on-error allows them to run and provide feedback
without blocking PRs. The 5 working clients (Python, TypeScript,
JavaScript, Swift, R) will still be required checks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant