Merge pull request #172 from Jungle-CQuiS/feature/emoji #251
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
# workflow name | |
name: Github Actions CI/CD | |
# Event: when the workflow will run | |
# workflow runs on push events to the main branch | |
on: | |
push: | |
branches: | |
- develop | |
# workflow consists of more than one job | |
# multiple jobs run in parallel | |
jobs: | |
# id to identify job | |
Deploy: | |
# type of runner(lastest version of ubuntu) | |
runs-on: ubuntu-latest | |
# step: a task that can run commands | |
# steps to run in the job | |
steps: | |
- name: Github Repository에 올린 파일들을 불러오기 | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # fetch entire history | |
submodules: true # including submodules | |
- name: JDK 17 버전 설치 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: corretto | |
java-version: 17 | |
- name: application.yml 파일 만들기 | |
run: | | |
echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml | |
echo "${{ secrets.APPLICATION_LOCAL_PROPERTIES }}" > ./src/main/resources/application-local.yml | |
echo "${{ secrets.APPLICATION_PROD_PROPERTIES }}" > ./src/main/resources/application-prod.yml | |
echo "${{ secrets.APPLICATION_JWT_PROPERTIES }}" > ./src/main/resources/application-jwt.yml | |
- name: 테스트 및 빌드하기 | |
run: ./gradlew clean build | |
- name: 빌드된 파일 이름 변경하기 | |
run: mv ./build/libs/*SNAPSHOT.jar ./project.jar | |
- name: SCP로 메인 서버 EC2에 빌드된 파일 전송하기 | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST }} # EC2 인스턴스의 호스트 IP | |
username: ${{ secrets.EC2_USERNAME }} # Ubuntu 사용자 이름 | |
key: ${{ secrets.EC2_PRIVATE_KEY }} # EC2 인스턴스 pem 키 | |
source: project.jar | |
target: /home/ubuntu/backend/tobe | |
# connect to ec2 instance | |
- name: SSH로 메인 서버 EC2에 접속하기 | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST }} | |
username: ${{ secrets.EC2_USERNAME }} | |
key: ${{ secrets.EC2_PRIVATE_KEY }} | |
script: | | |
rm -rf /home/ubuntu/backend/current | |
mkdir /home/ubuntu/backend/current | |
cp /home/ubuntu/backend/tobe/project.jar /home/ubuntu/backend/current/project.jar | |
cd /home/ubuntu/backend/current | |
sudo fuser -k -n tcp 8080 || true | |
nohup java -jar project.jar > ./output.log 2>&1 & | |
rm -rf /home/ubuntu/backend/tobe | |
- name: SCP로 테스트 서버 EC2에 빌드된 파일 전송하기 | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST_TEST }} | |
username: ${{ secrets.EC2_USERNAME_TEST }} | |
key: ${{ secrets.EC2_PRIVATE_KEY }} | |
source: project.jar | |
target: /home/ubuntu/backend/tobe | |
# connect to ec2 instance | |
- name: SSH로 테스트 서버 EC2에 접속하기 | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.EC2_HOST_TEST }} | |
username: ${{ secrets.EC2_USERNAME_TEST }} | |
key: ${{ secrets.EC2_PRIVATE_KEY }} | |
script: | | |
rm -rf /home/ubuntu/backend/current | |
mkdir /home/ubuntu/backend/current | |
cp /home/ubuntu/backend/tobe/project.jar /home/ubuntu/backend/current/project.jar | |
cd /home/ubuntu/backend/current | |
sudo fuser -k -n tcp 8080 || true | |
nohup java -jar project.jar > ./output.log 2>&1 & | |
rm -rf /home/ubuntu/backend/tobe |