Skip to content

test: docker image 오류 수정 #12

test: docker image 오류 수정

test: docker image 오류 수정 #12

Workflow file for this run

name: TOONPICK Backend CI Pipeline
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 저장소 체크아웃
uses: actions/checkout@v3
- name: JDK 17 설정
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: '17'
- name: Gradle 캐시 설정 (빌드 최적화)
uses: actions/cache@v3
with:
path: ~/.gradle/caches
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-
- name: Gradle 실행 권한 추가
run: chmod +x backend/gradlew
- name: Gradle 빌드 및 테스트
working-directory: backend
run: |
./gradlew clean build -x test --no-daemon --parallel --configure-on-demand
- name: 빌드 파일 확인 (JAR 파일 존재 확인)
run: |
echo "빌드 파일 확인 중..."
ls -l backend/build/libs/
if [ ! -f backend/build/libs/*.jar ]; then
echo "JAR 파일이 존재하지 않습니다. 빌드가 실패했을 수 있습니다."
exit 1
else
echo "JAR 파일이 정상적으로 생성되었습니다."
fi
# 빌드된 JAR 파일을 아티팩트로 저장
- name: 빌드된 JAR 파일을 아티팩트로 저장
uses: actions/upload-artifact@v4
with:
name: backend-jar
path: backend/build/libs/*.jar
docker:
needs: build
runs-on: ubuntu-latest
steps:
- name: 저장소 체크아웃
uses: actions/checkout@v3
# 빌드된 JAR 파일 다운로드 (build job에서 전달한 아티팩트)
- name: 빌드된 JAR 파일 다운로드
uses: actions/download-artifact@v4
with:
name: backend-jar
# JAR 파일을 빌드 컨텍스트로 복사
- name: JAR 파일 복사
run: |
mkdir -p backend/build/libs
mv ./backend-jar/*.jar backend/build/libs/
- name: Docker Build & Push
env:
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
REPOSITORY: "toonpick-service-app"
IMAGE_TAG: "v0.1.${{ github.run_number }}"
run: |
echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERNAME" --password-stdin
# backend 폴더 내에서 Docker 빌드 진행
docker build -t $DOCKER_HUB_USERNAME/$REPOSITORY:$IMAGE_TAG ./backend
docker build -t $DOCKER_HUB_USERNAME/$REPOSITORY:latest ./backend
docker push $DOCKER_HUB_USERNAME/$REPOSITORY:$IMAGE_TAG
docker push $DOCKER_HUB_USERNAME/$REPOSITORY:latest