-
Notifications
You must be signed in to change notification settings - Fork 2
Adding a New Deployable Project
When a new .csproj is added to Gondwana.sln and should be included in NuGet deployments, update the following files.
-
"Publish projects needed for staged binaries" step — add a
mkdir -p publish/<ProjectName>line and a correspondingdotnet publishline. -
"Stage exact downloadable binaries" step — add a
cp publish/<ProjectName>/<ProjectName>.dll artifacts/line, or usecp -r/.exefor apps and tools.
-
"Publish projects" step — same pattern: add
mkdir -p publish/<ProjectName>anddotnet publish. -
"Stage release assets" step — add the matching
cpline intorelease-assets/.
Note for apps/tools
For apps/tools such as WinForms executables, use-r win-x64 --self-contained falseindotnet publishandcp -rwhen staging, so runtime assets are included.
Add a label rule so pull requests touching the new project are automatically labeled.
Example:
gondwana-newproject:
- changed-files:
- any-glob-to-any-file: 'Gondwana.NewProject/**'For projects under Tooling/, use the tooling path:
gondwana-newproject:
- changed-files:
- any-glob-to-any-file: 'Tooling/Gondwana.NewProject/**'If the project has a companion hosting package, include both paths under the same label:
gondwana-newproject:
- changed-files:
- any-glob-to-any-file:
- 'Gondwana.NewProject/**'
- 'Gondwana.NewProject.Hosting/**'Add a changelog category so generated GitHub release notes group pull requests for the new project.
Example:
- title: Gondwana.NewProject
labels:
- gondwana-newproject
- Gondwana.NewProjectPlace the new category near related packages.
For example, a core-adjacent package should go near Gondwana (Core), while a platform adapter should go near the other adapter packages.
Ordering note
Categories are matched in order. If a pull request has bothenhancementandgondwana-newproject, it will appear under whichever matching category comes first. Keep the broad change-type categories first if you want release notes grouped by change type; place project categories first if you want them grouped by package.
Add a new entry:
[pscustomobject]@{
Name = "Your.Project.Name"
IncludePaths = @("Your/Project/Path/**/*")
}Example:
[pscustomobject]@{
Name = "Gondwana.NewProject"
IncludePaths = @("Gondwana.NewProject/**/*")
}Add the repo-root-relative folder path.
Examples:
"Gondwana.NewProject"or:
"Tooling/Gondwana.NewProject"For Gondwana.Widgets, the expected additions would be:
gondwana-widgets:
- changed-files:
- any-glob-to-any-file: 'Gondwana.Widgets/**' - title: Gondwana.Widgets
labels:
- gondwana-widgets
- Gondwana.Widgets[pscustomobject]@{
Name = "Gondwana.Widgets"
IncludePaths = @("Gondwana.Widgets/**/*")
}"Gondwana.Widgets"