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 "raghu6004@gmail.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