deploy #13
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: together-server CI/CD | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # 1. GitHub λ ν¬μ§ν 리 μ½λ 체ν¬μμ | |
| - name: Checkout repository | |
| uses: actions/checkout@v2 | |
| # 2. GitHub Secretsλ‘λΆν° .env νμΌ μμ± | |
| - name: Create .env files | |
| run: echo "${{ secrets.ENV_FILE_CONTENT }}" > .env | |
| # 3. JDK 17 μ€μΉ | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v2 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| # 4. .env νμΌ μ‘΄μ¬ μ¬λΆ λ° λ΄μ© μΆλ ₯ | |
| - name: Check .env file | |
| run: | | |
| echo "[π .env νμΌ νμΈ]" | |
| ls -al .env | |
| echo "" | |
| echo "[π .env νμΌ λ΄μ©]" | |
| cat .env | |
| # 5. Gradle λΉλ μ€ν (ν μ€νΈλ μ μΈ) | |
| - name: π οΈ Build Spring Boot App | |
| run: | | |
| cd backend | |
| ./gradlew clean build -x test | |
| # 6. λΉλλ .jar νμΌ λͺ©λ‘ μΆλ ₯ | |
| - name: List build artifacts | |
| run: ls -al backend/build/libs | |
| # 7. EC2λ‘ .jarμ .env νμΌ μ λ‘λ (ν΄λ ꡬ쑰 μ κ±°) | |
| - name: Upload Jar and .env to EC2 | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| source: | | |
| ./backend/build/libs/backend-0.0.1-SNAPSHOT.jar | |
| ./.env | |
| target: ~/deploy/ | |
| strip_components: 1 # λλ ν 리 μ κ±°νκ³ νμΌλ§ ~/deployμ μ λ‘λ | |
| - name: Run Spring Boot App on EC2 | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_SSH_KEY }} | |
| script: | | |
| echo "[MySQL, Redis μ¬μμ]" | |
| sudo systemctl restart mysql | |
| sudo systemctl restart redis | |
| echo "[κΈ°μ‘΄ Spring Boot νλ‘μΈμ€ μ’ λ£ μλ]" | |
| pkill -f 'java -jar' || true | |
| cd ~/deploy | |
| nohup env $(cat .env | xargs) java -jar backend-0.0.1-SNAPSHOT.jar > app.log 2>&1 & | |
| echo "[μ€ν μλ£! λ‘κ·Έ: tail -f ~/deploy/app.log]" | |