-
Notifications
You must be signed in to change notification settings - Fork 2
135 lines (125 loc) · 4.8 KB
/
ci.yml
File metadata and controls
135 lines (125 loc) · 4.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: CI
run-name: CI - 실행 #${{ github.run_number }}
on:
pull_request:
branches: [ "develop" ]
types: [opened, synchronize, reopened, ready_for_review]
concurrency:
group: dodo-backend-ci-pr-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
build:
name: 빌드 및 테스트
if: github.repository == 'DoDo-Project/dodo-backend' && github.event.pull_request.draft == false
runs-on: ubuntu-latest
services:
redis:
image: redis:7-alpine
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: 코드 체크아웃
uses: actions/checkout@v4
- name: JDK 17 설정
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Gradle 실행 권한 부여
run: chmod +x gradlew
- name: application.yml 생성
env:
SPRING_DATA_REDIS_HOST: ${{ secrets.SPRING_DATA_REDIS_HOST }}
SPRING_DATA_REDIS_PORT: ${{ secrets.SPRING_DATA_REDIS_PORT }}
SPRING_MAIL_USERNAME: ${{ secrets.SPRING_MAIL_USERNAME }}
SPRING_MAIL_PASSWORD: ${{ secrets.SPRING_MAIL_PASSWORD }}
NAVER_CLIENT_ID: ${{ secrets.NAVER_CLIENT_ID }}
NAVER_CLIENT_SECRET: ${{ secrets.NAVER_CLIENT_SECRET }}
NAVER_REDIRECT_URI: ${{ secrets.NAVER_REDIRECT_URI }}
GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
GOOGLE_CLIENT_SECRET: ${{ secrets.GOOGLE_CLIENT_SECRET }}
GOOGLE_REDIRECT_URI: ${{ secrets.GOOGLE_REDIRECT_URI }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_MODEL: ${{ secrets.OPENAI_MODEL }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
FCM_CERTIFICATION: ${{ secrets.FCM_CERTIFICATION }}
CLOUDINARY_CLOUD_NAME: ${{ secrets.CLOUDINARY_CLOUD_NAME }}
CLOUDINARY_API_KEY: ${{ secrets.CLOUDINARY_API_KEY }}
CLOUDINARY_API_SECRET: ${{ secrets.CLOUDINARY_API_SECRET }}
run: |
cat > src/main/resources/application.yml <<EOF
spring:
application:
name: dodo-backend
datasource:
url: jdbc:h2:mem:testdb;MODE=MySQL
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
hibernate:
ddl-auto: create-drop
database-platform: org.hibernate.dialect.H2Dialect
show-sql: false
data:
redis:
host: ${SPRING_DATA_REDIS_HOST:-localhost}
port: ${SPRING_DATA_REDIS_PORT:-6379}
mail:
host: smtp.gmail.com
port: 587
username: ${SPRING_MAIL_USERNAME:-test@example.com}
password: ${SPRING_MAIL_PASSWORD:-test-password}
properties:
mail:
smtp:
auth: true
timeout: 5000
starttls:
enable: true
servlet:
multipart:
max-file-size: 10MB
max-request-size: 50MB
mybatis:
mapper-locations: classpath:com/dodo/backend/**/mapper/*.xml
type-aliases-package: com.dodo.backend
type-handlers-package: com.dodo.backend.common.handler
configuration:
map-underscore-to-camel-case: true
springdoc:
api-docs:
path: /v3/api-docs
redoc:
enabled: false
swagger-ui:
enabled: false
fcm:
certification: ${FCM_CERTIFICATION:-classpath:fcm-key.json}
naver:
client_id: ${NAVER_CLIENT_ID:-test_naver_id}
client_secret: ${NAVER_CLIENT_SECRET:-test_naver_secret}
redirect_uri: ${NAVER_REDIRECT_URI:-http://localhost:8080/naver-login}
google:
client_id: ${GOOGLE_CLIENT_ID:-test_google_id}
client_secret: ${GOOGLE_CLIENT_SECRET:-test_google_secret}
redirect_uri: ${GOOGLE_REDIRECT_URI:-http://localhost:8080/google-login}
openai:
api-key: ${OPENAI_API_KEY:-}
model: ${OPENAI_MODEL:-gpt-4o-mini}
jwt:
secret: ${JWT_SECRET:-test_jwt_secret_key_must_be_very_long_to_pass_validation_check}
access-token-validity: 3600000
refresh-token-validity: 1209600000
cloudinary:
cloud-name: ${CLOUDINARY_CLOUD_NAME:-test-cloud}
api-key: ${CLOUDINARY_API_KEY:-test-key}
api-secret: ${CLOUDINARY_API_SECRET:-test-secret}
EOF
- name: Gradle 빌드 및 테스트
run: ./gradlew clean build