From 63e030078898fb108a3ae302d23d9ae839a7f827 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Sun, 5 Jul 2026 21:51:29 +0200 Subject: [PATCH 1/2] 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 From 4b38f7c164d341368d682c4a6c1bdbae7f466806 Mon Sep 17 00:00:00 2001 From: cesnimda Date: Mon, 6 Jul 2026 01:08:00 +0200 Subject: [PATCH 2/2] ci: retry npm ci once on the runner's intermittent SIGSEGV MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The frontend deps step occasionally crashes with "Segmentation fault (core dumped)" (exit 139) during `npm ci` — a memory/native flake on the act_runner, unrelated to the change under test (it failed the deploy-fix PR whose only change is the Dockerfile). Retry once with a clean node_modules before failing. Co-Authored-By: Claude Opus 4.8 --- .gitea/workflows/ci-deploy.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ci-deploy.yml b/.gitea/workflows/ci-deploy.yml index 98468d8..1e83db2 100644 --- a/.gitea/workflows/ci-deploy.yml +++ b/.gitea/workflows/ci-deploy.yml @@ -39,7 +39,12 @@ jobs: run: | node -v npm -v - npm ci --no-audit --no-fund + # npm ci occasionally segfaults on the runner (SIGSEGV/139, a memory/native + # flake). Retry once with a clean node_modules before failing the job. + npm ci --no-audit --no-fund \ + || ( echo "npm ci failed ($?) — cleaning node_modules and retrying once..." \ + && rm -rf node_modules \ + && npm ci --no-audit --no-fund ) - name: Test frontend working-directory: job-tracker-ui