Skip to content

Merge pull request #57 from TaskFlow-CLAP/CLAP-192 #9

Merge pull request #57 from TaskFlow-CLAP/CLAP-192

Merge pull request #57 from TaskFlow-CLAP/CLAP-192 #9

Workflow file for this run

# github repository actions 페이지에 나타날 이름
name: CI/CD for front using github actions
# event trigger
# develop 브랜치에 pull_request가 닫히거나 푸시했을때 실행
on:
pull_request:
types: [closed]
branches: [ "develop" ]
push:
branches: [ "develop" ]
permissions:
contents: read
jobs:
front-cicd:
runs-on: ubuntu-latest
steps:
# 저장소 코드를 체크아웃합니다. (PR 올린 코드를 가져오는 행위)
- uses: actions/checkout@v4
# Node.js 환경 설정
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22 # 지정된 Node.js 버전 사용
cache: npm # setup-node 의 캐시 기능을 사용함
cache-dependency-path: package-lock.json # 캐시 기능을 사용할 때 캐시의 기준이 될 파일을 지정
- name: Install Dependencies
run: npm install
- name: Build with npm
run: npm run build || exit 0 # exit 0를 추가하여 경고성 오류 무시
- name: Create nginx.conf
run: touch ./nginx.conf
- run: echo "${{ secrets.NGINX_CONF }}" > ./nginx.conf
## docker build & push to production
- name: Docker build & push
run: |
docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker build -t ${{ secrets.DOCKER_FRONT_REPO }} .
docker push ${{ secrets.DOCKER_FRONT_REPO }}
## deploy
- name: Deploy
uses: appleboy/ssh-action@master
id: deploy
with:
host: ${{ secrets.FRONT_HOST }}
username: ${{ secrets.FRONT_HOST_USERNAME }}
key: ${{ secrets.FRONT_HOST_KEY }}
port: ${{ secrets.FRONT_HOST_PORT }}
script: |
docker rm -f taskflow-front
docker image rm ${{ secrets.DOCKER_FRONT_REPO }} -f
docker run --name taskflow-front -d -p 80:80 --restart on-failure ${{ secrets.DOCKER_FRONT_REPO }}