-
Notifications
You must be signed in to change notification settings - Fork 4
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"
The viewer
web application can be containerized using 2 scripts (to be run from linux environment like the git bash or WSL). Both require the version "x.y.z" as the 1-and-only-1 commandline argument
-
docker-build-local.sh
: creates a docker image to be used locally with thelatest
andx.y.z
tag -
docker-build-attested.sh
: creates a docker image usingdocker buildx
that includes attestion and sbom and immediately pushes thelatest
andx.y.z.
tags to Docker Hub.
To release the web application and automaticaly push it to Docker Hub use the following command from a linux/WSL command line, where x.y.z should correspond to the version specified in the .csproj file.
./docker-build-attested x.y.z
The HTML Docs
can be containerized using 2 scripts (to be run from linux environment like the git bash or WSL). Both require the version "x.y.z" as the 1-and-only-1 commandline argument
-
docker-build-docs-local.sh
: creates a docker image to be used locally with thelatest
andx.y.z
tag -
docker-build-docs-attested.sh
: creates a docker image usingdocker buildx
that includes attestion and sbom and immediately pushes thelatest
andx.y.z.
tags to Docker Hub.
To release the HTML Docs
and automaticaly push it to Docker Hub use the following command from a linux/WSL command line:
./docker-build-docs-attested x.y.z
The local image can be run using:
docker run -p 8080:80 --name sysml2.net.docs stariongroup/sysml2.net.docs:latest
copyright @ Starion Group S.A.