Skip to content

Add GitHub Actions CI workflow#4

Open
hooyao wants to merge 5 commits intomainfrom
ci/github-actions
Open

Add GitHub Actions CI workflow#4
hooyao wants to merge 5 commits intomainfrom
ci/github-actions

Conversation

@hooyao
Copy link
Copy Markdown
Owner

@hooyao hooyao commented Mar 22, 2026

Summary

  • Add .github/workflows/ci.yml to run CI on PRs and pushes to main
  • Builds the project and runs functional tests (skips Performance/Benchmark/Profiling/Endurance)
  • Uses .NET 10.0.x stable

Test plan

  • Verify the workflow triggers on this PR
  • Check that build and test steps pass

🤖 Generated with Claude Code

hooyao and others added 5 commits March 22, 2026 11:58
Run build and functional tests on pull requests and pushes to main.
Skips Performance, Benchmark, Profiling, and Endurance test categories.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace Stream.Read/ReadAsync with ReadExactly/ReadExactlyAsync
  where return value was unused (CA2022)
- Convert blocking .Wait()/.Result to async/await (xUnit1031)
- Convert Task.WaitAll to await Task.WhenAll in endurance tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add NuGet package metadata to csproj (no hardcoded version)
- Add release.yml: build, test, pack, push to NuGet on v* tag
- Auto-create GitHub Release with release notes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Library targets netstandard2.1 + net10.0; net10.0 users get
  Memory/ValueTask overrides and DisposeAsync
- Test project targets net8.0 + net10.0 to cover both code paths
- Add ThrowHelper and IsExternalInit polyfills for netstandard2.1
- Conditional compilation for AesGcm ctor, Rfc2898DeriveBytes.Pbkdf2,
  Stream Span overloads, and async Memory overrides
- Replace Array.Clear(x) with Array.Clear(x, 0, x.Length) everywhere
- CI workflows install both .NET 8 and .NET 10 SDKs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Collect coverage via coverlet XPlat Code Coverage
- Generate markdown report with ReportGenerator
- Post coverage summary as sticky PR comment
- Write coverage summary to GitHub job summary

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Summary

Summary
Generated on: 03/22/2026 - 05:25:29
Coverage date: 03/22/2026 - 05:24:51 - 03/22/2026 - 05:25:27
Parser: MultiReport (2x Cobertura)
Assemblies: 1
Classes: 19
Files: 18
Line coverage: 87.4% (1121 of 1282)
Covered lines: 1121
Uncovered lines: 161
Coverable lines: 1282
Total lines: 3113
Branch coverage: 80% (448 of 560)
Covered branches: 448
Total branches: 560
Method coverage: Feature is only available for sponsors
Tag: 5_23396393600

Coverage

CipheredFileStream - 87.4%
Name Line Branch
CipheredFileStream 87.4% 80%
CipheredFileStream.IO.CipheredFileStreamFactory 93.7% 82.1%
CipheredFileStream.IO.CipheredFileStreamOptions 100%
CipheredFileStream.IO.EphemeralKeyProvider 100% 100%
CipheredFileStream.IO.Exceptions.EncryptedFileCorruptException 58.3% 25%
CipheredFileStream.IO.Exceptions.EncryptedFileVersionException 60% 100%
CipheredFileStream.IO.FileHeaderInfo 100%
CipheredFileStream.IO.Internal.AesGcmBlockCrypto 97.8% 50%
CipheredFileStream.IO.Internal.BlockCryptoFactory 77.7% 50%
CipheredFileStream.IO.Internal.BlockLayout 100% 100%
CipheredFileStream.IO.Internal.BlockManager 96.1% 91.6%
CipheredFileStream.IO.Internal.CipheredFileStream 91.3% 82.3%
CipheredFileStream.IO.Internal.IntegrityTracker 70.7% 75%
CipheredFileStream.IO.Internal.PositionMapper 100% 100%
CipheredFileStream.IO.Internal.ReadAheadBuffer 97.4% 95.9%
CipheredFileStream.IO.Internal.ThrowHelper 88.8% 83.3%
CipheredFileStream.IO.Internal.WriteBehindBuffer 89.2% 85.8%
CipheredFileStream.IO.PasswordKeyProvider 86.8% 64.2%
CipheredFileStream.IO.Protos.EncryptedFileHeader 54.9% 43.9%
CipheredFileStream.IO.Protos.EncryptedFileHeaderReflection 0%

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.

1 participant