Update gradle.yml #28
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" ] | |
pull_request: | |
branches: [ "develop" ] | |
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 | |
- run: touch ./backend/src/main/resources/application-api.properties | |
- run: echo "${{ secrets.API_PROPERTIES }}" > ./backend/src/main/resources/application-api.properties | |
- run: cat ./backend/src/main/resources/application-api.properties | |
- uses: actions/checkout@v4 | |
- run: touch ./backend/src/main/resources/application-security.properties | |
- run: echo "${{ secrets.SECURITY_PROPERTIES }}" > ./backend/src/main/resources/application-security.properties | |
- run: cat ./backend/src/main/resources/application-security.properties | |
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. | |
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md | |
- 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@v2 | |
with: | |
name: backend | |
path: ./backend/build/libs/backend-0.0.1-SNAPSHOT.jar | |
# 배포 ** | |
deploy: | |
needs: build | |
runs-on: ubuntu-latest | |
# 위의 빌드작업한 JAR 파일 = 아티팩트를 다운로드 | |
steps: | |
- name: Download build artifact | |
uses: actions/download-artifact@v2 | |
with: | |
name: backend | |
path: ./backend/build/libs/ | |
# EC2에 배포 | |
# EC2 SSH 키를 private_key.pem 파일로 저장 ( 위치는 GitHub 서버 ) | |
# SCP를 사용하여 JAR 파일을 EC2 서버로 복사 | |
# SSH를 사용하여 EC2 서버에 연결하고 현재 실행 중인 Java 프로세스를 종료한 다음 새로운 Java 프로세스 생성 및 실행!! | |
## NLP 적용하면 IP -> 도메인으로 수정 + EC2 늘리면 run 추가 | |
- name: Deploy to EC2 | |
run: | | |
echo "${{ secrets.EC2_SSH_KEY }}" > middle-point-search.pem | |
chmod 600 middle-point-search.pem | |
scp -i middle-point-search.pem -o StrictHostKeyChecking=no ./backend/build/libs/backend-0.0.1-SNAPSHOT.jar ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }}:/home/${{ secrets.EC2_USERNAME }}/backend-0.0.1-SNAPSHOT.jar | |
ssh -i middle-point-search.pem -o StrictHostKeyChecking=no ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }} "pgrep java | xargs kill -9; nohup java -jar /home/${{ secrets.EC2_USERNAME }}/backend-0.0.1-SNAPSHOT &" | |
rm -f middle_point.pem | |