Update CI/CD for .NET 10, docs, and release automation#41
Conversation
- Add .NET 10.0.x support to all workflows and targets - Split build/test steps for Linux/macOS vs Windows for better cross-platform support - Run tests on net8.0 only for Linux/macOS; all frameworks on Windows - Enhance NuGet packaging: build/publish .nupkg and .snupkg, upload as artifacts - Automate GitHub release with attached NuGet packages and release notes - Update permissions and run publish job on Windows for release creation - Refactor docfx.json: clarify structure, exclude private members, expand content/resource globs, add modern template - Add verification of DocFX build output in workflow - Update toc.yml to include Articles section for improved navigation
There was a problem hiding this comment.
Pull request overview
This pull request adds .NET 10.0 support across CI/CD workflows, enhances NuGet packaging with symbol packages, automates GitHub releases, and refactors DocFX documentation configuration with new navigation structure.
Key changes:
- Add .NET 10.0 target framework support to all workflows (PR, release, and DocFX)
- Split build/test steps between Linux/macOS (cross-platform targets only) and Windows (all targets including .NET Framework) for better cross-platform support
- Enhance NuGet packaging to create and publish both .nupkg and .snupkg symbol packages with automated GitHub release creation
- Refactor docfx.json configuration with expanded content patterns for articles, modern template, and changed output directory property
- Add Articles section to documentation navigation
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/release.yaml | Adds .NET 10.0 support, splits build/test for cross-platform compatibility, enhances NuGet packaging with symbols, and automates GitHub release creation |
| .github/workflows/pr.yaml | Updates to include .NET 10.0 in the test matrix and adjusts framework targets for Linux/macOS builds |
| .github/workflows/docfx.yaml | Adds verification step to check DocFX build output exists before deployment |
| docfx_project/docfx.json | Refactors configuration with explicit project paths, adds articles content patterns, changes output property, adds modern template, and removes globalMetadata |
| docfx_project/toc.yml | Adds Articles navigation section and removes API homepage property |
Comments suppressed due to low confidence (1)
.github/workflows/pr.yaml:53
- The workflow attempts to build for 'net10.0' framework, but the main library project file (Wolfgang.Etl.Abstractions.csproj) only includes target frameworks up to net9.0. The TargetFrameworks property needs to be updated to include net10.0, otherwise this build will fail with 'The framework 'net10.0' is not supported by this project'.
for fw in netstandard2.0 net8.0 net10.0; do
echo "Building Wolfgang.Etl.Abstractions for $fw"
dotnet build src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj \
--no-restore \
--configuration Release \
--framework "$fw"
done
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "default", | ||
| "modern" |
There was a problem hiding this comment.
The 'modern' template may not be available in the default DocFX installation. DocFX typically ships with the 'default' and 'statictoc' templates. If 'modern' is a custom template, it needs to be present in the docfx_project directory. If this template doesn't exist, the build will fail. Consider removing this unless you've verified the template is available or will be added separately.
| "default", | |
| "modern" | |
| "default" |
| dotnet test tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj \ | ||
| --configuration Release \ | ||
| --framework net8.0 \ | ||
| --no-build \ | ||
| --logger "trx" \ | ||
| --results-directory "./TestResults" |
There was a problem hiding this comment.
The test project path is incorrect. It should be 'tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj' instead of 'tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj'. This will cause the test run to fail with 'project file does not exist'.
| dotnet test tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj ` | ||
| --configuration Release ` | ||
| --no-build ` | ||
| --logger "trx" ` | ||
| --results-directory "./TestResults" |
There was a problem hiding this comment.
The test project path is incorrect. It should be 'tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj' instead of 'tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj'. This will cause the test run to fail with 'project file does not exist'.
There was a problem hiding this comment.
@copilot open a new pull request to apply changes based on this feedback
There was a problem hiding this comment.
@copilot open a new pull request to apply changes based on this feedback
| dotnet pack src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj | ||
| --no-build ` | ||
| --configuration Release ` | ||
| --output ./nuget-packages ` | ||
| --include-symbols ` | ||
| --include-source ` | ||
| -p:SymbolPackageFormat=snupkg |
There was a problem hiding this comment.
The PowerShell command is improperly formatted with the opening line containing the command name without a line continuation character. This will cause a syntax error. The opening 'dotnet pack' line should end with a backtick (`) to continue to the next line, or all arguments should be on the same line.
There was a problem hiding this comment.
@copilot open a new pull request to apply changes based on this feedback
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@Chris-Wolfgang I've opened a new pull request, #42, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@Chris-Wolfgang I've opened a new pull request, #43, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
|
@Chris-Wolfgang I've opened a new pull request, #44, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@Chris-Wolfgang I've opened a new pull request, #45, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@Chris-Wolfgang I've opened a new pull request, #46, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 11 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if: runner.os == 'Windows' | ||
| shell: pwsh | ||
| run: | | ||
| dotnet test tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj ` |
There was a problem hiding this comment.
The test project path is incorrect. The actual test project is located at 'tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj' but this references 'tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj'. The directory name should be 'Wolfgang.Etl.Abstractions.Tests.Unit' not 'Wolfgang.Etl.Abstractions.Tests'.
| echo "Running tests for $proj" | ||
| dotnet test "$proj" --no-build --configuration Release --logger "trx" --results-directory "./TestResults" | ||
| done | ||
| dotnet test tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj \ |
There was a problem hiding this comment.
The test project path is incorrect. The actual test project is located at 'tests/Wolfgang.Etl.Abstractions.Tests.Unit/Wolfgang.Etl.Abstractions.Tests.Unit.csproj' but this references 'tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj'. The directory name should be 'Wolfgang.Etl.Abstractions.Tests.Unit' not 'Wolfgang.Etl.Abstractions.Tests'.
|
@Chris-Wolfgang I've opened a new pull request, #47, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Updated Wolfgang.Etl.Abstractions.csproj to include net10.0 in the TargetFrameworks list, enabling support for .NET 10.0 alongside existing frameworks.
Add net10.0 target framework while preserving out-of-support frameworks
…-time Fix incorrect test project path in release workflow
Fix PowerShell line continuation syntax in release workflow
Fix incorrect test project path in release workflow
Add .NET 10.0 target framework support
Add .NET 10.0 target framework support
- Introduce security-scanning.yml with secret and dependency scanning jobs - Update release.yaml to publish NuGet symbol packages (*.snupkg) - Change docfx.json output key from "dest" to "output" - Add "Articles" section to toc.yml for improved navigation Add security scanning workflow and doc/CI improvements - Introduce security-scanning.yml with secret and dependency scanning jobs, scheduled daily and on push to main - Update release.yaml to publish NuGet symbol packages (*.snupkg) - Change docfx.json output key from "dest" to "output" - Add "Articles" section to toc.yml for better navigation
Description
Fixes/Complete # (issue)
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Checklist
Screenshots (if applicable)
Additional context