Skip to content

Commit d1da2e8

Browse files
authored
Merge pull request #419 from EAT-SSU/feat/#386-separate-ci-cd-jobs
feat: CI ๋นŒ๋“œ์™€ ๋ฐฐํฌ job ๋ถ„๋ฆฌ ๋ฐ ํ…Œ์ŠคํŠธ ์Šคํ‚ต ์ œ๊ฑฐ
2 parents 60cdd6b + 1f54bd7 commit d1da2e8

2 files changed

Lines changed: 54 additions & 11 deletions

File tree

Lines changed: 53 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,38 @@ name: EAT-SSU Server ๊ฐœ๋ฐœ & ์šด์˜ ์„œ๋ฒ„ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ
22

33
on:
44
push:
5-
branches: [ "main", "develop", "hotfix/deploy-prod-fail", "hotfix/deploy-dev-fail" ]
5+
branches: [ "main", "develop" ]
66

77
permissions:
88
contents: read
99

1010
jobs:
11-
CI-CD:
12-
name: CI/CD
11+
build:
12+
name: Build
1313
runs-on: ubuntu-latest
14+
services:
15+
mysql:
16+
image: mysql:8.0
17+
env:
18+
MYSQL_DATABASE: eatssu_test
19+
MYSQL_ROOT_PASSWORD: test
20+
ports:
21+
- 3306:3306
22+
options: >-
23+
--health-cmd="mysqladmin ping -h localhost"
24+
--health-interval=10s
25+
--health-timeout=5s
26+
--health-retries=10
27+
env:
28+
EATSSU_DB_URL_TEST: jdbc:mysql://localhost:3306/eatssu_test
29+
EATSSU_DB_USERNAME: root
30+
EATSSU_DB_PASSWORD: test
31+
EATSSU_AWS_ACCESS_KEY_DEV: dummy-access-key
32+
EATSSU_AWS_SECRET_KEY_DEV: dummy-secret-key
33+
EATSSU_SLACK_TOKEN: dummy-slack-token
1434
steps:
1535
- uses: actions/checkout@v3
36+
1637
- name: JDK 17 ์„ค์น˜
1738
uses: actions/setup-java@v3
1839
with:
@@ -30,15 +51,15 @@ jobs:
3051
${{ runner.os }}-gradle-
3152
3253
- name: dev ํ”„๋กœํ•„ ์„ค์ •
33-
if: github.ref_name == 'develop' || github.ref_name == 'hotfix/deploy-dev-fail'
54+
if: github.ref_name == 'develop'
3455
run: |
3556
echo "spring:
3657
profiles:
3758
include: dev" > ./src/main/resources/application.yml
3859
shell: bash
3960

4061
- name: prod ํ”„๋กœํ•„ ์„ค์ •
41-
if: github.ref_name == 'main' || github.ref_name == 'hotfix/deploy-prod-fail'
62+
if: github.ref_name == 'main'
4263
run: |
4364
echo "spring:
4465
profiles:
@@ -48,34 +69,56 @@ jobs:
4869
- name: gradlew ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ
4970
run: chmod +x gradlew
5071

72+
- name: ํ…Œ์ŠคํŠธ์šฉ JWT ์‹œํฌ๋ฆฟ ์ƒ์„ฑ
73+
run: echo "EATSSU_JWT_SECRET_TEST=$(openssl rand -base64 64 | tr -d '\n')" >> "$GITHUB_ENV"
74+
5175
- name: Gradle๋กœ ๋นŒ๋“œ
52-
run: ./gradlew build -x test --no-daemon
76+
run: ./gradlew build --no-daemon
5377

5478
- name: ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ ํ™•์ธ
5579
run: ls -lh build/libs/*.jar
5680

81+
- name: ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ ์—…๋กœ๋“œ
82+
uses: actions/upload-artifact@v4
83+
with:
84+
name: app-jar
85+
path: build/libs/eat-ssu.jar
86+
87+
deploy:
88+
name: Deploy
89+
needs: build
90+
runs-on: ubuntu-latest
91+
steps:
92+
- uses: actions/checkout@v3
93+
94+
- name: ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ ๋‹ค์šด๋กœ๋“œ
95+
uses: actions/download-artifact@v4
96+
with:
97+
name: app-jar
98+
path: build/libs
99+
57100
- name: Docker Hub ๋กœ๊ทธ์ธ
58101
uses: docker/login-action@v2
59102
with:
60103
username: ${{ secrets.DOCKER_USERNAME }}
61104
password: ${{ secrets.DOCKER_PASSWORD }}
62105

63106
- name: prod ์šฉ Docker ๋นŒ๋“œ ๋ฐ ํ‘ธ์‹œ
64-
if: github.ref_name == 'main' || github.ref_name == 'hotfix/deploy-prod-fail'
107+
if: github.ref_name == 'main'
65108
run: |
66109
docker build -f Dockerfile -t ${{ secrets.DOCKER_REPO }}/eatssu-prod .
67110
docker push ${{ secrets.DOCKER_REPO }}/eatssu-prod
68111
69112
- name: dev ์„œ๋ฒ„ ์šฉ Docker ๋นŒ๋“œ ๋ฐ ํ‘ธ์‹œ
70-
if: github.ref_name == 'develop' || github.ref_name == 'hotfix/deploy-dev-fail'
113+
if: github.ref_name == 'develop'
71114
run: |
72115
docker build -f Dockerfile -t ${{ secrets.DOCKER_REPO }}/eatssu-dev .
73116
docker push ${{ secrets.DOCKER_REPO }}/eatssu-dev
74117
75118
- name: prod์— ๋ฐฐํฌ
76119
uses: appleboy/ssh-action@master
77120
id: deploy-prod
78-
if: github.ref_name == 'main' || github.ref_name == 'hotfix/deploy-prod-fail'
121+
if: github.ref_name == 'main'
79122
with:
80123
host: ${{ secrets.HOST_PROD }}
81124
username: ${{ secrets.USERNAME }}
@@ -106,7 +149,7 @@ jobs:
106149
- name: dev ์„œ๋ฒ„์— ๋ฐฐํฌ
107150
uses: appleboy/ssh-action@master
108151
id: deploy-dev
109-
if: github.ref_name == 'develop' || github.ref_name == 'hotfix/deploy-dev-fail'
152+
if: github.ref_name == 'develop'
110153
with:
111154
host: ${{ secrets.HOST_DEV }}
112155
username: ${{ secrets.USERNAME }}

โ€ŽCLAUDE.mdโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ src/main/java/ssu/eatssu/
8080

8181
### ๋ฐฐํฌ
8282

83-
GitHub Actions(`deploy.yml`)๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜์—ฌ EC2์— SSH ๋ฐฐํฌํ•œ๋‹ค. `prod`/`dev` ๋ธŒ๋žœ์น˜์— ๋”ฐ๋ผ ๋ฐฐํฌ ํ™˜๊ฒฝ์ด ๋ถ„๊ธฐ๋œ๋‹ค.
83+
GitHub Actions(`cd.yml`)๋กœ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜์—ฌ EC2์— SSH ๋ฐฐํฌํ•œ๋‹ค. `prod`/`dev` ๋ธŒ๋žœ์น˜์— ๋”ฐ๋ผ ๋ฐฐํฌ ํ™˜๊ฒฝ์ด ๋ถ„๊ธฐ๋œ๋‹ค.
8484

8585
## Commit Convention
8686

0 commit comments

Comments
ย (0)