[TIL] 25-02-07
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