57 lines
1.4 KiB
YAML
57 lines
1.4 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: |
|
|
cat > /tmp/email.txt << 'ENDMAIL'
|
|
From: GitHub Actions
|
|
To: raghu6004@gmail.com
|
|
Subject: Deployment Successful - Portfolio
|
|
|
|
Deployment completed successfully!
|
|
ENDMAIL
|
|
|
|
curl --ssl-reqd \
|
|
--url "smtps://smtp.gmail.com:465" \
|
|
--user "${{ secrets.EMAIL_USERNAME }}:${{ secrets.EMAIL_PASSWORD }}" \
|
|
--mail-from "${{ secrets.EMAIL_USERNAME }}" \
|
|
--mail-rcpt "raghu6004@gmail.com" \
|
|
--upload-file /tmp/email.txt
|
|
|
|
rm /tmp/email.txt
|