Skip to content

test

test #96

name: BackEnd - Blue/Green - CD
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: ENV 파일 생성
run: |
touch .env
echo "$ENV" > .env
env:
ENV: ${{ secrets.ENV }}
shell: bash
- name: FCM 파일 생성
run: |
mkdir -p src/main/resources/firebase
echo "$FCM" > src/main/resources/firebase/fcm.json
env:
FCM: ${{ secrets.FCM }}
shell: bash
- name: Gradle 권한 부여
run: chmod +x gradlew
- name: Gradle로 빌드 실행
run: ./gradlew bootjar
# 배포에 필요한 여러 설정 파일과 프로젝트 빌드파일을 zip 파일로 모아줍니다.
- name: zip file 생성
run: |
mkdir deploy
cp .env ./deploy/
cp ./docker/docker-compose.yml ./deploy/
cp ./docker/Dockerfile ./deploy/
cp ./docker/Dockerfile-Nginx ./deploy/
cp ./scripts/*.sh ./deploy/
cp ./build/libs/*.jar ./deploy/
cp ./config/nginx.conf ./deploy/
cp ./config/nginx.blue.conf ./deploy/
cp ./config/nginx.green.conf ./deploy/
chmod +x ./deploy/blue-green-deploy.sh
chmod +x ./deploy/ssl.sh
zip -r -qq -j ./pricewagon-blue-green-app.zip ./deploy
# ZIP 파일 전송
- name: Transfer ZIP file use SCP
uses: appleboy/scp-action@master
with:
username: ${{ secrets.SSH_USERNAME }}
host: ${{ secrets.SSH_HOST }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }}
source: "./pricewagon-blue-green-app.zip"
target: "/home/hong/app/pricewagon-blue-green"
# SSH 연결 후 배포 스크립트 실행
- name: Execute SSH command on remote server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }}
script: |
REMOTE_DIR="/home/hong/app/pricewagon-blue-green"
cd $REMOTE_DIR
unzip -o pricewagon-blue-green-app.zip
chown -R $USER:$USER /home/hong/app/pricewagon-blue-green/data/certbot
chmod -R 755 /home/hong/app/pricewagon-blue-green/data/certbot
./blue-green-deploy.sh