Nexus' updater parses a release tag with an anchored regex (vN.N.N or vN.N.N.N)
and silently turns ANY non-numeric suffix into version 0.0.0.0 - so the
v1.5.0.1-beta tag was read as 0.0.0.0, never outranked 1.4.1.0, and was never
offered (confirmed in RaidcoreGG/Nexus AddonVersion.cpp + Updater.cpp; the latter
also shows prereleases are correctly gated by the per-addon AllowPrereleases
toggle, so a clean-numeric tag + prerelease flag is safe).
Beta tags must therefore be pure numeric (v1.5.0.1), which breaks the old
contains('-') routing. Replace it with a `classify` job that counts version
segments: 3 (vX.Y.Z) -> stable `publish` (prerelease:false, ships main's
artifact); 4 (vX.Y.Z.N) -> `publish-beta` (prerelease:true, self-builds). The
GitHub prerelease flag still does the gating; the tag stays parseable. Don't mix
3- and 4-segment tags in one line - Nexus parses a 3-segment Revision as -1,
incomparable with a 4-segment .N.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>