ci: dynamically wait for healthy services before running Cypress tests#76
Merged
Conversation
5 tasks
Contributor
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
Merge update
fix: create embedder nginx endpoint
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR enhances the CI pipeline to dynamically detect and wait for all *_service containers to be healthy before running Cypress integration tests. This prevents flakiness due to services not being ready and ensures the system under test is fully initialized before testing begins.
Address #75
Changes Made
Added a step in
.github/workflows/integration-test.ymlto:_servicedocker compose ps --format jsonandjq/healthendpoints for eachIntroduced timeout logic to fail fast if any service does not respond with HTTP 200
Updated Cypress
wait-ontarget tohttp://localhost:8501to reflect frontend portContext / Rationale
Previously, Cypress would run as soon as Docker Compose finished launching services — even if some were still initializing. This led to sporadic test failures, especially when backend services were not yet ready. By dynamically checking readiness for all
_servicecontainers, we eliminate this race condition and make CI runs more reliable and maintainable, especially as new services are added.Related Docs or References
docker compose psjqused to parse compose outputcypress-io/github-actionGeneral Checklist