Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ci/build text flows #16

Closed
wants to merge 9 commits into from
Closed
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
84 changes: 27 additions & 57 deletions .github/workflows/build_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,81 +2,54 @@ 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:5.7
#mysql 설정
env:
# MYSQL_USER : 지정하지 않은경우 root
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 }}
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, 깃허브 액션 실행 환경으로 복사

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.docker-layers
key: ${{ runner.os }}-docker-${{ github.sha }}
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
- name: Checkout code
uses: actions/checkout@v4

- 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
- 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 # 테스트 결과 보고
- name: Upload Test Results
uses: actions/upload-artifact@v4
with:
name: test-results
path: build/reports/tests/test

dependency-submission: # 두 번째 작업
needs: build

dependency-submission:
runs-on: ubuntu-latest
permissions:
contents: write
Expand All @@ -88,8 +61,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
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
18 changes: 9 additions & 9 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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}
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
Loading