Update gradle.yml #96
This file contains 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 with Gradle | |
on: | |
push: | |
branches: [ "develop", "master" ] # ✅ develop과 master 브랜치 모두 트리거 | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- uses: actions/checkout@v4 | |
# ✅ 공통 application-common.properties 생성 | |
- run: | | |
touch ./backend/src/main/resources/application-common.properties | |
echo "${{ secrets.COMMON_PROPERTIES }}" > ./backend/src/main/resources/application-common.properties | |
cat ./backend/src/main/resources/application-common.properties | |
# ✅ 환경별 application-main.properties 또는 application-dev.properties 설정 | |
- run: | | |
if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
touch ./backend/src/main/resources/application-main.properties | |
echo "${{ secrets.MAIN_PROPERTIES }}" > ./backend/src/main/resources/application-main.properties | |
cat ./backend/src/main/resources/application-main.properties | |
else | |
touch ./backend/src/main/resources/application-dev.properties | |
echo "${{ secrets.DEV_PROPERTIES }}" > ./backend/src/main/resources/application-dev.properties | |
cat ./backend/src/main/resources/application-dev.properties | |
fi | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 | |
- name: Set Gradle Wrapper executable permission | |
run: chmod +x ./backend/gradlew | |
- name: Build with Gradle Wrapper | |
run: cd backend/ && ./gradlew build | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: backend | |
path: ./backend/build/libs/backend-0.0.1-SNAPSHOT.jar | |
deploy: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: backend | |
path: ./backend/build/libs/ | |
- name: Deploy to EC2 | |
run: | | |
if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then | |
echo "${{ secrets.MAIN_EC2_PEM }}" > sync_spot.pem | |
scp_host="${{ secrets.MAIN_EC2_HOST }}" | |
profile="common,main" | |
else | |
echo "${{ secrets.DEV_EC2_PEM }}" > sync_spot.pem | |
scp_host="${{ secrets.DEV_EC2_HOST }}" | |
profile="common,dev" | |
fi | |
chmod 600 sync_spot.pem | |
scp -i sync_spot.pem -o StrictHostKeyChecking=no ./backend/build/libs/backend-0.0.1-SNAPSHOT.jar ${{ secrets.EC2_USERNAME }}@$scp_host:/home/${{ secrets.EC2_USERNAME }}/backend-0.0.1-SNAPSHOT.jar | |
ssh -i sync_spot.pem -o StrictHostKeyChecking=no ${{ secrets.EC2_USERNAME }}@$scp_host " | |
pgrep java | xargs kill -9; | |
nohup java -jar /home/${{ secrets.EC2_USERNAME }}/backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=$profile > /dev/null 2>&1 & disown" | |
rm -f sync_spot.pem |