Skip to content

Merge pull request #52 from prasadhonrao/development #2

Merge pull request #52 from prasadhonrao/development

Merge pull request #52 from prasadhonrao/development #2

Workflow file for this run

name: API - Continuous Deployment
on:
push:
branches:
- main
paths:
- 'api/**'
workflow_dispatch:
env:
DOCKER_IMAGE: prasadhonrao/devcamper-api
AZURE_WEBAPP_NAME: devcamperapi
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
run: |
docker build -t ${{ env.DOCKER_IMAGE }}:${{ github.sha }} -f api/Dockerfile api
docker tag ${{ env.DOCKER_IMAGE }}:${{ github.sha }} ${{ env.DOCKER_IMAGE }}:latest
docker push ${{ env.DOCKER_IMAGE }}:${{ github.sha }}
docker push ${{ env.DOCKER_IMAGE }}:latest
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Log in to Azure
uses: azure/login@v2
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v2
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
images: '${{ env.DOCKER_IMAGE }}:latest'
notify:
runs-on: ubuntu-latest
needs: deploy
if: always()
steps:
- name: Send email notification
uses: dawidd6/action-send-mail@v3
with:
server_address: smtp.gmail.com
server_port: 587
username: ${{ secrets.GMAIL_USERNAME }}
password: ${{ secrets.GMAIL_PASSWORD }}
subject: '${{ job.status }}: Deployment Notification'
body: |
The deployment has ${{ job.status }}!
Repository: ${{ github.repository }}
Branch: ${{ github.ref }}
Commit: ${{ github.sha }}
Author: ${{ github.actor }}
Workflow: ${{ github.workflow }}
Job: ${{ github.job }}
Run ID: ${{ github.run_id }}
Run Number: ${{ github.run_number }}
Logs: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
to: ${{ secrets.NOTIFY_EMAIL }}
from: ${{ secrets.GMAIL_USERNAME }}