Skip to content

Add GitHub Actions workflows, Dependabot config, and update target frameworks#3

Merged
jzills merged 13 commits into
developfrom
feature/workflows
May 2, 2026
Merged

Add GitHub Actions workflows, Dependabot config, and update target frameworks#3
jzills merged 13 commits into
developfrom
feature/workflows

Conversation

@jzills

@jzills jzills commented Apr 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add CI workflows (PR validation, CodeQL, release/publish) mirrored from HmacManager
  • Add Dependabot config for weekly NuGet and GitHub Actions updates
  • Update target frameworks from net8.0;net9.0 to net8.0;net10.0 across src, test/Unit, and test/Integration

Changes

  • .github/dependabot.yml — weekly updates for NuGet and GitHub Actions
  • .github/workflows/pr.yml — unit + integration tests on PRs to main/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 on release/** pushes

Test plan

  • Open a PR to develop and verify PR Validation and CodeQL workflows trigger
  • Push a release/vX.Y.Z branch to verify the release workflow triggers (requires NUGET_API_KEY secret set in repo settings)

@github-advanced-security

Copy link
Copy Markdown

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:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@jzills jzills changed the base branch from main to develop April 30, 2026 23:23
jzills added 12 commits April 30, 2026 18:24
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.
@jzills jzills merged commit 523d0e1 into develop May 2, 2026
5 of 6 checks passed
@jzills jzills deleted the feature/workflows branch May 3, 2026 02:30
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.

2 participants