@@ -10,8 +10,7 @@ permissions:
1010 contents : read
1111
1212env :
13- # Ubuntu VM에서 docker compose 명령 시 sudo 권한이 필요하다면
14- # 이 변수를 통해 스크립트 내에서 쉽게 참조할 수 있습니다.
13+ # Azure VM에서 docker compose 명령 시 sudo 권한이 필요하면 이 변수를 사용
1514 DOCKER_COMPOSE_CMD : " sudo docker compose"
1615
1716jobs :
3938 - name : Grant execute permission for Gradle
4039 run : chmod +x ./gradlew
4140
42- # 1.4) Gradle로 빌드 (bootJar)
41+ # 1.4) Gradle로 빌드 (bootJar 생성 )
4342 - name : Build with Gradle
4443 run : ./gradlew clean bootJar
4544
@@ -58,30 +57,36 @@ jobs:
5857 - name : Push Docker Image to Docker Hub
5958 run : docker push ${{ secrets.DOCKER_USERNAME }}/fossistant:latest
6059
60+
6161 # ─────────────────────────────────────────────
6262 # 2) Deploy-with-Compose Job
6363 # 빌드가 끝나면 Azure VM에 SSH 접속 → Compose로 배포
6464 # ─────────────────────────────────────────────
6565 deploy-with-compose :
6666 name : Deploy to Azure VM via Docker Compose
6767 runs-on : ubuntu-latest
68- needs : build-and-push-image # build-and-push-image가 끝나야 실행됨
68+ needs : build-and-push-image # build-and-push-image가 성공해야 실행됨
6969
7070 steps :
71- # 2.1) SSH 키 세팅
71+ # 2.1) 소스 코드 체크아웃 (★반드시 추가★)
72+ # → 이 단계가 없으면 docker-compose.yml이 워크스페이스에 없어서 scp가 실패합니다.
73+ - name : Checkout repository
74+ uses : actions/checkout@v3
75+
76+ # 2.2) SSH 키 세팅
7277 - name : Setup SSH private key
7378 run : |
7479 echo "${{ secrets.SSH_KEY }}" > private_key.pem
7580 chmod 600 private_key.pem
7681
77- # 2.2 ) SSH 연결 테스트 (디버깅용)
82+ # 2.3 ) SSH 연결 테스트 (디버깅용)
7883 - name : Debug SSH connection
7984 run : |
8085 ssh -o StrictHostKeyChecking=no -i private_key.pem \
8186 ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }} \
8287 "echo ✅ SSH 접속 성공!"
8388
84- # 2.3 ) .env 파일 생성
89+ # 2.4 ) .env 파일 생성
8590 - name : Generate .env for Docker Compose
8691 run : |
8792 cat <<EOF > .env
@@ -96,21 +101,21 @@ jobs:
96101 GITHUB_CLIENT_SECRET=${{ secrets.CLIENT_SECRET }}
97102 EOF
98103
99- # 2.4 ) docker-compose.yml 업로드
104+ # 2.5 ) docker-compose.yml 업로드
100105 - name : Upload docker-compose.yml to Azure VM
101106 run : |
102107 scp -i private_key.pem -o StrictHostKeyChecking=no \
103108 docker-compose.yml \
104109 ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }}:/home/ubuntu/fossistant/docker-compose.yml
105110
106- # 2.5 ) .env 업로드
111+ # 2.6 ) .env 업로드
107112 - name : Upload .env to Azure VM
108113 run : |
109114 scp -i private_key.pem -o StrictHostKeyChecking=no \
110115 .env \
111116 ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }}:/home/ubuntu/fossistant/.env
112117
113- # 2.6 ) SSH로 접속하여 Azure VM에 배포
118+ # 2.7 ) SSH로 접속하여 Azure VM에 배포
114119 - name : SSH to Azure VM and Deploy with Compose
115120116121 with :
0 commit comments