Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 7 additions & 23 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,20 @@ jobs:
- name: Checkout
uses: actions/checkout@v4

# 2) JDK 설치 (Spring 빌드)
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

# 3) Gradle 빌드 (테스트 생략 예시)
- name: Build Spring Boot
run: ./gradlew clean build -x test

# 4) EC2로 파일 전송 (단, .env 제외)
- name: Upload artifacts to EC2
# 2) EC2로 소스/설정 전송 (JAR 빌드 불필요)
- name: Upload project to EC2
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
source: |
backendProject/**
docker-compose-prod.yml
backendProject/Dockerfile
backendProject/build/libs/*.jar
.env
target: ${{ secrets.EC2_APP_DIR }}

# 5) EC2에서 배포 (Amazon Linux)
# 3) EC2에서 배포 실행
- name: Deploy on EC2
uses: appleboy/ssh-action@v1.0.3
with:
Expand All @@ -52,12 +41,7 @@ jobs:
APP_DIR="${{ secrets.EC2_APP_DIR }}"
cd "$APP_DIR"

# ---- 여기서 .env 파일 생성 ----
cat << 'EOF' > .env
${{ secrets.EC2_ENV_FILE }}
EOF

# Docker/compose 설치(없을 때)
# Docker/compose 설치 (없으면)
if ! command -v docker >/dev/null 2>&1; then
if command -v dnf >/dev/null 2>&1; then
sudo dnf -y update
Expand Down Expand Up @@ -86,7 +70,7 @@ jobs:
# (옵션) 안 쓰는 이미지 정리
sudo docker image prune -f

# 6) (선택) CloudFront 캐시 무효화
# 4) (선택) CloudFront 캐시 무효화
- name: Set CloudFront ID as env var
run: echo "CF_ID=${{ secrets.CF_DISTRIBUTION_ID }}" >> $GITHUB_ENV

Expand Down