💻 You write/update your application code.
⬆️ Commit & push to your GitHub repository.
🛎️ This triggers a GitHub Action workflow.
⚙️ GitHub reads your .github/workflows/deploy.yml
file.
🎯 Jobs & steps are executed (like testing, building, packaging).
🔑 GitHub uses AWS credentials (Access Key, Secret Key, Role, OIDC) to authenticate with AWS.
🧪 Unit Tests, Integration Tests, Linting.
📦 Build code → Create artifact (e.g., ZIP, JAR, Docker Image).
✅ Ensures only working code moves forward.
Depending on your setup:
📦 AWS S3 → Upload build artifacts (Lambda, static websites).
🐳 ECR (Elastic Container Registry) → Push Docker images.
🚀 GitHub Action triggers deployment commands using AWS CLI / CDK / SAM / Terraform.
Common services:
AWS Lambda → for serverless apps.
Amazon ECS / EKS → for containerized apps.
Elastic Beanstalk → for web apps.
S3 + CloudFront → for static websites.
⚡ CloudFormation/CDK stack updates resources.
🎛️ Load balancer, scaling groups, environment variables updated automatically.
🧐 GitHub Action checks deployment success.
🔍 Logs can be viewed in AWS CloudWatch.
📊 Health checks via ALB / ECS / Lambda console.
📩 GitHub can notify via Slack, Email, or GitHub Status.
🎉 Success = Green ✅ | ❌ Failures trigger alerts.
👨💻 Developer → 🔄 Push Code →
⚙️ GitHub Actions (CI/CD) →
🧪 Test & Build → 📦 Package →
⬆️ Upload to AWS (S3/ECR) →
🚀 Deploy (Lambda/ECS/Beanstalk/S3) →
📊 Monitor with CloudWatch →
🎉 Success Notification
✨ In short:
GitHub Actions = CI/CD brain 🧠
AWS = Deployment home 🏡