From 63e030078898fb108a3ae302d23d9ae839a7f827 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Sun, 5 Jul 2026 21:51:29 +0200 Subject: [PATCH] fix(deploy): retry publish after clearing NuGet caches on NU3008 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The prod deploy failed restoring a transitive package (Microsoft.CodeAnalysis.Workspaces.Common) with NU3008 "package integrity check failed / has changed since it was signed" — a transient corrupted download on the build host, not a code change. Wrap the backend `dotnet publish` so that on any failure it clears all NuGet caches and retries once, re-downloading the package fresh. Co-Authored-By: Claude Opus 4.8 --- JobTrackerApi/Dockerfile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/JobTrackerApi/Dockerfile b/JobTrackerApi/Dockerfile index 0c44489..8597334 100644 --- a/JobTrackerApi/Dockerfile +++ b/JobTrackerApi/Dockerfile @@ -9,7 +9,14 @@ COPY Models/ Models/ COPY JobTrackerApi/ JobTrackerApi/ COPY JobTrackerBackend/ JobTrackerBackend/ -RUN dotnet publish JobTrackerApi/JobTrackerApi.csproj -c Release -o /app/publish /p:UseAppHost=false +# Retry once after clearing NuGet caches. Transient download corruption on the +# build host can trip NU3008 ("package integrity check failed / has changed since +# it was signed") while restoring a transitive package; clearing the caches and +# re-downloading resolves it. +RUN dotnet publish JobTrackerApi/JobTrackerApi.csproj -c Release -o /app/publish /p:UseAppHost=false \ + || ( echo "Publish failed — clearing NuGet caches and retrying once..." \ + && dotnet nuget locals all --clear \ + && dotnet publish JobTrackerApi/JobTrackerApi.csproj -c Release -o /app/publish /p:UseAppHost=false ) FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime