CI/CD 최종 코드

name: Trello CI/CD

on:
  push:
    branches:
      - master

jobs:
  CI:
    runs-on: ubuntu-latest

    steps:
      - name: Gihub Repository 파일 불러오기
        uses: actions/checkout@v4

      - name: Node 설치
        uses: actions/setup-node@v4
        with:
          node-version: '22.11.0'

      - name: 의존성(라이브러리) 설치
        run: npm ci

      - name: .env파일 만들기
        run: |
          echo '$' > .env

    #- name: 테스트 코드 실행
    #  run: npm run test

  CD:
    needs: CI
    runs-on: ubuntu-latest
    steps:
      - name: SSH로 EC2에 접속하기
        uses: appleboy/ssh-action@v1.0.3
        env:
          ENV: $
        with:
          host: $
          username: $
          key: $
          envs: ENV
          script_stop: true
          script: |
            cd /home/ubuntu/trello-project
            rm -rf .env
            git pull origin master
            echo "$ENV" > .env
            npm ci
            npm run build
            pm2 kill
            pm2 start dist/src/main.js --name "trello"

이번에 완성 시킨 코드 유용하게 쓸 수 있을 것 같다

이번에 배운점: pull request할때 push도 같이 되기때문에 CI/CD코드에 event발생은 push만 해놓기


기존에는 아래와 같이 작성되어 pull request 이벤트가 발생할때마다 2개의 CI/CD 파이프라인이 만들어졌었다.

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

태그:

카테고리:

업데이트: