Skip to content

Commit b5b6827

Browse files
authored
[chore] 캐시 적용을 통한 빌드 시간 단축 (#228)
* chore : Gradle 캐싱 적용 * fix : gradlew bootJar로 빌드 명령어 변경 * chore : docker 빌드 캐시 적용 및 gradle 빌드와 docker 빌드 파이프라인 분리 * chore : actions/upload-artifact & download-artifact 버전 마이그레이션 * chore : artifact 보관 기간 설정 * fix : docker build 및 push workflow 복구 * chore : gradle daemon 설정 off
1 parent 0678d58 commit b5b6827

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

.github/workflows/github-actions.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,32 @@ jobs:
1313
build:
1414
name: Build
1515
runs-on: ubuntu-latest
16-
1716
steps:
18-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
18+
19+
# 빌드 시간 향상을 위한 gradle caching
20+
- name: Gradle Caching
21+
uses: actions/cache@v4
22+
with:
23+
path: |
24+
~/.gradle/caches
25+
~/.gradle/wrapper
26+
key: "${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}"
27+
restore-keys: |
28+
${{ runner.os }}-gradle-
29+
1930
- name: Set up JDK 17
2031
uses: actions/setup-java@v3
2132
with:
2233
java-version: '17'
2334
distribution: 'temurin'
35+
cache: 'gradle'
2436

2537
- name: Grant permission
2638
run: chmod +x ./gradlew
2739

2840
- name: Build with Gradle
29-
run: ./gradlew bootJar
41+
run: ./gradlew bootJar --no-daemon
3042

3143
- name: Docker build and push
3244
run: |

Dockerfile

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
11
# 1단계 : 빌드 환경
22
FROM eclipse-temurin:17-jdk-alpine AS builder
3-
43
# 작업 디렉토리 설정
54
WORKDIR /app
6-
75
# 애플리케이션 JAR 파일을 컨테이너로 복사
86
ARG JAR_FILE=./build/libs/*.jar
97
COPY ${JAR_FILE} /app.jar
108

119
# 2단계 : 실행 환경
1210
FROM eclipse-temurin:17-jre-alpine
13-
1411
# glibc 호환성을 위한 gcompat 설치
1512
RUN apk add --no-cache gcompat
16-
1713
# 빌드된 JAR 파일을 복사
1814
COPY --from=builder /app.jar /app.jar
19-
20-
# Spring 프로파일 설정
21-
ENV SPRING_PROFILES_ACTIVE=prod
22-
2315
# 애플리케이션 실행
24-
ENTRYPOINT ["java", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-jar", "/app.jar"]
16+
ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "/app.jar"]

0 commit comments

Comments
 (0)