Skip to content

refactor: application.yml 코드 수정 #69

refactor: application.yml 코드 수정

refactor: application.yml 코드 수정 #69

Workflow file for this run

name: Java CI with Docker
on:
push:
branches: [ develop ] # develop 브랜치에 push될 때 실행
permissions:
contents: read
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# 1) 워크플로우 실행 전 기본적으로 체크아웃 필요
- uses: actions/checkout@v3
# 2) JDK 17 버전 설치
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
# 3) Gradle 실행 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x ./gradlew
# 4) Gradle 빌드
- name: Build with Gradle
run: ./gradlew clean build
# 4) Docker Hub 로그인
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# 5) Docker 이미지 빌드 및 푸시
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: .
push: true
tags: ${{ secrets.DOCKER_USERNAME }}/withmorning:latest # Docker Hub에 올릴 이미지 태그
# 6) EC2에 배포
- name: Deploy to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
script: |
# 0. docker compose 파일 가져오기
curl -o docker-compose.yml https://raw.githubusercontent.com/WithMorning/Backend/refs/heads/develop/docker-compose.yml
# 1. EC2 서버에 .env 파일을 새로 생성합니다.
# GitHub Secrets의 값을 가져와 파일에 한 줄씩 씁니다.
cat << EOF > .env
DOCKER_IMAGE_NAME=${{ secrets.DOCKER_USERNAME }}/withmorning:latest
DB_URL=${{ secrets.DB_URL }}
DB_USER=${{ secrets.DB_USER }}
DB_PASS=${{ secrets.DB_PASS }}
JWT_SECRET=${{ secrets.JWT_SECRET }}
REDIRECT_URL=${{ secrets.REDIRECT_URL }}
CLIENT_ID=${{ secrets.CLIENT_ID }}
TEAM_ID=${{ secrets.TEAM_ID }}
KEY_ID=${{ secrets.KEY_ID }}
S3_ACCESS_KEY=${{ secrets.S3_ACCESS_KEY }}
S3_SECRET_KEY=${{ secrets.S3_SECRET_KEY }}
COOLSMS_KEY=${{ secrets.COOLSMS_KEY }}
COOLSMS_SECRET=${{ secrets.COOLSMS_SECRET }}
FROM_NUMBER=${{ secrets.FROM_NUMBER }}
EOF
# 2. Auth key, firebase key 생성
echo "${{ secrets.FIREBASE_SERVICE_KEY }}" > firebase-service-account.json
echo "${{ secrets.AUTH_KEY_P8 }}" > authkey.p8
# 4. .env 파일의 변수들을 현재 셸 환경으로 로드 (가장 중요!)
export $(grep -v '^#' .env | xargs)
# 2. Docker Compose 실행
docker compose -f docker-compose.yml pull
docker compose -f docker-compose.yml down
docker compose -f docker-compose.yml up -d
docker image prune -af