Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
84 changes: 84 additions & 0 deletions .github/workflows/individual-deploy-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Individual Deploy Test

on:
pull_request:
branches: [ "develop" ]

permissions:
contents: read

jobs:
CI-CD:
runs-on: ubuntu-latest
steps:
# JDK setting - github actions에서 사용할 JDK 설정 (aws 과 project의 java 버전과 별도로 관리)
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

## gradle caching (빌드 시간 줄이기)
- name: Gradle Caching
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

# dev profile을 활성화 시킵니다.
- name: Set dev profile
run: |
echo "spring:
profiles:
include: dev" > ./src/main/resources/application.yml
shell: bash

# gradle chmod
- name: Grant execute permission for gradlew
run: chmod +x gradlew

# gradle build
- name: Build with Gradle
run: ./gradlew clean build -x test

# docker login
- name: Docker Hub Login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

# docker build & push to develop
- name: Docker build & push to dev server
run: |
docker build -f Dockerfile -t ${{ secrets.DOCKER_REPO }}/eatssu-dev .
docker push ${{ secrets.DOCKER_REPO }}/eatssu-dev

## deploy to develop
- name: Deploy to dev server
uses: appleboy/ssh-action@master
id: deploy-dev
with:
host: ${{ secrets.HOST_DEV }} # EC2 퍼블릭 IPv4 DNS
username: ${{ secrets.USERNAME }} # ubuntu
port: 22
key: ${{ secrets.DEV_PRIVATE_KEY }}
script: |
sudo docker ps
sudo docker rm -f $(docker ps -qa)
sudo docker pull ${{ secrets.DOCKER_REPO }}/eatssu-dev
sudo docker run -d -p 9000:9000 \
-e EATSSU_DB_URL_DEV="${{ secrets.EATSSU_DB_URL_DEV }}" \
-e EATSSU_DB_USERNAME="${{ secrets.EATSSU_DB_USERNAME }}" \
-e EATSSU_DB_PASSWORD="${{ secrets.EATSSU_DB_PASSWORD }}" \
-e EATSSU_JWT_SECRET_DEV="${{ secrets.EATSSU_JWT_SECRET_DEV }}" \
-e EATSSU_AWS_ACCESS_KEY_DEV="${{ secrets.EATSSU_AWS_ACCESS_KEY_DEV }}" \
-e EATSSU_AWS_SECRET_KEY_DEV="${{ secrets.EATSSU_AWS_SECRET_KEY_DEV }}" \
-e EATSSU_SLACK_TOKEN="${{ secrets.EATSSU_SLACK_TOKEN }}" \
${{ secrets.DOCKER_REPO }}/eatssu-dev
sudo docker image prune -f
8 changes: 0 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,6 @@ out/
### VS Code ###
.vscode/

### application files ###
application.yml
application-local.yml
application-dev.yml
application-test.yml
application-prod.yml


### Generated files ###
/src/main/generated/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
@RequiredArgsConstructor
public class SecurityConfig {
private static final String[] RESOURCE_LIST = {
"/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**","/oauths/valid/token", "/admin/img/**", "/css/**", "/js/**",
"/swagger-ui.html", "/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**","/oauths/valid/token", "/admin/img/**", "/css/**", "/js/**",
"/favicon.ico", "/error/**", "/webjars/**", "/h2-console/**"
};

Expand Down
99 changes: 99 additions & 0 deletions src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
## port number
server:
port: 9000
env: dev


spring:
## Database
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${EATSSU_DB_URL_DEV}
username: ${EATSSU_DB_USERNAME}
password: ${EATSSU_DB_PASSWORD}
hikari:
maximum-pool-size: 200
minimum-idle: 10
connection-timeout: 2500
connection-init-sql: SELECT 1
validation-timeout: 2000
idle-timeout: 600000
max-lifetime: 1800000

## JPA
jpa:
hibernate:
ddl-auto: none
properties:
hibernate:
jdbc:
lob:
non_contextual_creation: true
format_sql: false
show_sql: true

servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB

## Auth
jwt:
secret:
key: ${EATSSU_JWT_SECRET_DEV}
token-validity-in-seconds: 86400
refresh-token-validity-in-seconds: 604800

#S3
cloud:
aws:
credentials:
accessKey: ${EATSSU_AWS_ACCESS_KEY_DEV}
secretKey: ${EATSSU_AWS_SECRET_KEY_DEV}
s3:
bucket: eatssu-bucket
region:
static: ap-northeast-2
stack:
auto: false

#Slack
slack:
token: ${EATSSU_SLACK_TOKEN}

#Swagger
swagger:
url: https://dev.eat-ssu.store
description: Test Server Swagger API

springdoc:
swagger-ui:
path: /swagger-ui.html
groups-order: DESC
operationsSorter: method
disable-swagger-default-url: true
display-request-duration: true
api-docs:
path: /v3/api-docs
show-actuator: true
default-consumes-media-type: application/json
default-produces-media-type: application/json
paths-to-match:
- /**

logging:
level:
root: INFO
com.zaxxer.hikari: INFO

management:
endpoint:
metrics:
enabled: true
prometheus:
enabled: true

endpoints:
web:
exposure:
include: health, info, metrics, prometheus
96 changes: 96 additions & 0 deletions src/main/resources/application-local.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
## port number
server:
port: 9000
env: local


spring:
## Database
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${EATSSU_DB_URL_DEV}
username: ${EATSSU_DB_USERNAME}
password: ${EATSSU_DB_PASSWORD}

## JPA
jpa:
hibernate:
ddl-auto: none
properties:
hibernate:
jdbc:
lob:
non_contextual_creation: true
format_sql: true
show_sql: false

servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB

## Auth
jwt:
secret:
key: ${EATSSU_JWT_SECRET_LOCAL}
token-validity-in-seconds: 86400
refresh-token-validity-in-seconds: 259200

#S3
cloud:
aws:
credentials:
accessKey: ${EATSSU_AWS_ACCESS_KEY_DEV}
secretKey: ${EATSSU_AWS_SECRET_KEY_DEV}
s3:
bucket: eatssu-bucket
region:
static: ap-northeast-2
stack:
auto: false

#Slack
slack:
token: ${EATSSU_SLACK_TOKEN}

#Swagger
swagger:
url: http://localhost:9000
description: Test Server Swagger API

springdoc:
swagger-ui:
# Swagger UI
path: /swagger-ui.html
# Group
groups-order: DESC
# API
operationsSorter: method
# Swagger UI
disable-swagger-default-url: true
# API
display-request-duration: true
api-docs:
path: /v3/api-docs
show-actuator: true
default-consumes-media-type: application/json
default-produces-media-type: application/json
paths-to-match:
- /**

logging:
level:
root: INFO
com.zaxxer.hikari: INFO

management:
endpoint:
metrics:
enabled: true
prometheus:
enabled: true

endpoints:
web:
exposure:
include: health, info, metrics, prometheus
Loading