Skip to content

Commit 58517e3

Browse files
authored
feat: cd구축 (#83)
1 parent 487eb91 commit 58517e3

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

.github/workflows/gradle.yml

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches: [ "develop" ]
88

99
jobs:
10-
test:
10+
build:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- name: Checkout code
@@ -24,3 +24,62 @@ jobs:
2424

2525
- name: Build without running tests
2626
run: ./gradlew build -x test
27+
28+
deploy:
29+
needs: build
30+
runs-on: ubuntu-latest
31+
if: github.ref == 'refs/heads/develop'
32+
33+
steps:
34+
- name: Checkout code
35+
uses: actions/checkout@v4
36+
37+
- name: Set up JDK
38+
uses: actions/setup-java@v3
39+
with:
40+
java-version: '21'
41+
distribution: 'temurin'
42+
43+
- name: Build application
44+
run: ./gradlew build -x test
45+
46+
- name: Build Docker image
47+
run: |
48+
sudo docker build -t ${{ secrets.DOCKER_USERNAME }}/my-app:latest .
49+
sudo docker build -t ${{ secrets.DOCKER_USERNAME }}/my-app:${{ github.sha }} .
50+
51+
- name: Login to Docker Hub
52+
uses: docker/login-action@v2
53+
with:
54+
username: ${{ secrets.DOCKER_USERNAME }}
55+
password: ${{ secrets.DOCKER_PASSWORD }}
56+
57+
- name: Push Docker image
58+
run: |
59+
sudo docker push ${{ secrets.DOCKER_USERNAME }}/my-app:latest
60+
sudo docker push ${{ secrets.DOCKER_USERNAME }}/my-app:${{ github.sha }}
61+
62+
- name: Deploy to EC2
63+
uses: appleboy/[email protected]
64+
with:
65+
host: ${{ secrets.EC2_HOST }}
66+
username: ${{ secrets.EC2_USER }}
67+
key: ${{ secrets.EC2_PRIVATE_KEY }}
68+
port: 22
69+
script: |
70+
# 기존 컨테이너 중지 및 삭제
71+
sudo docker stop my-app || true
72+
sudo docker rm my-app || true
73+
74+
# 새 이미지 pull
75+
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/my-app:latest
76+
77+
# 새 컨테이너 실행
78+
sudo docker run -d --name my-app -p 8080:8080 \
79+
-e SPRING_PROFILES_ACTIVE=prod \
80+
${{ secrets.DOCKER_USERNAME }}/my-app:latest
81+
82+
# 이미지 정리
83+
sudo docker image prune -f
84+
85+
sudo docker ps

0 commit comments

Comments
 (0)