Skip to content

Update CI/CD for .NET 10, docs, and release automation#41

Merged
Chris-Wolfgang merged 27 commits into
mainfrom
develop
Dec 28, 2025
Merged

Update CI/CD for .NET 10, docs, and release automation#41
Chris-Wolfgang merged 27 commits into
mainfrom
develop

Conversation

@Chris-Wolfgang
Copy link
Copy Markdown
Owner

  • 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

Description

Fixes/Complete # (issue)

Type of change

Please delete options that are not relevant.

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactor

How Has This Been Tested?

  • Test A
  • Test B

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Screenshots (if applicable)

Additional context

- 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
Copilot AI review requested due to automatic review settings December 27, 2025 17:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docfx_project/toc.yml
Comment thread .github/workflows/release.yaml
Comment thread .github/workflows/release.yaml
Comment thread docfx_project/docfx.json
Comment thread docfx_project/docfx.json
Comment on lines +50 to +51
"default",
"modern"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
"default",
"modern"
"default"

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/release.yaml Outdated
Comment on lines +73 to +78
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"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/release.yaml Outdated
Comment on lines +85 to +89
dotnet test tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj `
--configuration Release `
--no-build `
--logger "trx" `
--results-directory "./TestResults"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Comment thread .github/workflows/release.yaml Outdated
Comment on lines +129 to +135
dotnet pack src/Wolfgang.Etl.Abstractions/Wolfgang.Etl.Abstractions.csproj
--no-build `
--configuration Release `
--output ./nuget-packages `
--include-symbols `
--include-source `
-p:SymbolPackageFormat=snupkg
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Comment thread .github/workflows/release.yaml Outdated
Comment thread docfx_project/docfx.json Outdated
Chris-Wolfgang and others added 2 commits December 27, 2025 12:44
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI mentioned this pull request Dec 27, 2025
14 tasks
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 27, 2025

@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.

Copilot AI mentioned this pull request Dec 27, 2025
15 tasks
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 27, 2025

@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.

Chris-Wolfgang and others added 3 commits December 27, 2025 12:59
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 27, 2025

@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.

Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 27, 2025

@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.

Copilot AI and others added 3 commits December 27, 2025 18:02
Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 27, 2025

@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.

Copilot AI and others added 3 commits December 27, 2025 18:03
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>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread .github/workflows/pr.yaml
Comment thread .github/workflows/release.yaml
Comment thread .github/workflows/release.yaml
Comment thread .github/workflows/pr.yaml
Comment thread .github/workflows/release.yaml
Comment thread .github/workflows/release.yaml Outdated
if: runner.os == 'Windows'
shell: pwsh
run: |
dotnet test tests/Wolfgang.Etl.Abstractions.Tests/Wolfgang.Etl.Abstractions.Tests.Unit.csproj `
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.

Copilot uses AI. Check for mistakes.
Comment thread docfx_project/docfx.json
Comment thread .github/workflows/release.yaml
Comment thread .github/workflows/release.yaml
Comment thread .github/workflows/release.yaml Outdated
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 \
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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'.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 27, 2025

@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.

Chris-Wolfgang and others added 11 commits December 27, 2025 15:12
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
- 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
@Chris-Wolfgang Chris-Wolfgang merged commit 47115e0 into main Dec 28, 2025
6 checks passed
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.

3 participants