-
Notifications
You must be signed in to change notification settings - Fork 467
Add STT E2E workflow for testing STT adapters #2131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-Authored-By: yujonglee <[email protected]>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
✅ Deploy Preview for hyprnote-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for hyprnote ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughA new GitHub Actions workflow is introduced that enables end-to-end testing of speech-to-text adapters. The workflow accepts a provider selection as input, runs batch and live test jobs on Ubuntu, and executes cargo tests within an Infisical environment for the owhisper-client adapter targeting the specified provider. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes
Possibly related PRs
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/stt_e2e.yaml (1)
16-31: Consolidate batch and live jobs using a job matrix.The batch and live jobs are nearly identical, differing only in the test target. This duplication violates the DRY principle and makes maintenance harder. Consolidate them using a GitHub Actions job matrix.
Apply this refactor to use a job matrix:
jobs: - batch: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/rust_install - with: - platform: linux - - run: infisical run --env=dev --projectId=87dad7b5-72a6-4791-9228-b3b86b169db1 --path="/stt" -- cargo test -p owhisper-client adapter::${{ inputs.provider }}::batch --ignored -- --nocapture - live: + test: + strategy: + matrix: + test_target: [batch, live] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ./.github/actions/rust_install with: platform: linux - - run: infisical run --env=dev --projectId=87dad7b5-72a6-4791-9228-b3b86b169db1 --path="/stt" -- cargo test -p owhisper-client adapter::${{ inputs.provider }}::live --ignored -- --nocapture + - run: infisical run --env=dev --projectId=87dad7b5-72a6-4791-9228-b3b86b169db1 --path="/stt" -- cargo test -p owhisper-client adapter::${{ inputs.provider }}::${{ matrix.test_target }} --ignored -- --nocaptureThis eliminates duplication and makes the workflow easier to maintain.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/stt_e2e.yaml(1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.9)
.github/workflows/stt_e2e.yaml
20-20: description is required in metadata of "" action at "/home/jailuser/git/.github/actions/rust_install/action.yaml"
(action)
20-20: name is required in action metadata "/home/jailuser/git/.github/actions/rust_install/action.yaml"
(action)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: Redirect rules - hyprnote
- GitHub Check: Devin
- GitHub Check: Header rules - hyprnote
- GitHub Check: Pages changed - hyprnote
- GitHub Check: fmt
🔇 Additional comments (3)
.github/workflows/stt_e2e.yaml (3)
1-14: Clean workflow trigger and input configuration.The workflow_dispatch trigger is appropriate for manual testing, and the provider input choices are well-defined.
20-20: Address missing metadata in referenced reusable action.The rust_install action is missing required metadata fields in its
action.yaml. Static analysis (actionlint) reports that bothnameanddescriptionare required.If the rust_install action is part of this PR, please add the missing metadata to
.github/actions/rust_install/action.yaml:name: Install Rust description: Installs Rust toolchain and dependencies for the specified platformIf this action is pre-existing and out of scope for this PR, this should be addressed in a separate issue.
Also applies to: 28-28
23-23: Externalize hardcoded Infisical projectId to GitHub secrets.The projectId
87dad7b5-72a6-4791-9228-b3b86b169db1is hardcoded in both jobs, which creates a maintainability risk and exposes infrastructure configuration in version control. Additionally, the env and path values are also hardcoded, reducing flexibility.Move the projectId to a GitHub organization or repository secret (e.g.,
INFISICAL_PROJECT_ID), and consider making env and path configurable:- - run: infisical run --env=dev --projectId=87dad7b5-72a6-4791-9228-b3b86b169db1 --path="/stt" -- cargo test -p owhisper-client adapter::${{ inputs.provider }}::batch --ignored -- --nocapture + - run: infisical run --env=dev --projectId=${{ secrets.INFISICAL_PROJECT_ID }} --path="/stt" -- cargo test -p owhisper-client adapter::${{ inputs.provider }}::batch --ignored -- --nocaptureAnd similarly for the live job (line 31).
Also applies to: 31-31
⛔ Skipped due to learnings
Learnt from: CR Repo: fastrepl/hyprnote PR: 0 File: apps/web/AGENTS.md:0-0 Timestamp: 2025-11-30T05:42:39.193Z Learning: Applies to apps/web/.env : Use infisical export command to generate .env files for the web app, with parameters: --env=dev, --secret-overriding=false, --format=dotenv, --output-file pointing to apps/web/.env, projectId=87dad7b5-72a6-4791-9228-b3b86b169db1, and --path=/web
Summary
Adds a new GitHub Actions workflow
stt_e2e.yamlfor running end-to-end tests against STT (speech-to-text) provider adapters. The workflow is manually triggered viaworkflow_dispatchwith a provider selection input, and runs both batch and live tests using infisical for secrets management.Supported providers: deepgram, assemblyai, soniox, gladia, fireworks, openai
Review & Testing Checklist for Human
adapter::${{ inputs.provider }}::batchandadapter::${{ inputs.provider }}::livecorrectly match the test module paths (e.g.,owhisper_client::adapter::deepgram::live::tests::*)Notes