Skip to content

Update gradle.yml

Update gradle.yml #96

Workflow file for this run

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