-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (121 loc) · 4.55 KB
/
cd.yml
File metadata and controls
130 lines (121 loc) · 4.55 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
name: CD
run-name: CD - 실행 #${{ github.run_number }}
on:
push:
branches: [ "develop" ]
workflow_dispatch:
concurrency:
group: dodo-backend-cd-${{ github.ref }}
cancel-in-progress: true
jobs:
deploy:
name: 빌드 및 배포
if: github.repository == 'DoDo-Project/dodo-backend' && github.ref == 'refs/heads/develop'
runs-on: [self-hosted, Linux, X64]
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_DATASOURCE_URL: ${{ secrets.SPRING_DATASOURCE_URL }}
SPRING_DATASOURCE_USERNAME: ${{ secrets.SPRING_DATASOURCE_USERNAME }}
SPRING_DATASOURCE_PASSWORD: ${{ secrets.SPRING_DATASOURCE_PASSWORD }}
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: ${SPRING_DATASOURCE_URL}
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: none
show-sql: false
data:
redis:
host: ${SPRING_DATA_REDIS_HOST}
port: ${SPRING_DATA_REDIS_PORT}
mail:
host: smtp.gmail.com
port: 587
username: ${SPRING_MAIL_USERNAME}
password: ${SPRING_MAIL_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}
naver:
client_id: ${NAVER_CLIENT_ID}
client_secret: ${NAVER_CLIENT_SECRET}
redirect_uri: ${NAVER_REDIRECT_URI}
google:
client_id: ${GOOGLE_CLIENT_ID}
client_secret: ${GOOGLE_CLIENT_SECRET}
redirect_uri: ${GOOGLE_REDIRECT_URI}
openai:
api-key: ${OPENAI_API_KEY}
model: ${OPENAI_MODEL}
jwt:
secret: ${JWT_SECRET}
access-token-validity: 3600000
refresh-token-validity: 1209600000
cloudinary:
cloud-name: ${CLOUDINARY_CLOUD_NAME}
api-key: ${CLOUDINARY_API_KEY}
api-secret: ${CLOUDINARY_API_SECRET}
EOF
- name: 빌드
run: ./gradlew clean bootJar -x test
- name: 애플리케이션 재시작
run: |
sudo -n /usr/bin/systemctl restart dodo-backend
sudo -n /usr/bin/systemctl status dodo-backend --no-pager -l