Skip to content

Commit 0740afb

Browse files
committed
Add GitHub Actions workflow for CI/CD pipeline deployment
1 parent 50b34fa commit 0740afb

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CI/CD Pipeline
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build-and-deploy:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v3
15+
16+
- name: Login to Docker Hub
17+
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
18+
19+
- name: Build backend image
20+
run: docker build -t ${{ secrets.DOCKER_USERNAME }}/mean-backend:latest ./backend
21+
22+
- name: Build frontend image
23+
run: docker build -t ${{ secrets.DOCKER_USERNAME }}/mean-frontend:latest ./frontend
24+
25+
- name: Push backend image
26+
run: docker push ${{ secrets.DOCKER_USERNAME }}/mean-backend:latest
27+
28+
- name: Push frontend image
29+
run: docker push ${{ secrets.DOCKER_USERNAME }}/mean-frontend:latest
30+
31+
- name: Deploy to EC2
32+
uses: appleboy/ssh-action@master
33+
with:
34+
host: ${{ secrets.EC2_HOST }}
35+
username: ${{ secrets.EC2_USER }}
36+
key: ${{ secrets.EC2_SSH_KEY }}
37+
script: |
38+
cd mean-app
39+
docker compose pull
40+
docker compose down
41+
docker compose up -d

0 commit comments

Comments
 (0)