From e990329652d48e9314ba69ba64b5eb045695d7f2 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 14:57:35 +0900 Subject: [PATCH 1/9] =?UTF-8?q?Refactor=20:=20=EB=AF=BC=EA=B0=90=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9D=80=20=EC=A0=95=EB=B3=B4=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=EB=B3=80=EC=88=98=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.properties | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5f453905..888f37ea 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,19 +3,19 @@ spring.application.name=DevLens spring.config.import=optional:file:.env[.properties] # Server Settings -server.port=${SERVER_PORT} -spring.main.web-application-type=${SPRING_MAIN_WEB_APPLICATION_TYPE} -spring.main.banner-mode=${SPRING_MAIN_BANNER_MODE} +server.port=8443 +spring.main.web-application-type=servlet +spring.main.banner-mode=off # DataSource Settings -spring.datasource.driver-class-name=${SPRING_DATASOURCE_DRIVER_CLASS_NAME} +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=${SPRING_DATASOURCE_URL} spring.datasource.username=${SPRING_DATASOURCE_USERNAME} spring.datasource.password=${SPRING_DATASOURCE_PASSWORD} # JPA Settings -spring.jpa.hibernate.ddl-auto=${SPRING_JPA_HIBERNATE_DDL_AUTO} -spring.jpa.generate-ddl=${SPRING_JPA_GENERATE_DDL} -spring.jpa.show-sql=${SPRING_JPA_SHOW_SQL} -spring.jpa.properties.hibernate.format_sql=${SPRING_JPA_PROPERTIES_HIBERNATE_FORMAT_SQL} -spring.jpa.database-platform=${SPRING_JPA_DATABASE_PLATFORM} \ No newline at end of file +spring.jpa.hibernate.ddl-auto=create +spring.jpa.generate-ddl=true +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=false +spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect From 182dfe3971b9e13b3978402f2427738bf13228ed Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 14:57:57 +0900 Subject: [PATCH 2/9] =?UTF-8?q?CI=20:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=ED=99=94=20=EC=9B=8C=ED=81=AC=ED=94=8C?= =?UTF-8?q?=EB=A1=9C=EC=9A=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index eb2fe84d..004b71aa 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest services: mysql: - image: mysql:5.7 + image: mysql:8.0 #mysql 설정 env: # MYSQL_USER : 지정하지 않은경우 root @@ -26,6 +26,14 @@ jobs: SPRING_DATASOURCE_URL: jdbc:mysql://localhost:3306/actions_test SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 12345678 +# SPRING_JWT_SECRET: ${{secrets.SPRING_JWT_SECRET}} +# AWS_S3_BUCKET: ${{secrets.AWS_S3_BUCKET}} +# AWS_STACK_AUTO: ${{secrets.AWS_STACK_AUTO}} +# AWS_REGION: ${{secrets.AWS_REGION}} +# AWS_ACCESS_KEY: ${{secrets.AWS_ACCESS_KEY}} +# AWS_SECRET_KEY: ${{secrets.AWS_SECRET_KEY}} +# MULTIPART_MAX_FILE_SIZE: ${{secrets.MULTIPART_MAX_FILE_SIZE}} +# MULTIPART_MAX_REQUEST_SIZE: ${{secrets.MULTIPART_MAX_REQUEST_SIZE}} permissions: pull-requests: write # PR에 댓글, 체크 실행을 할 수 있는 권한 checks: write # 체크 결과를 기록할 권한 From d746f365fec46086d7f0091eb9dfcd4432391689 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:07:41 +0900 Subject: [PATCH 3/9] =?UTF-8?q?CI=20:=20step1=EA=B3=BC=20step2=EB=A5=BC=20?= =?UTF-8?q?=EB=B3=91=EB=A0=AC=20=EC=B2=98=EB=A6=AC=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 004b71aa..e25776d9 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -83,7 +83,6 @@ jobs: path: build/reports/tests/test dependency-submission: # 두 번째 작업 - needs: build runs-on: ubuntu-latest permissions: From 2710cc64ee8cfb3e6cf6f871684be4faf91a42d1 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:08:03 +0900 Subject: [PATCH 4/9] =?UTF-8?q?CI=20:=20=EC=9D=98=EC=A1=B4=EC=84=B1=20?= =?UTF-8?q?=EC=BA=90=EC=8B=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index e25776d9..5bd5bb66 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -82,6 +82,15 @@ jobs: name: test-results path: build/reports/tests/test + - name: Cache Gradle dependencies + uses: actions/cache@v3 + with: + path: ~/.gradle/caches + key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + gradle-${{ runner.os }}- + + dependency-submission: # 두 번째 작업 runs-on: ubuntu-latest From 8e219ed1f9163b7976d8e43604692a165c4b77f2 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:18:21 +0900 Subject: [PATCH 5/9] =?UTF-8?q?CI=20:=20S3=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=ED=99=98=EA=B2=BD=EB=B3=80=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 5bd5bb66..37f998e3 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -26,14 +26,12 @@ jobs: SPRING_DATASOURCE_URL: jdbc:mysql://localhost:3306/actions_test SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 12345678 -# SPRING_JWT_SECRET: ${{secrets.SPRING_JWT_SECRET}} -# AWS_S3_BUCKET: ${{secrets.AWS_S3_BUCKET}} -# AWS_STACK_AUTO: ${{secrets.AWS_STACK_AUTO}} -# AWS_REGION: ${{secrets.AWS_REGION}} -# AWS_ACCESS_KEY: ${{secrets.AWS_ACCESS_KEY}} -# AWS_SECRET_KEY: ${{secrets.AWS_SECRET_KEY}} -# MULTIPART_MAX_FILE_SIZE: ${{secrets.MULTIPART_MAX_FILE_SIZE}} -# MULTIPART_MAX_REQUEST_SIZE: ${{secrets.MULTIPART_MAX_REQUEST_SIZE}} + SPRING_JWT_SECRET: ${{secrets.SPRING_JWT_SECRET}} + AWS_S3_BUCKET: ${{secrets.AWS_S3_BUCKET}} + AWS_STACK_AUTO: ${{secrets.AWS_STACK_AUTO}} + AWS_REGION: ${{secrets.AWS_REGION}} + AWS_ACCESS_KEY: ${{secrets.AWS_ACCESS_KEY}} + AWS_SECRET_KEY: ${{secrets.AWS_SECRET_KEY}} permissions: pull-requests: write # PR에 댓글, 체크 실행을 할 수 있는 권한 checks: write # 체크 결과를 기록할 권한 From 525e3184574f4ac00bb144776d9a46e18bb6f0d1 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:30:01 +0900 Subject: [PATCH 6/9] =?UTF-8?q?CI=20:=20=EC=BA=90=EC=8B=9C=20=EC=B5=9C?= =?UTF-8?q?=EC=A0=81=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 93 ++++++++++++++------------------ 1 file changed, 39 insertions(+), 54 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 37f998e3..4c04158a 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -2,21 +2,18 @@ name: Java CI with Gradle on: push: - branches: [ "dev", "main" ] # 메인에 푸시되면 + branches: [ "dev", "main" ] pull_request: - branches: [ "dev", "main" ] # 메인에 PR되면 + branches: [ "dev", "main" ] jobs: - build: # 첫 번째 작업 - ### 테스트용 mysql + build: runs-on: ubuntu-latest services: mysql: image: mysql:8.0 - #mysql 설정 env: - # MYSQL_USER : 지정하지 않은경우 root - MYSQL_ROOT_PASSWORD: 12345678 # 비밀번호 + MYSQL_ROOT_PASSWORD: 12345678 MYSQL_DATABASE: actions_test ports: - 3306:3306 @@ -26,71 +23,62 @@ jobs: SPRING_DATASOURCE_URL: jdbc:mysql://localhost:3306/actions_test SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 12345678 - SPRING_JWT_SECRET: ${{secrets.SPRING_JWT_SECRET}} - AWS_S3_BUCKET: ${{secrets.AWS_S3_BUCKET}} - AWS_STACK_AUTO: ${{secrets.AWS_STACK_AUTO}} - AWS_REGION: ${{secrets.AWS_REGION}} - AWS_ACCESS_KEY: ${{secrets.AWS_ACCESS_KEY}} - AWS_SECRET_KEY: ${{secrets.AWS_SECRET_KEY}} + SPRING_JWT_SECRET: ${{ secrets.SPRING_JWT_SECRET }} + AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} + AWS_STACK_AUTO: ${{ secrets.AWS_STACK_AUTO }} + AWS_REGION: ${{ secrets.AWS_REGION }} + AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }} + AWS_SECRET_KEY: ${{ secrets.AWS_SECRET_KEY }} + permissions: - pull-requests: write # PR에 댓글, 체크 실행을 할 수 있는 권한 - checks: write # 체크 결과를 기록할 권한 - actions: read # GitHub Actions의 정보를 읽을 수 있는 권한 + pull-requests: write + checks: write + actions: read steps: - - uses: actions/checkout@v4 # actions/checkout의 버전이 v4, 깃허브 액션 실행 환경으로 복사 + # 1. Checkout Repository + - name: Checkout code + uses: actions/checkout@v4 - - name: Cache Docker layers + # 2. Gradle Cache Restoration + - name: Restore Gradle cache uses: actions/cache@v3 with: - path: /tmp/.docker-layers - key: ${{ runner.os }}-docker-${{ github.sha }} + path: ~/.gradle/caches/modules-2/files-2.1 + key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | - ${{ runner.os }}-docker- - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Pull MySQL Image - run: docker pull mysql:5.7 + gradle-${{ runner.os }}- + # 3. JDK Setup - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - # Gradle Wrapper로 빌드 실행 - - name: Build with Gradle Wrapper - run: ./gradlew clean build + # 4. Build and Test with Gradle + - name: Build and Test + run: | + ./gradlew clean build --no-daemon + ./gradlew test --no-daemon - # Gradle 설정 및 의존성 캐싱 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - - name: Build with Gradle Wrapper - run: ./gradlew build - - - name: Run tests # 테스트 실행 - run: ./gradlew test - - - name: Upload Test Results # 테스트 결과 보고 - uses: actions/upload-artifact@v4 - with: - name: test-results - path: build/reports/tests/test - - - name: Cache Gradle dependencies + # 5. Gradle Cache Save + - name: Save Gradle cache uses: actions/cache@v3 with: - path: ~/.gradle/caches + path: ~/.gradle/caches/modules-2/files-2.1 key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | gradle-${{ runner.os }}- + # 6. Upload Test Results + - name: Upload Test Results + uses: actions/upload-artifact@v4 + with: + name: test-results + path: build/reports/tests/test - dependency-submission: # 두 번째 작업 - + dependency-submission: runs-on: ubuntu-latest permissions: contents: write @@ -102,8 +90,5 @@ jobs: with: java-version: '17' distribution: 'temurin' - - # Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies. - # See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md - name: Generate and submit dependency graph - uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0 + uses: gradle/actions/dependency-submission@v4 From 3397220b6cb69c10b5056ccb801ddf822e08cb1a Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:35:04 +0900 Subject: [PATCH 7/9] =?UTF-8?q?Refactor=20:=20H2=20DB=EB=A5=BC=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 4c04158a..218fd74f 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -9,20 +9,13 @@ on: jobs: build: runs-on: ubuntu-latest - services: - mysql: - image: mysql:8.0 - env: - MYSQL_ROOT_PASSWORD: 12345678 - MYSQL_DATABASE: actions_test - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping --silent" --health-start-period=30s --health-timeout=5s --health-retries=3 env: - SPRING_DATASOURCE_URL: jdbc:mysql://localhost:3306/actions_test - SPRING_DATASOURCE_USERNAME: root - SPRING_DATASOURCE_PASSWORD: 12345678 + SPRING_DATASOURCE_URL: jdbc:h2:mem:testdb + SPRING_DATASOURCE_DRIVER_CLASS_NAME: org.h2.Driver + SPRING_DATASOURCE_USERNAME: sa + SPRING_DATASOURCE_PASSWORD: + SPRING_JPA_DATABASE_PLATFORM: org.hibernate.dialect.H2Dialect SPRING_JWT_SECRET: ${{ secrets.SPRING_JWT_SECRET }} AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} AWS_STACK_AUTO: ${{ secrets.AWS_STACK_AUTO }} From 3dcf49e3442a87f98e60b2a9ef02cddb2b29b4a5 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:37:03 +0900 Subject: [PATCH 8/9] =?UTF-8?q?Refactor=20:=20H2=20=EC=9D=98=EC=A1=B4?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.gradle b/build.gradle index 9c789840..7620771b 100644 --- a/build.gradle +++ b/build.gradle @@ -37,6 +37,9 @@ dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' + + + implementation 'com.h2database:h2' testImplementation 'org.springframework.boot:spring-boot-starter-test' // testImplementation 'org.springframework.security:spring-security-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' From 934502a9097ff9ff7ce86adaf427530c03acec01 Mon Sep 17 00:00:00 2001 From: K-KY Date: Tue, 31 Dec 2024 15:42:41 +0900 Subject: [PATCH 9/9] =?UTF-8?q?Refactor=20:=20=EC=9D=98=EC=A1=B4=EC=84=B1?= =?UTF-8?q?=20=EC=BA=90=EC=8B=B1=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_test.yml | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 218fd74f..c0b123f3 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -29,42 +29,20 @@ jobs: actions: read steps: - # 1. Checkout Repository - name: Checkout code uses: actions/checkout@v4 - # 2. Gradle Cache Restoration - - name: Restore Gradle cache - uses: actions/cache@v3 - with: - path: ~/.gradle/caches/modules-2/files-2.1 - key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - gradle-${{ runner.os }}- - - # 3. JDK Setup - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - # 4. Build and Test with Gradle - name: Build and Test run: | ./gradlew clean build --no-daemon ./gradlew test --no-daemon - # 5. Gradle Cache Save - - name: Save Gradle cache - uses: actions/cache@v3 - with: - path: ~/.gradle/caches/modules-2/files-2.1 - key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - gradle-${{ runner.os }}- - - # 6. Upload Test Results - name: Upload Test Results uses: actions/upload-artifact@v4 with: