Skip to content

[#24] Slack 기능 추가 및 패키지 구조 변경 작업 (#30) #99

[#24] Slack 기능 추가 및 패키지 구조 변경 작업 (#30)

[#24] Slack 기능 추가 및 패키지 구조 변경 작업 (#30) #99

name: CD - Deploy To NCP By Docker
on:
push:
branches:
- main
- develop
permissions:
contents: read
jobs:
CI-CD:
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'
# 환경변수 파일 생성 -> GitHub SecretKey 에서 설정한 내용으로 .env 파일 생성
- name: Set up Environment
run: echo "${{ secrets.ENV_PROPERTIES }}" > ./.env
# Gradle 빌드
- name: Build with Gradle
run: ./gradlew clean bootJar
# Nginx 설정 파일을 위한 디렉토리 생성
- name: Create Directory for Nginx
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DEV_HOST }}
username: ${{ secrets.DEV_USERNAME }}
password: ${{ secrets.DEV_PASSWORD }}
port: 22
script: |
mkdir -p /root/nginx/
# 환경변수 파일 서버로 전달하기
- name: Send Environment to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.DEV_HOST }}
username: ${{ secrets.DEV_USERNAME }}
password: ${{ secrets.DEV_PASSWORD }}
source: "./.env"
target: "/root"
# Nginx 설정 파일 서버로 전달하기
- name: Send nginx.conf to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.DEV_HOST }}
username: ${{ secrets.DEV_USERNAME }}
password: ${{ secrets.DEV_PASSWORD }}
port: 22
source: "./nginx/default.conf"
target: "/root"
# 도커 이미지 빌드 및 푸시
- name: Docker Build & Push to Hub
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -t ${{ secrets.DOCKER_USERNAME }}/questioning-musseukgi -f ./.docker/Dockerfile .
docker push ${{ secrets.DOCKER_USERNAME }}/questioning-musseukgi:latest
# 도커 컴포즈 설정 파일 서버로 전달하기(복사 후 붙여넣기)
- name: Send Docker-Compose to Server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.DEV_HOST }}
username: ${{ secrets.DEV_USERNAME }}
password: ${{ secrets.DEV_PASSWORD }}
port: 22
source: "./.docker/docker-compose.yml"
target: "/root"
# 도커 컴포즈 실행하기
# 도커 허브에서 jar파일 및 pull후에 컴포즈 up
- name: Deploy to Dev
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DEV_HOST }}
username: ${{ secrets.DEV_USERNAME }}
password: ${{ secrets.DEV_PASSWORD }}
port: 22
script: |
sudo docker rm -f $(docker ps -qa)
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/questioning-musseukgi:latest
docker-compose up -d
docker image prune -f