Skip to content

Merge pull request #103 from Onion-City/dev #47

Merge pull request #103 from Onion-City/dev

Merge pull request #103 from Onion-City/dev #47

Workflow file for this run

name: Build and Deploy Docker Image
on:
push:
branches:
- main
- develop
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18]
name: Node ${{ matrix.node-version }} sample
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
#ESLint 경고 무시
- name: Build
run: npm run build
# Login to ghcr
- name: Login to ghcr
uses: docker/login-action@v1
with:
registry: ghcr.io
username: pinetree2
password: ${{ secrets.GHCR_TOKEN }}
# Docker 빌드 생성 및 푸시
- name: dev Docker build & push
if: contains(github.ref, 'main') || contains(github.ref, 'develop')
run: |
docker build -f Dockerfile -t ghcr.io/onion-city/whatssue_fe_v2/whatssue_fe_v2:latest .
docker push ghcr.io/onion-city/whatssue_fe_v2/whatssue_fe_v2:latest
# 개발서버 SSH접속 및 배포
- name: Deploy
uses: appleboy/ssh-action@master
if: contains(github.ref, 'main') || contains(github.ref, 'develop')
with:
key: ${{secrets.SSH_PRIVATE_KEY }}
host: ${{ secrets.DEV_SERVER_DNS }}
username: ${{ secrets.DEV_SERVER_USER }}
script: |
echo "${{ secrets.GHCR_TOKEN }}" | sudo docker login ghcr.io -u ${{ github.actor }} --password-stdin
if [ "$(docker ps -aq -f name=whatssue_fe_v2)" ]; then
sudo docker stop whatssue_fe_v2
sudo docker rm whatssue_fe_v2
fi
# 이전 이미지를 제거합니다.
if [ "$(docker images -q ghcr.io/onion-city/whatssue_fe_v2/whatssue_fe_v2)" ]; then
sudo docker rmi ghcr.io/onion-city/whatssue_fe_v2/whatssue_fe_v2
fi
sudo docker pull ghcr.io/onion-city/whatssue_fe_v2/whatssue_fe_v2:latest
sudo docker run -d -p 3000:3000 --name whatssue_fe_v2 ghcr.io/onion-city/whatssue_fe_v2/whatssue_fe_v2:latest
sudo docker image prune -f