Skip to content

Merge pull request #172 from Jungle-CQuiS/feature/emoji #251

Merge pull request #172 from Jungle-CQuiS/feature/emoji

Merge pull request #172 from Jungle-CQuiS/feature/emoji #251

Workflow file for this run

# 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