2 Commits

Author SHA1 Message Date
Faris Laptop d832e748ec ci: guard on the tag itself, not the release object
CI / build (push) Successful in 34s
A tag can exist without a release (pushed by hand), and that still means
the version is taken. Checking the tag makes the failure say 'bump the
version' instead of surfacing a raw NuGet duplicate error.
2026-07-20 16:14:53 +05:00
Faris Laptop 7e80226bf2 ci: release from the production branch, version from the project file
CI / build (push) Successful in 39s
Release / release (push) Failing after 36s
Two branches: dev for everyday work, production for releases.

- ci.yml builds and packs on dev and on pull requests; it never publishes.
- release.yml runs on a push (usually a merge) into production: reads
  <Version> from the csproj, refuses to proceed if that tag already
  exists, publishes to nuget.org, and only then creates the tag and the
  Gitea release — so a tag always means a published package.
- Drop --skip-duplicate: a duplicate push must fail loudly instead of
  reporting success while shipping nothing.
2026-07-20 16:12:21 +05:00