Skip to content

79 request add benchmarks and integrate performance testing into cicd #86

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

Draft
wants to merge 47 commits into
base: master
Choose a base branch
from

Conversation

leonibr
Copy link
Owner

@leonibr leonibr commented Jul 17, 2025

No description provided.

dependabot bot and others added 30 commits October 25, 2023 22:05
Bumps [crypto-js](https://github.com/brix/crypto-js) to 4.2.0 and updates ancestor dependency [oidc-client](https://github.com/IdentityModel/oidc-client-js). These dependencies need to be updated together.


Updates `crypto-js` from 3.3.0 to 4.2.0
- [Commits](brix/crypto-js@3.3.0...4.2.0)

Updates `oidc-client` from 1.10.1 to 1.11.5
- [Release notes](https://github.com/IdentityModel/oidc-client-js/releases)
- [Changelog](https://github.com/IdentityModel/oidc-client-js/blob/dev/GitReleaseManager.yaml)
- [Commits](DuendeArchive/identity-model-oidc-client-js@1.10.1...1.11.5)

---
updated-dependencies:
- dependency-name: crypto-js
  dependency-type: indirect
- dependency-name: oidc-client
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
- Introduced a new project "CachingTest" to implement unit tests for PostgreSQL caching functionality.
- Added DatabaseOperationsTests to validate cache item management, including setting, getting, and deleting expired items.
- Created PostgreSqlCacheTests as a template for further cache-related tests.
- Updated Community.Microsoft.Extensions.Caching.PostgreSql project to allow internal access for testing.
- Enhanced solution file to include the new CachingTest project and its configurations.
- Added coverage directories to .gitignore for test coverage exclusion.
- Updated CachingTest.csproj to include Microsoft.Extensions.DependencyInjection and Microsoft.Extensions.Logging packages.
- Enhanced DatabaseOperationsTests with additional unit tests for constructor validation and cache item management.
- Refactored PostgreSqlCacheTests to utilize mocking for database operations and added comprehensive test cases for cache functionality.
- Adjusted PostgreSqlCacheOptions for improved documentation and consistency.
- Changed the dotnet-version in the GitHub Actions workflow from 6.0.x to 9.0.x for improved compatibility and performance.
- Modified the dotnet-version in the GitHub Actions workflow to include 6.0.x, 8.0.x, and 9.0.x for enhanced compatibility across different .NET versions.
…ption

- Updated all instances of Npgsql.PostgresException to Npgsql.NpgsqlException in DatabaseOperationsAdditionalTests and ExpirationEdgeCaseTests to ensure accurate exception handling during cache item operations.
- Added steps to publish test results and check for coverage file existence in the GitHub Actions workflow.
- Updated conditions for uploading coverage reports and displaying coverage summaries based on the presence of the coverage file.
…ons-cache-postgres into dependabot/npm_and_yarn/WebSample/ClientApp/crypto-js-and-oidc-client-4.2.0
- Modified dotnet-core.yml to remove the --no-symbols flag from the NuGet push command.
- Updated dotnet-test.yml to enhance coverage reporting by changing coverage collection parameters and adjusting conditions for uploading coverage reports and displaying summaries based on the existence of the coverage file.
- Added a code coverage section in the README with details on coverage badge, reports, and generation methods.
- Enhanced the GitHub Actions workflow to extract and report coverage percentage, ensuring better visibility of test coverage status.
- Replaced the GitHub Action coverage reporter with a new action for improved reporting.
- Adjusted parameters to use 'cobertura-path' instead of 'lcov-file' for coverage file handling.
- Added a step to deploy the coverage report to GitHub Pages.
- Updated the upload artifact step to clarify its purpose.
- Removed deprecated steps related to coverage percentage extraction and badge generation for a cleaner workflow.
… strings

- Add ReloadableConnectionStringProvider for automatic connection string reloading
- Add new properties to PostgreSqlCacheOptions for reloadable connection strings
- Add extension methods for easy Azure Key Vault integration
- Update DatabaseOperations to support reloadable connection strings
- Add comprehensive documentation and examples
- Add unit tests for reloadable connection string functionality
- Support for configurable reload intervals (default: 5 minutes)
- Thread-safe connection string updates with comprehensive logging
- Graceful fallback to existing connection string if reload fails
…sting

- Modified the branches in the push and pull_request triggers to include 'next' alongside 'master' and 'add-unit-tests' for better integration testing.
* docs: Fix typos and improve formatting in README

- Corrected "Dstributed" to "Distributed" in the features list.
- Updated the Table of Contents to use consistent numbering.

* docs: Revise cache configuration options

- Enhanced the section on configuration options with detailed descriptions and usage guidance.

* docs: Update README and add OptionsDetails for PostgreSQL cache configuration

- Removed redundant sections

* docs: Update OptionsDetails with navigation links

- Added back navigation links
* Bump crypto-js and oidc-client in /WebSample/ClientApp (#60)

Bumps [crypto-js](https://github.com/brix/crypto-js) to 4.2.0 and updates ancestor dependency [oidc-client](https://github.com/IdentityModel/oidc-client-js). These dependencies need to be updated together.


Updates `crypto-js` from 3.3.0 to 4.2.0
- [Commits](brix/crypto-js@3.3.0...4.2.0)

Updates `oidc-client` from 1.10.1 to 1.11.5
- [Release notes](https://github.com/IdentityModel/oidc-client-js/releases)
- [Changelog](https://github.com/IdentityModel/oidc-client-js/blob/dev/GitReleaseManager.yaml)
- [Commits](DuendeArchive/identity-model-oidc-client-js@1.10.1...1.11.5)

---
updated-dependencies:
- dependency-name: crypto-js
  dependency-type: indirect
- dependency-name: oidc-client
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ashley Marques <[email protected]>

* Fix ConfigureAwait in DatabaseExpiredItemsRemoverLoop to false (#78)

* Enhance GitHub Actions workflow for .NET testing and coverage reporting (#82)

* Bump bootstrap from 4.6.2 to 5.0.0 in /WebSample/ClientApp (#84)

* Bump bootstrap from 4.6.2 to 5.0.0 in /WebSample/ClientApp

Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](twbs/bootstrap@v4.6.2...v5.0.0)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-version: 5.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update GitHub Actions workflow to include permissions for checks and contents for cover results

* Update GitHub Actions workflow to grant write permissions for issues

* Update GitHub Actions workflow to disable comment mode for test result uploads

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ashley Marques <[email protected]>

* Bump ws from 7.5.9 to 7.5.10 in /WebSample/ClientApp (#83)

Bumps [ws](https://github.com/websockets/ws) from 7.5.9 to 7.5.10.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](websockets/ws@7.5.9...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-version: 7.5.10
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Introduced a comprehensive benchmarking framework with multiple benchmark files for bulk operations, concurrency, core operations, and data size.
- Added performance validation workflows for pull requests, releases, and scheduled benchmarks in GitHub Actions.
- Created a setup workflow for the benchmark dashboard and detailed performance testing documentation.
- Included various result formats (Markdown, CSV, HTML) for benchmark outputs to facilitate analysis and reporting.
…tions

- Consolidated benchmark matrix definitions in both benchmarks-release.yml and benchmarks-scheduled.yml for improved readability.
- Removed unnecessary line breaks to streamline the workflow files.
- Updated the dashboard link in README-Benchmarks.md to reflect the correct URL.
- Modified benchmarks-release.yml to use context variables for dynamic report paths and release information, enhancing readability and maintainability.
- Removed unnecessary line breaks in benchmarks-release.yml to enhance readability and maintainability.
- Streamlined the workflow steps for better clarity and organization.
leonibr added 8 commits July 17, 2025 10:05
- Added entry for BenchmarkDotNet.Artifacts to .gitignore to exclude benchmark artifacts.
- Clarified README by updating Docker prerequisite description for PostgreSQL TestContainer.
- Modified the push branches to include 'master' and a specific feature branch for better CI/CD performance testing.
- Revised Docker prerequisite description for PostgreSQL TestContainer for clarity.
- Modified output file paths in benchmarks-pr.yml and benchmarks-scheduled.yml to specify the benchmark class names directly.
- Added a step in benchmarks-scheduled.yml to dynamically set the benchmark class name based on the matrix configuration.
- Included JsonExporter in Program.cs for enhanced benchmark result output options.
- Changed the output file path in benchmarks-pr.yml to include '-full-compressed' for better clarity.
- Updated benchmark descriptions in Program.cs to include estimated execution times for each benchmark class.
@leonibr leonibr linked an issue Jul 17, 2025 that may be closed by this pull request
Copy link

📊 Performance Testing Available

This PR modifies performance-sensitive code. If you want to validate performance impact:

Option 1: Add the performance label to this PR
Option 2: Include [perf] in your PR title

This will trigger core operations benchmarking with historical comparison to help identify any performance regressions.

📈 View Current Trends: Performance Dashboard

Local testing: For comprehensive performance analysis, run benchmarks locally:

cd Benchmarks
dotnet run --configuration Release

leonibr added 9 commits July 17, 2025 11:46
- Added entries to .gitignore for BenchmarkDotNet.Artifacts/results to exclude specific result files.
- Deleted outdated benchmark report files: Benchmarks.UseCases.CoreOperationsBenchmark-report-github.md, Benchmarks.UseCases.CoreOperationsBenchmark-report.csv, and Benchmarks.UseCases.CoreOperationsBenchmark-report.html.
…utput file update

- Added steps to list the results directory and show the current directory for better visibility during CI runs.
- Updated the output file path to remove '-full-compressed' from the benchmark report file name for consistency.
- Adjusted the formatting of the benchmark description for CoreOperationsBenchmark to remove space before the estimated execution time for consistency.
- Reintroduced the step to list the results directory in benchmarks-scheduled.yml for improved visibility during CI runs.
- Adjusted the formatting in Program.cs to ensure consistent spacing in the benchmark description for CoreOperationsBenchmark.
- Updated benchmarks-scheduled.yml to list the current directory for enhanced visibility during CI runs.
- Refined the formatting in Program.cs by removing unnecessary space before the estimated execution time for CoreOperationsBenchmark.
…utput visibility

- Added additional steps in benchmarks-scheduled.yml to list the contents of the BenchmarkDotNet.Artifacts directory and its results for better visibility during CI runs.
- Adjusted the formatting in Program.cs to ensure consistent spacing in the benchmark description for CoreOperationsBenchmark.
- Updated benchmarks-scheduled.yml to simplify the listing of the BenchmarkDotNet.Artifacts directory by removing redundant paths.
- Adjusted the formatting in Program.cs to ensure consistent spacing in the benchmark description for CoreOperationsBenchmark.
…ogram.cs formatting

- Changed the output file path in benchmarks-scheduled.yml to include '-full-compressed' for better clarity.
- Adjusted the formatting in Program.cs to ensure consistent spacing in the benchmark description for CoreOperationsBenchmark.
…am.cs

- Removed unnecessary space before the estimated execution time in the benchmark description for CoreOperationsBenchmark to enhance clarity.
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.

Request: Add Benchmarks and Integrate Performance Testing into CI/CD
1 participant