Skip to content

CLAP-427 QA ์‚ฌํ•ญ ๋ฐ˜์˜ Chloe #5

CLAP-427 QA ์‚ฌํ•ญ ๋ฐ˜์˜ Chloe

CLAP-427 QA ์‚ฌํ•ญ ๋ฐ˜์˜ Chloe #5

Workflow file for this run

# github repository actions ํŽ˜์ด์ง€์— ๋‚˜ํƒ€๋‚  ์ด๋ฆ„
name: CD for front using github actions
on:
pull_request:
types: [ closed ]
branches: [ "develop" ]
permissions:
contents: read
jobs:
front-cd:
if: github.event.pull_request.merged == true
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-only
- name: Create nginxfile.conf
run: touch ./nginxfile.conf
- run: echo "${{ secrets.NGINX_FILE_CONF }}" > ./nginxfile.conf
- name: Create Develop nginx.conf
run: touch ./nginx.conf
- run: echo "${{ secrets.NGINX_CONF }}" > ./nginx.conf
# docker build & push to develop
- name: Docker build & push develop
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 Develop
uses: appleboy/ssh-action@master
id: deployDevelop
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 -f ${{ secrets.DOCKER_FRONT_REPO }}
docker run --name taskflow-front -d -p 80:80 -p 443:443 -v /etc/letsencrypt/:/etc/letsencrypt/ -v /etc/ssl/:/etc/ssl/ --restart on-failure ${{ secrets.DOCKER_FRONT_REPO }}