Release Publishing

DotVector release publishing is handled by .github/workflows/publish.yml.

Required Secrets

Release Event

Publishing a GitHub Release runs the full pipeline:

The package version is taken from the GitHub Release tag. A leading v is removed for NuGet package versions, so v0.1.0 becomes 0.1.0. The client SDK project remains src/DotVector.Data, but its NuGet package ID is DotVector.

Manual Dispatch

Manual dispatch can be used for targeted publishing:

GitHub Release asset upload only runs for the release.published event, because it needs an existing release tag.

GitHub Pages Documentation

Documentation is published by .github/workflows/pages.yml.

The workflow follows GitHub Pages custom workflow deployment. JekyllNet/action@v2.5 installs the .NET 10 SDK, installs the pinned JekyllNet dotnet tool version 0.2.5, and runs jekyllnet build --source ./docs --destination ./_site. docs/_config.yml sets url: https://iotsharp.net and baseurl: /DotVector for the project-site subdirectory. The generated _site directory is then uploaded as the GitHub Pages artifact.

NuGet API Key

Create the API key under the NuGet account or organization that owns the DotVector.* package IDs, then save it in GitHub repository or organization secrets as NUGET_API_KEY.

The key should be scoped as narrowly as possible:

The publish workflow fails fast when NUGET_API_KEY is missing, so manual dispatch can be used safely for dry build/test runs with publish_nuget=false.

CI Coverage

.github/workflows/ci.yml is the pre-release guardrail. It runs restore, Release build, tests, CLI Native AOT publish, C NativeAOT connector publish, and on Ubuntu also NuGet pack and documentation build. This keeps release-only failures visible before a tag is cut.