Skip to content

Code Refactoring: Token 관련 로직과 컨트롤러 분리, 별도 예외 클래스 생성 #44

Code Refactoring: Token 관련 로직과 컨트롤러 분리, 별도 예외 클래스 생성

Code Refactoring: Token 관련 로직과 컨트롤러 분리, 별도 예외 클래스 생성 #44

#name: DOCKER CI IN DEVELOPMENT SERVER # 워크플로우의 이름 설정
#
#
#on:
# push:
# branches: ["develop"] # dev 브랜치에 푸시될 때 워크플로우 실행
# pull_request:
# branches: ["develop"] # dev 브랜치에 대한 PR이 생성되거나 업데이트될 때 워크플로우 실행
#
#permissions:
# contents: read # 워크플로우의 권한 설정 (read-only)
#
#jobs:
# build:
#
# runs-on: ubuntu-latest # 워크플로우가 실행될 환경 설정 (Ubuntu 최신 버전)
#
# steps:
# # 코드 체크아웃: GitHub Actions가 현재 리포지토리의 코드를 가져옵니다.
# - uses: actions/checkout@v3
#
# # JDK 17 설정: Java 17 버전을 사용하기 위해 JDK를 설치합니다.
# - name: Set up JDK 17
# uses: actions/setup-java@v3
# with:
# java-version: '17' # JDK 버전 17 설정
# distribution: 'temurin' # Temurin JDK 배포판 사용
#
# # application.properites 파일 생성: dev 환경의 설정 파일을 생성하고 secrets에서 값을 가져와 입력합니다.
# - name: make application.properties
# run: |
# cd ./src/main/resources # resources 디렉토리로 이동
# touch ./application.properties # application.properties 파일 생성
# echo "${{ secrets.APPLICATION_DEV }}" > ./application.properties # GitHub Secrets에서 설정값을 가져와 파일에 저장
#
# # Gradle Wrapper 실행 권한 부여: gradlew에 실행 권한을 부여합니다.
# - name: Grant execute permission for gradlew
# run: chmod +x gradlew
#
# # Gradle 빌드: Gradle을 사용해 프로젝트를 빌드하되, 테스트는 생략합니다.
# - name: Build with Gradle
# run: ./gradlew build -x test # 테스트는 실행하지 않고 빌드만 수행
#
# # Docker 이미지 빌드 및 푸시
# - name: Docker build
# run: |
# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} # Docker Hub에 로그인
# docker build -t app . # Docker 이미지를 'app'이라는 이름으로 빌드
# docker tag app ${{ secrets.DOCKER_USERNAME }}/ono:latest # 이미지를 Docker Hub 저장소로 태깅
# docker push ${{ secrets.DOCKER_USERNAME }}/ono:latest # 이미지를 Docker Hub에 푸시
#
# # Bastion 서버를 통해 스프링 서버로 배포
# - name: Deploy via Bastion Server
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.DEV_BASTION_HOST }} # Bastion 서버의 퍼블릭 IP 또는 DNS 주소
# username: ubuntu # Bastion 서버의 사용자 이름
# key: ${{ secrets.DEV_BASTION_PRIVATE_KEY }} # Bastion 서버의 SSH 개인 키 (GitHub Secrets에서 가져옴)
# port: 22 # SSH 연결에 사용할 포트 (기본값 22)
# script: |
# # Bastion 서버에서 스프링 서버로 SSH 연결 및 도커 작업 수행
# ssh -o StrictHostKeyChecking=no -i /home/ubuntu/new-dev-an2-ono-spring-key.pem ubuntu@${{ secrets.DEV_SPRING_SERVER_IP }} << 'EOSSH'
# # 스프링 서버에서 Docker Hub에 로그인
# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
# # 최신 Docker 이미지를 Docker Hub에서 Pull
# docker pull ${{ secrets.DOCKER_USERNAME }}/ono:latest
# # 실행 중인 모든 컨테이너를 중지 (실행 중인 컨테이너가 없을 경우 오류 무시)
# docker stop $(docker ps -a -q) || true
# # 중지된 모든 컨테이너를 제거 (없을 경우 오류 무시)
# docker rm $(docker ps -a -q) || true
# # 새로 받은 이미지를 기반으로 컨테이너 실행 (8080 포트 사용)
# docker run -d --restart unless-stopped --log-driver=syslog -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/ono:latest
# # 24시간 동안 사용되지 않은 모든 Docker 이미지를 삭제하여 공간 확보
# docker image prune -a -f --filter "until=24h"
# EOSSH