| title | Release Publishing |
|---|---|
| layout | default |
DotVector release publishing is handled by .github/workflows/publish.yml.
NUGET_API_KEY: nuget.org API key with permission to publish DotVector packages.
Publishing a GitHub Release runs the full pipeline:
- builds and tests the solution
- publishes the CLI Native AOT smoke artifact during CI/release validation
- publishes the C NativeAOT connector artifact for release assets
- packs and pushes
DotVector.Core,DotVector, andDotVector.Clito nuget.org - uploads NuGet packages, symbol packages, and
dotvector-<version>-connectors-examples.zipto the GitHub Release
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 can be used for targeted publishing:
publish_nuget=truepushes NuGet packages for the provided version
GitHub Release asset upload only runs for the release.published event, because it needs an existing release tag.
Documentation is published by .github/workflows/pages.yml.
- Public URL:
https://iotsharp.net/DotVector/ - Source directory:
docs/ - Entry page:
docs/index.md - Release news:
docs/release-news-v1.0.0.md - Build step:
JekyllNet/action@v2.5 - Deploy step:
actions/deploy-pages
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.
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:
- package glob:
DotVector* - operation: push new package and package version
- source:
https://api.nuget.org/v3/index.json
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.
.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.