dcddcf77d6
Root cause: actions/setup-dotnet@v4 downloads .NET from download.visualstudio.microsoft.com and actions/setup-node@v4 downloads Node from nodejs.org — both CDNs are blocked from Iran so jobs hang at 0s. Fix: - All .NET jobs: add container: mcr.microsoft.com/dotnet/sdk:10.0 so .NET is already inside the image — no download needed. Remove actions/setup-dotnet step entirely. - All Node.js jobs: add container: node:20-alpine so Node/npm are already inside the image — no download needed. Remove actions/setup-node step entirely. - api-build: add postgres + redis service containers + env vars so dotnet test can actually connect to a database (was silently failing). - deploy job: change back to runs-on: self-hosted ubuntu-latest containers don't have Docker CLI — docker compose commands would fail immediately. Deploy MUST run on the server. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>