Skip to content

build: Fallout CI + nuget.org Trusted Publishing (Chrison.* IDs)#12

Merged
ChrisonSimtian merged 1 commit into
mainfrom
feat/fallout-ci-nuget-publish
Jul 23, 2026
Merged

build: Fallout CI + nuget.org Trusted Publishing (Chrison.* IDs)#12
ChrisonSimtian merged 1 commit into
mainfrom
feat/fallout-ci-nuget-publish

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

Mirrors the ProxmoxSharp (#20) / UnifiSharp (#14) conversion for SynoSharp: Fallout build/CI + Chrison.* IDs + nuget.org Trusted Publishing (OIDC, keyless). Part of P0 for the org-migration epic (Chrison-dev/Homelab#282). SynoSharp is the simple case — hand-written client, no .Api/codegen.

What changed

  • Fallout build (build/ + build.sh/ps1 + .fallout/ marker); new nuget.config scopes the Fallout-build feed to Fallout.*.
  • Chrison.* IDsChrison.SynoSharp, Chrison.SynoSharp.Cli. AssemblyName/namespace stay SynoSharp; the synosharp command is unchanged. (The bare SynoSharp ID is actually free on nuget.org, but we use the Chrison.* prefix for consistency with the siblings.)
  • Workflowsci.yml → build+test; publish.ymlNuGet/login@v1 OIDC → push (prerelease on main, stable on v*), job runs in the Nuget.org environment.

Verified locally

./build.sh Pack26 tests pass, emits Chrison.SynoSharp{,.Cli}.nupkg.

Setup (I've done the repo side)

PACKAGES_PAT + NUGET_USER secrets and the Nuget.org environment are set. Needs you: create the nuget.org Trusted Publishing policy — owner Chrison-dev, repo SynoSharp, workflow publish.yml, Environment Nuget.org (per our schema).

Consumer updates (Homelab engine → Chrison.SynoSharp from nuget.org) belong to the Homelab-side migration (#282, P6), not this PR.

Mirror the ProxmoxSharp/UnifiSharp conversion for SynoSharp (hand-written client,
no codegen):

- build/: Fallout build project (Compile/Test/Pack/Publish) + build.sh/ps1 +
  .fallout/ root marker; new nuget.config adds the Fallout-build feed (Fallout.* only).
- Rename package IDs to the Chrison.* prefix (Chrison.SynoSharp, Chrison.SynoSharp.Cli).
  AssemblyName/RootNamespace stay SynoSharp, so `using SynoSharp;` and the `synosharp`
  command are unchanged.
- ci.yml → build+test only; publish.yml → NuGet/login@v1 OIDC → push to nuget.org
  (prerelease on main, stable on v* tag), job runs in the Nuget.org environment.
- README: Build/Packages updated for Fallout + Chrison.* on nuget.org.

Verified locally: ./build.sh Pack → 26 tests pass, emits Chrison.SynoSharp*.nupkg.

Requires (repo setup): PACKAGES_PAT + NUGET_USER secrets, a Nuget.org GH environment,
and a nuget.org Trusted Publishing policy for this repo + publish.yml (Environment=Nuget.org).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisonSimtian
ChrisonSimtian merged commit 0335294 into main Jul 23, 2026
2 checks passed
@ChrisonSimtian
ChrisonSimtian deleted the feat/fallout-ci-nuget-publish branch July 23, 2026 03:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant