Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 39 additions & 2 deletions .github/workflows/backend-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ on:
types: [opened, synchronize, reopened]

jobs:
build-and-test:
# --------------------------
# main 브랜치용 build & test
# --------------------------
build-and-test-main:
if: github.base_ref == 'main' # main 브랜치로 PR이 들어올 때만 실행
runs-on: ubuntu-latest

services:
Expand All @@ -23,8 +27,9 @@ jobs:
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: testdb
# MySQL 헬스체크, MySQL 실행 준비 중인 동안 스프링부트 실행을 방지
options: >-
--health-cmd="mysqladmin ping -h localhost -p$MYSQL_ROOT_PASSWORD"
--health-interval=10s
Expand Down Expand Up @@ -52,5 +57,37 @@ jobs:
run: ./gradlew clean build -x test

# Test 실행
- name: Run tests
run: ./gradlew test

# --------------------------
# dev 브랜치용 build & test
# --------------------------
build-and-test-dev:
if: github.base_ref == 'dev' # dev 브랜치로 PR이 들어올 때만 실행
runs-on: ubuntu-latest

services:
redis:
image: redis:7
ports:
- 6379:6379

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Java 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'

- name: Create .env file
run: echo "${{ secrets.DOT_ENV }}" > .env

- name: Build project
run: ./gradlew clean build -x test

- name: Run tests
run: ./gradlew test
21 changes: 18 additions & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
version: "3.9"

# 개발환경에서는 redis만 실행하셔도 무관합니다
services:
redis:
image: redis:6.2
image: redis:7
container_name: local-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: ["redis-server", "--appendonly", "yes"]

# 운영환경용 (MySQL)
mysql:
image: mysql:8.0
container_name: local-mysql
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: testdb
MYSQL_USER: root_user
MYSQL_PASSWORD: root_pass
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql

volumes:
redis_data:
redis_data:
mysql_data:
1 change: 1 addition & 0 deletions infra/terraform/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,7 @@ docker network create common
# redis 설치
docker run -d \
--name redis_1 \
--restart unless-stopped \
--network common \
-p 6379:6379 \
-e TZ=Asia/Seoul \
Expand Down