Full rewrite of the portfolio site from Next.js 14 to .NET 10: - ASP.NET Core 10 Razor Pages, no Node.js dependency - EF Core 10 + SQLite (same schema as before — data survives upgrade) - Cookie authentication (same single-password model) - Resend contact form via HttpClient - Bilingual FA/EN via locale cookie + BasePageModel - All UI ported to Razor Pages with Tailwind CDN + custom CSS - Vanilla JS: particles, typewriter, cursor, animations, portfolio modal - Dockerfile: SDK 10.0-alpine → aspnet 10.0-alpine (no npm/Node needed) - CI/CD: dropped NPM_TOKEN, ADMIN_SESSION_SECRET — pure dotnet publish Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,11 +29,5 @@ jobs:
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
- name: Docker Build Test
|
||||
env:
|
||||
NODE_IMAGE: mirror.soroushasadi.com/node:20-alpine
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
run: |
|
||||
docker build \
|
||||
--build-arg NODE_IMAGE="$NODE_IMAGE" \
|
||||
--build-arg NPM_TOKEN="$NPM_TOKEN" \
|
||||
-t soroushasadi-site:test .
|
||||
docker build -t soroushasadi-site:test .
|
||||
|
||||
@@ -32,45 +32,33 @@ jobs:
|
||||
run: |
|
||||
cat > .env << EOF
|
||||
ADMIN_PASSWORD=${{ secrets.ADMIN_PASSWORD }}
|
||||
ADMIN_SESSION_SECRET=${{ secrets.ADMIN_SESSION_SECRET }}
|
||||
RESEND_API_KEY=${{ secrets.RESEND_API_KEY }}
|
||||
CONTACT_INBOX=${{ secrets.CONTACT_INBOX }}
|
||||
CONTACT_FROM=${{ secrets.CONTACT_FROM }}
|
||||
NPM_TOKEN=${{ secrets.NPM_TOKEN }}
|
||||
EOF
|
||||
|
||||
- name: Build Container
|
||||
env:
|
||||
NODE_IMAGE: mirror.soroushasadi.com/node:20-alpine
|
||||
run: |
|
||||
docker compose build
|
||||
run: docker compose build
|
||||
|
||||
- name: Deploy
|
||||
run: |
|
||||
docker compose up -d --remove-orphans
|
||||
run: docker compose up -d --remove-orphans
|
||||
|
||||
- name: Wait For Health Check
|
||||
run: |
|
||||
for i in $(seq 1 30); do
|
||||
|
||||
STATUS=$(docker inspect \
|
||||
--format='{{.State.Health.Status}}' \
|
||||
soroushasadi-site 2>/dev/null)
|
||||
|
||||
echo "Status: $STATUS"
|
||||
|
||||
if [ "$STATUS" = "healthy" ]; then
|
||||
echo "Deployment successful"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sleep 5
|
||||
done
|
||||
|
||||
docker logs soroushasadi-site --tail 100
|
||||
exit 1
|
||||
|
||||
- name: Cleanup
|
||||
if: success()
|
||||
run: |
|
||||
docker image prune -f
|
||||
run: docker image prune -f
|
||||
|
||||
Reference in New Issue
Block a user