61 lines
1.7 KiB
YAML
61 lines
1.7 KiB
YAML
name: Deploy Portfolio
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: self-hosted
|
|
steps:
|
|
- name: Checkout code
|
|
run: |
|
|
rm -rf * .git
|
|
git clone "https://code.chagarlamudi.net/raghu-ch/rc-portfolio.git" .
|
|
|
|
- name: Build Docker image
|
|
run: docker build -t rc-portfolio:latest .
|
|
|
|
- name: Stop old container
|
|
run: docker stop rc-portfolio || true
|
|
|
|
- name: Remove old container
|
|
run: docker rm rc-portfolio || true
|
|
|
|
- name: Run new container
|
|
run: |
|
|
docker run -d \
|
|
--name rc-portfolio \
|
|
--restart unless-stopped \
|
|
-p 8080:80 \
|
|
rc-portfolio:latest
|
|
|
|
- name: Clean up old images
|
|
run: docker image prune -f
|
|
|
|
# Email notification using curl (Gmail SMTP)
|
|
- name: Send success email
|
|
if: success()
|
|
run: |
|
|
curl --ssl-reqd \
|
|
--url "smtps://smtp.gmail.com:465" \
|
|
--user "${{ secrets.EMAIL_USERNAME }}:${{ secrets.EMAIL_PASSWORD }}" \
|
|
--mail-from "${{ secrets.EMAIL_USERNAME }}" \
|
|
--mail-rcpt "your-email@example.com" \
|
|
--upload-file - <<'EOF'
|
|
From: GitHub Actions <${{ secrets.EMAIL_USERNAME }}>
|
|
To: your-email@example.com
|
|
Subject: Deployment Successful - Portfolio
|
|
|
|
Deployment completed successfully!
|
|
|
|
Repository: ${{ github.repository }}
|
|
Branch: ${{ github.ref_name }}
|
|
Commit: ${{ github.sha }}
|
|
Workflow: ${{ github.workflow }}
|
|
Run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
|
|
Time: $(date)
|
|
EOF
|