ci/cd: docker compose restart app 으로 최종 명령어 수정
#55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Java CI/CD with EC2 | ||
| on: | ||
| push: | ||
| branches: [ "main" ] | ||
| jobs: | ||
| build-and-deploy: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| - name: Set up JDK 21 | ||
| uses: actions/setup-java@v4 | ||
| with: | ||
| java-version: '21' | ||
| distribution: 'temurin' | ||
| cache: gradle | ||
| - name: Grant execute permission for gradlew | ||
| run: chmod +x gradlew | ||
| # 1. 빌드 | ||
| - name: Build with Gradle | ||
| run: ./gradlew :module-api:clean :module-api:bootJar | ||
| # 2. SCP를 이용해 EC2로 전송 | ||
| - name: Copy JAR to EC2 | ||
| uses: appleboy/scp-action@v0.1.7 | ||
| with: | ||
| host: ${{ secrets.EC2_HOST }} | ||
| username: ${{ secrets.EC2_USERNAME }} | ||
| key: ${{ secrets.EC2_SSH_KEY }} | ||
| source: "module-api/build/libs/app.jar" | ||
| target: "~/app/module-api/" | ||
| strip_components: 3 # module-api/build/libs 경로를 제거하고 파일만 전송 | ||
| # 3. SSH 접속 후 Docker Compose의 app 재시작 | ||
| - name: Restart Docker Compose | ||
| uses: appleboy/ssh-action@v1.0.3 | ||
| with: | ||
| host: ${{ secrets.EC2_HOST }} | ||
| username: ${{ secrets.EC2_USERNAME }} | ||
| key: ${{ secrets.EC2_SSH_KEY }} | ||
| script: | | ||
| cd ~/app | ||
| # docker compose up -d app | ||
| docker compose restart app | ||