Skip to content

Commit 590a6b2

Browse files
authored
Merge pull request #245 from boostcampwm-2024/feat/#244-cicd
✨ feat: cicd를 위한 yml파일
2 parents 4cb4f22 + b94824a commit 590a6b2

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

.github/workflows/ci.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: CI-CD
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build-and-test:
10+
runs-on: ubuntu-latest
11+
12+
services:
13+
mysql:
14+
image: mysql:8
15+
env:
16+
MYSQL_ROOT_PASSWORD: root
17+
MYSQL_DATABASE: real_ticket
18+
ports:
19+
- 3306:3306
20+
redis:
21+
image: redis:latest
22+
ports:
23+
- 6379:6379
24+
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v3
28+
29+
- name: Set up Node.js
30+
uses: actions/setup-node@v3
31+
with:
32+
node-version: 20
33+
cache: 'npm'
34+
35+
- name: Build Docker image for backend
36+
run: |
37+
docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO_BACKEND }} ./back
38+
- name: Build Docker image for frontend
39+
run: |
40+
docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO_FRONTEND }} ./front
41+
42+
- name: Run backend container
43+
run: |
44+
docker run -d --name backend-container -p ${{ secrets.BACKEND_SERVER_PORT }}:${{ secrets.BACKEND_SERVER_PORT }} ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO_BACKEND }}
45+
- name: Run frontend container
46+
run: |
47+
docker run -d --name frontend-container -p ${{ secrets.FRONT_SERVER_PORT }}:${{ secrets.FRONT_SERVER_PORT }} ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO_FRONTEND }}
48+
49+
- name: Log in to Docker Hub
50+
uses: docker/login-action@v2
51+
with:
52+
username: ${{ secrets.DOCKER_USERNAME }}
53+
password: ${{ secrets.DOCKER_PASSWORD }}
54+
55+
- name: Push backend image to Docker Hub
56+
run: |
57+
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO_BACKEND }}
58+
- name: Push front image to Docker Hub
59+
run: |
60+
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO_FRONTEND }}
61+
62+
deploy:
63+
runs-on: ubuntu-latest
64+
needs: build-and-test
65+
66+
steps:
67+
- name: Set up sshpass
68+
run: |
69+
sudo apt update
70+
sudo apt install -y sshpass
71+
72+
- name: Access Backend server and deploy
73+
run: |
74+
sshpass -p "${{ secrets.PUBLIC_SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no root@${{ secrets.PUBLIC_SERVER_IP }} \
75+
"sshpass -p '${{ secrets.BACKEND_SERVER_PASSWORD }}' ssh -o StrictHostKeyChecking=no root@${{ secrets.BACKEND_SERVER_IP }} \
76+
'./nest/start.sh; exit'"
77+
78+
- name: Access Frontend server and deploy
79+
run: |
80+
sshpass -p "${{ secrets.PUBLIC_SERVER_PASSWORD }}" ssh -o StrictHostKeyChecking=no root@${{ secrets.PUBLIC_SERVER_IP }} \
81+
"sshpass -p '${{ secrets.FRONT_SERVER_PASSWORD }}' ssh -o StrictHostKeyChecking=no root@${{ secrets.FRONT_SERVER_IP }} \
82+
'./front/start.sh'"

0 commit comments

Comments
 (0)