Jenkins agent cannot resolve linuxpcl.azurewebsites.net due to DNS
restrictions on the build machine.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ZipFile.CreateFromDirectory on Windows produces backslash paths in zip
entries. Linux treats backslash as a literal filename character so
wwwroot\css\site.css is never found at wwwroot/css/site.css. Build the
zip manually with Replace backslash→forward slash on each entry name.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Test stage (unit tests only) before migrations so bad code fails fast
- Add az webapp restart after async deploy to ensure new code is loaded
- Add Health Check stage that polls app for up to 3 minutes post-deploy
- Restore xcopy of wwwroot (needed for linux-x64 publish on Windows)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fully manual pipeline (no triggers): build/test → publish → generate
idempotent EF migration SQL (archived as artifact) → apply to Azure SQL
via sqlcmd → ZIP deploy to App Service → smoke test.
Includes jenkins/Dockerfile (adds .NET 8 SDK, Azure CLI, mssql-tools18,
dotnet-ef 8.0.11 to jenkins/jenkins:lts) and .config/dotnet-tools.json
tool manifest.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>