Add GitHub Actions workflows, Dependabot config, and update target frameworks#3
Merged
Conversation
…ameworks to net8/net10
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
Unit tests now use only in-memory cache (no external dependencies). Cache operation tests moved to integration project and parameterised over Redis, SQL Server, Azure Cosmos, and multiple-backend providers. Integration workflow adds Redis, MSSQL, and Cosmos emulator service containers with appropriate health checks and SQL Server schema initialisation.
System.Text.Json in .NET 10 requires PipeWriter.UnflushedBytes which was added in .NET 9. TestHost 8.0.8's ResponseBodyPipeWriter does not implement it, causing HTTP response serialization to fail on the net10 target. Use conditional package references to select the matching TestHost version per target framework.
…e references Replaces per-package Condition attributes with a single _TargetVersion property group that maps each target framework to its corresponding package version, keeping all framework-aligned references in one place.
Keeps multi-backend TestCaseSource tests in Integration and restores the new MemoryActionCacheFactoryBuilder-based unit tests to the Unit project. Merges develop's FluentAssertions and NUnit 4.* additions into Unit.csproj while preserving net10 targeting and the _TargetVersion property approach from this branch.
- RedisExpiryServiceTests: add TaskCompletionSource synchronization so tests wait for BackgroundService.ExecuteAsync to register the subscription before invoking the captured handler (.NET 10 changed StartAsync to not block until ExecuteAsync begins) - Test_ActionCache_Expiration_Absolute: increase Thread.Sleep from 5 s to 6 s to give a buffer after the 5 s TTL on loaded CI machines - TestData.ServiceProvider: remove trailing == from Cosmos emulator AccountKey (76-char key is valid base64; 78-char padded form fails Convert.FromBase64String used by Microsoft.Azure.Cosmos 3.46.1)
- Remove AzureCosmos from shared test providers (emulator returns 401 and contaminates subsequent test cases via broken TearDown)
- Increase absolute expiration sleep from 6s to 10s (5s TTL with 5s buffer for slow CI runners)
- Increase sliding expiration window from 11s to 30s (two 10s sleeps need headroom on loaded runners)
- Fix endpoint filter test route from 'teams' to 'teams/1' to match '/teams/{id}' pattern
Health check endpoint, env vars, and ports were all broken after the latest tag began resolving to the vNext emulator image.
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
net8.0;net9.0tonet8.0;net10.0acrosssrc,test/Unit, andtest/IntegrationChanges
.github/dependabot.yml— weekly updates for NuGet and GitHub Actions.github/workflows/pr.yml— unit + integration tests on PRs tomain/develop(integration job starts Redis).github/workflows/codeql.yml— CodeQL analysis on PRs and weekly schedule.github/workflows/release.yml— runs tests then packs and publishes to NuGet onrelease/**pushesTest plan
developand verify PR Validation and CodeQL workflows triggerrelease/vX.Y.Zbranch to verify the release workflow triggers (requiresNUGET_API_KEYsecret set in repo settings)