Skip to content

test: docker image 오류 수정 #14

test: docker image 오류 수정

test: docker image 오류 수정 #14

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 "PWD: $(pwd)"
echo "backend/build/libs 디렉토리 확인"
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
- name: 빌드된 JAR 파일 다운로드
uses: actions/download-artifact@v3
with:
name: backend-jar
- name: 다운로드된 아티팩트 확인 및 이동
run: |
echo "PWD (docker job): $(pwd)"
echo "다운로드된 아티팩트 확인"
ls -l
# 다운로드된 아티팩트가 들어있는 디렉토리 확인
if [ -d "./backend-jar" ]; then
echo "backend-jar 디렉토리가 존재합니다."
ls -l ./backend-jar
mkdir -p backend/build/libs
mv ./backend-jar/*.jar backend/build/libs/
else
echo "backend-jar 디렉토리가 존재하지 않습니다. 다운로드된 파일들을 확인합니다."
ls -l ./backend-jar
# 필요한 경로로 파일을 이동시키는 로직 추가
mv *.jar backend/build/libs/
fi
# JAR 파일을 빌드 컨텍스트로 복사
- name: JAR 파일 복사
run: |
echo "PWD (docker job): $(pwd)"
echo "backend-jar 파일들:"
ls -l ./backend-jar/
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
# 현재 디렉토리 및 Dockerfile 경로 확인
echo "PWD (docker build): $(pwd)"
echo "Dockerfile 위치 확인"
ls -l ./backend/Dockerfile
# 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