Skip to content

fix:CICD임시 주석처리 (#16) #30

fix:CICD임시 주석처리 (#16)

fix:CICD임시 주석처리 (#16) #30

Workflow file for this run

# name: CI/CD
# # 트리거: release/** 브랜치에 PR이 생성되거나 merge될 때 실행
# on:
# pull_request:
# branches:
# - 'release/**' # release/DODREAM-0.1.0 등
# types: [opened, synchronize, reopened]
# push:
# branches:
# - 'release/**' # PR merge 시 자동으로 push 이벤트 발생
# jobs:
# # Job 1: 빌드 및 테스트
# build-and-test:
# runs-on: ubuntu-latest
# steps:
# - name: 코드 체크아웃
# uses: actions/checkout@v4
# - name: JDK 21 설정
# uses: actions/setup-java@v4
# with:
# java-version: '21'
# distribution: 'temurin'
# cache: gradle
# - name: Gradle 실행 권한 부여
# run: chmod +x gradlew
# - name: Gradle 빌드 (테스트 제외)
# run: ./gradlew clean build -x test
# - name: 테스트 실행
# run: ./gradlew test
# # Job 2: Docker 이미지 빌드 및 푸시
# build-and-push-docker:
# needs: build-and-test # build-and-test가 성공해야 실행됨
# runs-on: ubuntu-latest
# # release 브랜치에 push된 경우에만 실행 (PR은 제외)
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release/')
# steps:
# - name: 코드 체크아웃
# uses: actions/checkout@v4
# - name: Docker Buildx 설정
# uses: docker/setup-buildx-action@v3
# - name: Docker Hub 로그인
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
# - name: 브랜치명에서 버전 추출
# id: extract_version
# run: |
# # release/DODREAM-0.1.0 → DODREAM-0.1.0
# VERSION=${GITHUB_REF#refs/heads/release/}
# echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
# echo "Extracted version: $VERSION"
# - name: Docker 이미지 빌드 및 푸시
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: |
# ${{ secrets.DOCKER_USERNAME }}/dodream-backend:latest
# ${{ secrets.DOCKER_USERNAME }}/dodream-backend:${{ steps.extract_version.outputs.VERSION }}
# cache-from: type=gha
# cache-to: type=gha,mode=max
# # Job 3: NCP 서버에 배포
# deploy:
# needs: build-and-push-docker # Docker 이미지가 푸시된 후 실행
# runs-on: ubuntu-latest
# steps:
# - name: 코드 체크아웃
# uses: actions/checkout@v4
# - name: NCP 서버에 SSH 접속하여 배포
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.NCP_HOST }}
# username: ${{ secrets.NCP_USERNAME }}
# key: ${{ secrets.NCP_SSH_KEY }}
# port: 22
# script: |
# # 배포 디렉토리 생성
# mkdir -p ~/dodream
# cd ~/dodream
# # .env 파일 생성 (환경변수 설정)
# # docker-compose에서 이 값들을 읽어 컨테이너에 주입
# cat > .env << EOF
# DOCKER_USERNAME=${{ secrets.DOCKER_USERNAME }}
# MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}
# MYSQL_USER=${{ secrets.MYSQL_USER }}
# MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }}
# MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }}
# GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}
# GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}
# JWT_SECRET=${{ secrets.JWT_SECRET }}
# EOF
# # GitHub에서 docker-compose.yml 다운로드
# curl -o docker-compose.yml https://raw.githubusercontent.com/${{ github.repository }}/${{ github.ref_name }}/docker-compose.yml
# # Docker Hub 로그인 (Private Repository 접근용)
# echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
# # 최신 Docker 이미지 pull
# docker compose pull || docker-compose pull
# # 기존 컨테이너 중지 및 제거
# docker compose down || docker-compose down
# # 새 컨테이너 실행 (백그라운드)
# docker compose up -d || docker-compose up -d
# # 사용하지 않는 이미지 정리 (디스크 공간 확보)
# docker image prune -af
# echo "✅ 배포 완료!"