-
Notifications
You must be signed in to change notification settings - Fork 2
Build And Release
The SysML2.NET project 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)
- Jetbrains Resharper Ultimate 2022.1 or later
- Git Extensions
The SysML2.NET solution contains two build configurations:
- debug: used while developing new features
- release: used to create a build for release
Follow these steps to create pre-release nugets using the Debug configuration or a release nugets using the Release configuration:
- Run all unit tests and verify that they pass
- Make sure the version numbers of the projects are incremented when things have changed; the project makes use of SEMVER.
- Update the in the .csproj files; this will be visible on https://nuget.org
- Via the GitHub web-ui
draft a new release
referencing the tag and set therelease title
toVersion 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 usingdotnet push
to publish the packages on https://nuget.org, the symbols packages will be pushed as well.
First clean
the solution and then pack
. The pack command will build and create the nugets. The --version-suffix
parameter is used to add a suffix such as rc01
.
dotnet clean -c Debug
dotnet pack --version-suffix "rcxy" -c Debug
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. The symbols nuget will automatically be pushed to https://nuget.smbsrc.net.
this is automated using the release.bat
script. This will clean, build, package and upload the nugets to nuget.org . You will require a nuget API Key.
release.bat "your-api-key"
DOCKER_BUILDKIT=1 docker build -f SysML2.NET.Viewer/Dockerfile -t stariongroup/sysml2.net.viewer:latest -t stariongroup/sysml2.net.viewer:x.y.z .
docker run -p 8080:80 --name sysml2-viewer stariongroup/sysml2.net.viewer:latest
docker push stariongroup/sysml2.net.viewer:latest
docker push stariongroup/sysml2.net.viewer:x.y.z
The HTML docs are geneated from the SysML2.NET.CodeGenerator.Tests project. The index.html file as well as the Graphiz dot file. Use the following command from the root folder of the solution:
dot -Tsvg SysML2.NET.CodeGenerator.Tests/bin/Debug/net8.0/_SysML2.NET.Core.AutoGenHtmlDocs/sysml2-class-inheritance.dot > SysML2.NET.CodeGenerator.Tests/bin/Debug/net8.0/_SysML2.NET.Core.AutoGenHtmlDocs/sysml2-class-inheritance.svg
The docker container is build, run and pushed using the following commands
docker build -f HtmlDocs/Dockerfile -t stariongroup/sysml2.net.docs:latest -t stariongroup/sysml2.net.docs:x.y.z .
docker run -p 8080:80 --name sysml2.net.docs stariongroup/sysml2.net.docs:latest
docker push stariongroup/sysml2.net.docs:latest
docker push stariongroup/sysml2.net.docs:x.y.z
copyright @ Starion Group S.A.