Windows publishing, Azure signing, and updates
The release script builds the server and desktop packages, signs the Windows executable and bootstrapper when requested, and writes a download manifest with SHA-256 hashes.
Azure Artifact Signing
- Install Windows SDK SignTool and Microsoft Artifact Signing client tools. Configure an Azure Artifact Signing account and certificate profile, and grant the publishing identity permission to sign.
- Supply signing metadata containing Endpoint, CodeSigningAccountName, and CertificateProfileName. Keep credentials out of source control; authenticate the publishing environment to Azure.
- Run the signing configuration check, then publish with the intended version. The check verifies local configuration/tool paths; Azure authorization is verified during actual signing.
.\OldGodsCompanion\scripts\Publish-OldGodsCompanion.ps1 -ArtifactSigning -CheckSigningOnly
.\OldGodsCompanion\scripts\Publish-OldGodsCompanion.ps1 -Version RELEASE_VERSION -PackageDownloads -ArtifactSigningUse -SigningMetadataPath, -ArtifactSigningDlibPath, or -SignToolPath when tools or metadata are not in their default locations. The Azure timestamp URL defaults to http://timestamp.acs.microsoft.com. The script verifies signatures after signing and hashes the signed release bytes. Do not modify signed files afterward.
Deploy
Deploy the server output with its Documentation directory and wwwroot assets. Preserve production App_Data, databases, uploads, keys, and hosting secrets. Release packages and manifest are included with -PackageDownloads. Public URLs use https://oldgods.io/downloads. Documentation displays the release version from the deployed manifest.
-DocumentationOnly stages guide content and assets without changing versions or building applications. Changes to Razor pages, including the protected test checklist, require a server publish.
Verify
Check Windows signatures, manifest URLs and hashes, installation with the Companion open and closed, sign-in, addon update, and an authorized upload. Complete the signed-in checklist. Keep a known-good server/package backup for rollback and preserve all persistent data.