Skip to content

Feat : 디렉토리 구조 확인 추가 #188

Feat : 디렉토리 구조 확인 추가

Feat : 디렉토리 구조 확인 추가 #188

Workflow file for this run

name: Deploy to OCI
on:
push:
branches: ["main"]
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
steps:
# --------------------------
# 1) Checkout
# --------------------------
- name: Checkout
uses: actions/checkout@v4
# --------------------------
# 2) JDK 설정
# --------------------------
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# --------------------------
# 3) 빌드 전 리소스 파일 생성
# --------------------------
- name: Create FCM key file
run: |
mkdir -p src/main/resources
echo '${{ secrets.FCM_SERVICE_ACCOUNT }}' > src/main/resources/firebase-adminsdk.json
- name: Create .env file
shell: bash
run: printf "%s" "${{ secrets.ENV_FILE }}" > .env
# --------------------------
# 4) Gradle 빌드
# --------------------------
- name: Build JAR
run: |
chmod +x ./gradlew
./gradlew clean bootJar -x test
cp $(ls build/libs/*.jar | grep -v plain | head -n 1) app.jar
# --------------------------
# 5) Docker 이미지 빌드 → tar 저장
# --------------------------
- name: Build Docker image
run: |
docker build -t tinybite-server:latest .
docker save tinybite-server:latest | gzip > tinybite-server.tar.gz
# --------------------------
# 6) SCP로 서버에 전송
# --------------------------
- name: Copy files to OCI server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: 22
source: "tinybite-server.tar.gz,.env,docker-compose.yml,nginx/"
target: "/home/ubuntu/tinybite/"
# --------------------------
# 7) 서버에서 이미지 load & 실행
# --------------------------
- name: Deploy on OCI server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: 22
script: |
set -e
echo "=== 디렉토리 구조 확인 ==="
find /home/ubuntu/tinybite -type f | sort
cd /home/ubuntu/tinybite
echo "📦 이미지 로드 중..."
sudo docker load < tinybite-server.tar.gz
echo "🚀 컨테이너 재시작..."
sudo docker compose -f docker/docker-compose.yml up -d --remove-orphans
echo "🧹 정리 중..."
sudo rm -f tinybite-server.tar.gz
sudo docker image prune -f
echo "✅ 배포 완료"