-
Notifications
You must be signed in to change notification settings - Fork 0
ci: optimize race-soak workflow for faster CI execution #1
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
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
… detection - Introduced a new GitHub Actions workflow for running tests on Plexaubnet. - Configured to run on push and pull request events for the main branch. - Includes steps for setting up Go 1.22, installing envtest, running tests, generating coverage reports, and checking coverage thresholds. - Added detection for potential flaky tests with a warning message if issues are found.
- Added metric reset before starting the controller manager to prevent race conditions. - Updated comments for clarity on cache synchronization and metric capturing. - Ensured baseline metric values are captured after the manager has started for accurate testing.
- Introduced unit tests for BackoffConfig and IPAM configuration loading to ensure correct defaults and behavior. - Added tests for event emission in the CIDR allocator, verifying that expected events are triggered. - Implemented predicates for event filtering, ensuring only relevant events are processed. - Updated Makefile to filter test packages and adjusted coverage threshold in CI workflow.
…tionality - Updated comments in the race-soak workflow to provide clearer descriptions in English. - Upgraded the envtest setup from version 1 to version 2 in both race-soak and test workflows. - Changed the version format for envtest to a simplified version number. - Enhanced comments in the test workflow for coverage threshold checks and flaky test detection.
- Updated Go version from 1.22 to 1.24.2 in both race-soak and test workflows. - Improved envtest setup by consolidating commands and ensuring environment variables are correctly set. - Updated Kind installation to the latest version for better compatibility.
- Updated the context timeout in the TestListSubnetsPaged function from 5 seconds to 30 seconds to allow for longer execution times and reduce the likelihood of test failures due to timeout.
- Added build constraints to prevent race conditions in high load test and parallel standard test files, ensuring they are only built when the race detector is disabled.
- Adjusted the conditional statement for uploading the coverage artifact to ensure it only executes when the architecture is 'amd64'. This improves the clarity and functionality of the workflow.
…nditions - Introduced a comprehensive README for heap profile analysis, detailing commands for basic analysis, browser visualization, differential analysis, and automated scripts. - Added envtest helpers for race condition testing, including setup and teardown functions, client creation, and manager setup with disabled metrics and health probes.
…andard test - Added build constraints to the parallel standard test file to ensure it is only built when the race detector is disabled, enhancing test reliability.
…nditions - Replaced the global scheme with a private scheme in the TestEventEmitter function to ensure thread safety and avoid race conditions during concurrent test execution.
- Updated the envtest setup step to install the latest version of setup-envtest and download necessary binaries, improving the workflow's reliability and compatibility. - Adjusted environment variable settings to ensure proper configuration for subsequent steps.
- Updated the coverage generation command in the Makefile to run tests serially using the '-p 1' flag. This change prevents multiple envtest instances from starting simultaneously, which can exhaust memory and CPU resources on GitHub runners, reducing the likelihood of job cancellations.
- Created a .gitkeep file in the output directory to ensure it is tracked by Git, allowing for the preservation of the directory structure even when empty.
- Added a command to create the output directory in the run_soak.sh script, ensuring it is available for storing reports generated during the soak test.
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.
No description provided.