Skip to content

Build And Release

samatstarion edited this page Sep 8, 2024 · 5 revisions

Development Environment

ECoreNetto is developed using Visual Studio 2022.

The following tools are used by the Starion Group development team:

  • Visual Studio 2022 Professional (Community Edtion will work as well)
  • Resharper Ultimate 2022.1.2 or later
  • Git Extensions

Prepare for Release

Follow the steps to create pre-release nugets that are not optimized using the Debug configuration or a release nugets using the Release configuration:

  1. Run all unit tests and verify that they pass
  2. Make sure the version numbers of the projects are incremented when things have changed; the project makes use of SEMVER.
  3. Update the <PackageReleaseNotes> in the .csproj files; this will be visible on https://nuget.org
  4. Via the GitHub web-ui draft a new release referencing the tag and set the release title to Version MAJOR.MINOR.PATCH. The description of the release shall mention the updates referencing the GitHub issue numbers.

NOTE: The .csproj files contain settings that indicate that a symbols package is created as well. When using dotnet push to publish the packages on https://nuget.org, the symbols packages will be pushed as well.

Create Release

First clean the solution and then pack. The pack command will build and create the nugets. The --include-source parameter is used to add the symbols and the source code to a specific symbols nuget.

dotnet clean -c Release ECoreNetto.sln
dotnet pack --include-source -c Release ECoreNetto.sln -o .

In case you want to push the new nugets to https://nuget.org use the following command. You will require an API Key. This needs to be repeated for each nuget that needs to be published.

dotnet nuget push ECoreNetto.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push ECoreNetto.Extensions.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push ECoreNetto.HandleBars.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"
dotnet nuget push ECoreNetto.Tools.MAJOR.MINOR.PATCH.nupkg --source https://api.nuget.org/v3/index.json --api-key "your-api-key"

the release.bat file automates these steps, execute it from the commandline using your nuget API key:

./release.bat <your-api-key>

The release.bat includes the EcoreNetto.Tools package tool and publishes that to nuget. For windows users that do not have access to nuget.org to install the application a self-contained executable is made available. Run the following command from the solution folder.

dotnet publish -c Release ECoreNetto.Tools\ECoreNetto.Tools.csproj -r win-x64 --self-contained true -p:PublishSingleFile=true

Compute the SHA-256 of the ECoreNetto.Tools.Exe file. Upload the file to the release notes page and include the hash in the text.