Enhance CI configuration and testing setup - #127
Merged
Conversation
- Updated CI workflow to run the full lane on every pull request, improving test coverage and stability. - Modified `test:ci:full` command in `package.json` to streamline testing processes. - Added Vitest configuration for forked pools to stabilize coverage runs. - Enhanced documentation in `README.md` and `CHANGELOG.md` to reflect changes in CI processes and testing requirements. - Introduced new unit tests for Matrix client mocks to improve test reliability and maintainability.
- Restored ownership of the data directory after running `synapse generate` to ensure `homeserver.yaml` overrides are writable, addressing GitHub Actions EACCES errors. - Updated CHANGELOG to document this fix and its impact on CI processes.
- Modified E2E testing scripts in `package.json` to ensure the third argument for `start-server-and-test` is an npm script name, fixing issues in local and CI environments. - Added a new section in `README.md` detailing the current state of test layers, including unit, integration, and E2E tests, along with coverage statistics and integration gaps. - Updated `CHANGELOG.md` to document these changes and their impact on testing processes.
- Updated E2E testing scripts to run Cucumber tests via Node, improving compatibility on Windows and simplifying execution. - Restored UID ownership for Synapse E2E data directory after configuration patching to ensure proper access to signing keys. - Merged E2E environment files for streamlined configuration management. - Enhanced CHANGELOG to document these updates and their implications for testing processes.
- Introduced new E2E login testing scripts to support isolated authentication scenarios, improving test coverage for login processes. - Updated `package.json` to include new npm scripts for running login-specific E2E tests. - Enhanced `README.md` with instructions for executing the new login tests. - Refactored `useMatrixClient` to ensure that the localpart of the username is used during login, improving compatibility with various username formats. - Updated environment configuration to support new login credentials and ensure proper setup for E2E tests. - Documented these changes in the CHANGELOG to reflect the enhancements in E2E testing and login functionality.
- Added entries to CHANGELOG for recent improvements in E2E login functionality, including a shared `matrixClientTestDoubles` factory for unit tests. - Implemented Vitest configuration changes to prevent mock races during tests, ensuring consistent test results. - Enhanced E2E tests to include new scenarios for user presence and room unread states, improving overall test coverage. - Introduced data-testid attributes in UI components to facilitate more reliable testing. - Updated various test scripts to improve robustness and maintainability, including adjustments to timeout settings for better performance.
- Updated CHANGELOG to reflect recent improvements, including the quarantine of unstable E2E scenarios for dedicated follow-up. - Refactored chat timeline utilities to introduce `isDecryptableChatMessageEvent` and `readChatMessageContent`, enhancing message handling for encrypted events. - Improved typing indicator functionality by adding a sync handler for better responsiveness. - Enhanced E2E tests with adjustments to timeout settings and added checks for visibility of UI elements, ensuring more robust testing. - Updated test scripts to exclude WIP scenarios from the main test runs, streamlining the testing process.
- Added logging functionality to track steps during the seeding process, improving visibility into the execution flow. - Enhanced error handling in the `run-synapse-e2e.mjs` script to provide clearer output when environment variables are missing. - Updated `runtime-seed-synapse.mjs` to log significant actions, such as user registration and room creation, aiding in debugging and monitoring. - Improved overall robustness of E2E tests by ensuring that critical steps are logged for better traceability.
- Updated the E2E seeding scripts to wait for both the registration API and versions endpoint to be ready before proceeding, improving reliability in CI environments. - Implemented retry logic for transient errors during seed requests, enhancing robustness against network issues. - Enhanced logging for better visibility into the seeding process and error handling, aiding in debugging and monitoring. - Updated CHANGELOG to reflect these improvements and their impact on E2E testing processes.
- Updated the E2E seeding scripts to include enhanced error handling for transient seed failures, improving robustness during CI runs. - Implemented logging for seed process failures and added a warm-up function for the registration API, ensuring readiness before proceeding with tests. - Enhanced the `isSynapseReadyForSeed` function to probe both client registration and shared-secret endpoints, improving readiness checks. - Updated CHANGELOG to reflect these enhancements and their impact on E2E testing processes.
…handling - Updated the `isSynapseReadyForSeed` function to utilize a timeout mechanism for fetching readiness status, enhancing reliability during CI runs. - Removed the warm-up function for the registration API, streamlining the seeding process while ensuring readiness through improved checks. - Enhanced error handling in the seeding scripts to better manage transient errors and improve logging for debugging. - Updated CHANGELOG to reflect these changes and their impact on E2E testing processes.
mjkatgithub
commented
Jun 15, 2026
- Added entries for improvements in Synapse E2E on Linux CI, including data-dir ownership restoration and fixes for `start-server-and-test` arguments. - Documented updates to E2E login functionality, unit tests, and CI lane results, ensuring clarity on recent changes and their impact on testing processes. - Included details on the handling of unstable E2E scenarios and improvements in seeding scripts for better reliability and error management.
- Added detailed guidelines for logging user-visible changes in the CHANGELOG, emphasizing the correct placement and formatting of entries under `[Unreleased]`. - Updated the issue documentation checklist to reflect the new requirements for CHANGELOG entries, ensuring clarity on how to document changes effectively.
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.
test:ci:fullcommand inpackage.jsonto streamline testing processes.README.mdandCHANGELOG.mdto reflect changes in CI processes and testing requirements.