-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MATE-85 : [FIX] yml 및 deploy.yml 변경 (#75)
* MATE-85 : [FIX] yml 파일 재수정 - 1. 기존 yml 파일 문법 형식에 맞춰 재수정 * MATE-85 : [FIX] yml 파일 수정 - deploy.yml 파일 변경 브랜치가 push가 될때마다 deploy되도록 수정 * MATE-85 : [FIX] jwt secret key 문법 수정 * MATE-85 : [FIX] test.yml 수정 * MATE-85 : [FIX] deploy test 시도 * MATE-85 : [FIX] deploy.yml 변경하여 배포 시도 * MATE-85 : [FIX] deploy.yml gradlew 권한 부여후 시도 * MATE-85 : [FIX] deploy.yml 파일 변경 - 1. EC2에서 직접 빌드하지 않고, GitHub Actions에서 빌드한 jar 파일을 EC2로 전송 * MATE-85 : [FIX] deploy.yml 파일 수정하여 배포 - 1. 별도의 SCP(Secure Copy) 액션 사용 * MATE-85 : [FIX] deploy.yml 파일 수정 - 1.develop 브랜치에 push할 때만 배포가 실행되도록 변경
- Loading branch information
Showing
4 changed files
with
66 additions
and
30 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,71 @@ | ||
# GitHub Actions 워크플로우 이름 정의 | ||
name: Deploy To EC2 | ||
|
||
# 워크플로우 트리거 설정 | ||
# develop 브랜치에 push가 발생할 때만 실행 | ||
on: | ||
push: | ||
branches: | ||
- develop | ||
|
||
jobs: | ||
# 배포 작업 정의 | ||
deploy: | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-latest # 실행 환경 지정 | ||
|
||
# GitHub Actions에서 사용할 환경 변수 설정 | ||
# GitHub Secrets에서 값을 가져옴 | ||
env: | ||
NAVER_CLIENT_ID: ${{ secrets.NAVER_CLIENT_ID }} | ||
NAVER_REDIRECT_URI: ${{ secrets.NAVER_REDIRECT_URI }} | ||
NAVER_CLIENT_SECRET: ${{ secrets.NAVER_CLIENT_SECRET }} | ||
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }} | ||
OPENWEATHER_API_KEY: ${{ secrets.OPENWEATHER_API_KEY }} | ||
|
||
steps: | ||
# 레포지토리 코드를 체크아웃 | ||
- uses: actions/checkout@v3 | ||
|
||
# JDK 17 설정 | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: '17' | ||
distribution: 'temurin' | ||
|
||
# gradlew 파일에 실행 권한 부여 | ||
- name: Grant execute permission for gradlew | ||
run: chmod +x gradlew | ||
|
||
# Gradle을 사용하여 프로젝트 빌드 | ||
- name: Build with Gradle | ||
run: ./gradlew clean build | ||
|
||
# 빌드된 JAR 파일을 EC2 서버로 전송 | ||
- name: Copy jar file to EC2 | ||
uses: appleboy/scp-action@master | ||
with: | ||
host: ${{ secrets.EC2_HOST }} | ||
username: ${{ secrets.EC2_USERNAME }} | ||
key: ${{ secrets.EC2_PRIVATE_KEY }} | ||
source: "build/libs/*SNAPSHOT.jar" # 전송할 JAR 파일 경로 | ||
target: "/home/ubuntu/WEB1_2_PitchingMate_BE" # EC2의 대상 경로 | ||
strip_components: 2 # source 경로에서 상위 2개 디렉토리 제거 | ||
|
||
# EC2 서버에 SSH로 접속하여 배포 스크립트 실행 | ||
- name: SSH로 EC2에 접속하기 | ||
uses: appleboy/[email protected] | ||
env: | ||
APPLICATION_PROPERTIES: ${{ secrets.APPLICATION_PROPERTIES }} | ||
NAVER_CLIENT_ID: ${{ secrets.NAVER_CLIENT_ID }} | ||
NAVER_REDIRECT_URI: ${{ secrets.NAVER_REDIRECT_URI }} | ||
NAVER_CLIENT_SECRET: ${{ secrets.NAVER_CLIENT_SECRET }} | ||
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }} | ||
OPENWEATHER_API_KEY: ${{ secrets.OPENWEATHER_API_KEY }} | ||
with: | ||
host: ${{ secrets.EC2_HOST }} | ||
username: ${{ secrets.EC2_USERNAME }} | ||
key: ${{ secrets.EC2_PRIVATE_KEY }} | ||
envs: | | ||
APPLICATION_PROPERTIES | ||
NAVER_CLIENT_ID | ||
NAVER_REDIRECT_URI | ||
NAVER_CLIENT_SECRET | ||
JWT_SECRET_KEY | ||
OPENWEATHER_API_KEY | ||
script_stop: true | ||
script: | | ||
cd /home/ubuntu/WEB1_2_PitchingMate_BE | ||
git pull origin develop | ||
echo "$APPLICATION_PROPERTIES" > src/main/resources/application-dev.yml | ||
./gradlew clean build | ||
sudo fuser -k -n tcp 8080 || true | ||
nohup java -jar build/libs/*SNAPSHOT.jar > ./output.log 2>&1 & | ||
envs: APPLICATION_PROPERTIES # EC2에 전달할 환경 변수 | ||
script_stop: true # 스크립트 실행 중 오류 발생시 중단 | ||
script: | # EC2에서 실행할 명령어들 | ||
cd /home/ubuntu/WEB1_2_PitchingMate_BE # 프로젝트 디렉토리로 이동 | ||
git pull origin develop # 최신 코드 가져오기 | ||
echo "$APPLICATION_PROPERTIES" > src/main/resources/application-dev.yml # 설정 파일 생성 | ||
sudo fuser -k -n tcp 8080 || true # 8080 포트 사용중인 프로세스 종료 | ||
nohup java -jar *SNAPSHOT.jar > ./output.log 2>&1 & # 새로운 버전 애플리케이션 실행 |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,4 +17,4 @@ spring: | |
h2: | ||
console: | ||
enabled: true | ||
path: /h2-console | ||
path: /h2-console |