Skip to content

Pack NuGet output to a flat packages folder - #32

Merged
Malcolmnixon merged 1 commit into
mainfrom
fix/flat-package-artifact
Oct 2, 2026
Merged

Malcolmnixon merged 1 commit into
mainfrom
fix/flat-package-artifact

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member

Pull Request

Description

The packages-* build artifact was nested: dotnet pack wrote each project's
.nupkg/.snupkg to its own src/<project>/bin/Release/, and
actions/upload-artifact roots the archive at the common ancestor of the
matched paths, so the downloaded artifact preserved that nested
src/<project>/bin/Release/ structure instead of being a flat, directly
usable local NuGet feed. This also meant release.yaml's existing
dotnet nuget push artifacts/*.nupkg step would find nothing.

Changed the Create Library Package step to pack with --output packages
so all three projects write their .nupkg/.snupkg directly into one flat
packages/ folder, and upload that folder as-is. This matches the pattern
already used by DocDown's build pipeline.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Closes #

Pre-Submission Checklist

Build and Test

  • Code builds successfully and all tests pass: pwsh ./build.ps1 (no source
    changes in this PR; verified separately that dotnet pack --output packages
    produces a flat packages/ folder with all 6 expected .nupkg/.snupkg files)
  • Code produces zero warnings

Code Quality

  • New code has appropriate XML documentation comments (N/A - workflow YAML only)
  • Static analyzer warnings have been addressed (N/A - workflow YAML only)

Quality Checks

  • All linters pass: pwsh ./lint.ps1 - passed

Testing

  • Added unit tests for new functionality (N/A - CI workflow change, not covered by unit tests)
  • Updated existing tests if behavior changed (N/A)
  • All tests follow the AAA (Arrange, Act, Assert) pattern (N/A)
  • Test coverage is maintained or improved (unchanged)

Documentation

  • Updated README.md (if applicable) - N/A
  • Updated docs/ documentation (if applicable) - N/A
  • Added code examples for new features (if applicable) - N/A
  • Updated requirements.yaml (if applicable) - N/A

Additional Notes

Verified locally: dotnet pack --configuration Release --output packages --property:PackageVersion=9.9.9-test produced exactly:

packages/DemaConsulting.CanvasNet.9.9.9-test.nupkg
packages/DemaConsulting.CanvasNet.9.9.9-test.snupkg
packages/DemaConsulting.CanvasNet.Pdf.9.9.9-test.nupkg
packages/DemaConsulting.CanvasNet.Pdf.9.9.9-test.snupkg
packages/DemaConsulting.CanvasNet.Svg.9.9.9-test.nupkg
packages/DemaConsulting.CanvasNet.Svg.9.9.9-test.snupkg

with no nested project subfolders.

dotnet pack previously wrote each project's .nupkg/.snupkg to its own
src/<project>/bin/Release/, so the packages-* artifact preserved that
nested layout. actions/upload-artifact roots its archive at the
common ancestor of matched paths, so the downloaded artifact was not
a usable flat local NuGet feed, and release.yaml's existing
artifacts/*.nupkg push step would have found nothing. Pack with
--output packages so all projects write directly into one flat
folder, matching the pattern used by DocDown's build pipeline.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings October 2, 2026 21:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟢 Approval recommended

The workflow change addresses the package layout issue with no unresolved review concerns.

Review effort: Lite
Findings: None

What changed in this PR

Updates the build workflow to produce a flat NuGet package artifact compatible with release publishing.

Changes:

  • Packs all projects into packages/.
  • Uploads the flat package directory as the artifact.
File Description
.github/​workflows/​build.yaml Configures flat package output and artifact upload.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@Malcolmnixon
Malcolmnixon merged commit e629644 into main Oct 2, 2026
7 checks passed
@Malcolmnixon
Malcolmnixon deleted the fix/flat-package-artifact branch October 2, 2026 21:21
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