53 lines
1.5 KiB
YAML
53 lines
1.5 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!
|
|
Repository: ${{ github.repository }}
|
|
Branch: ${{ github.ref_name }}
|
|
Commit: ${{ github.sha }}
|
|
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
|