[TIL] 오늘 새롭게 배웠던 것

김시원·2023년 5월 11일
0

TIL

목록 보기
20/50
post-custom-banner

📌 What I newly learned

- git stash

: 변경 사항 임시 저장

- git rebase

: 한 브랜치의 커밋을 다른 브랜치로 옮기거나, 커밋을 순서를 변경하거나, 삭제하여 이력을 깔끔하게 만드는 작업. 보통 브랜치 간의 커밋 이력을 합치거나 정리할 때 사용.

- pm2 사용하기

*  `pm2 restart [idNumber]`
    -   현재 실행중인 pm2 서비스를 재시작
-   `pm2 list`
    -   pm2를 이용해 관리중인 서비스들의 목록을 출력
-   `pm2 delete [pid number]`
    -   현재 실행중인 pm2 서비스를 종료합니다.
-   `pm2 log`
    -   실행한 서비스들의 로그를 출력할 때 사용합니다.
    -   서비스들의 로그 또는 에러 메시지까지 출력할 수 있어 디버깅에 유용하게 사용할 수 있습니다.
-   `pm2 logs --lines [number]`
    -   `number` 만큼 마지막으로 발생했던 로그들을 순서대로 출력해줍니다.

- Github Action -> CI/CD

  • .env를 읽어오지 못해 다음과 같은 에러가 나왔다.
  • Github Action에서 dotenv를 사용하려면 환경 변수들을 해당 repository에 따로 추가해주어야 한다.
  • 해당 repository > Settings > Security > Actions > New Repository Secret 버튼
  • 다음과 같이 쓰이는 모든 환경 변수들을 추가해준다.
  • 이는 action workflow에서 echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env와 같이 접근이 가능하다.
  • .yml 파일을 수정해준다.
name: Node.js CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Setup Node.js 16.x
      uses: actions/setup-node@v3
      with:
        node-version: 16.x
        cache: 'npm'
    - name: Load env file
      run: |
        touch .env
        echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> .env
        echo "REFRESH_EXPIRES=${{ secrets.REFRESH_EXPIRES }}" >> .env
        echo "ACCESS_EXPIRES=${{ secrets.ACCESS_EXPIRES }}" >> .env
        echo "BCRYPT_SALT_ROUNDS=${{ secrets.BCRYPT_SALT_ROUNDS }}" >> .env
        echo "HOST_PORT=${{ secrets.HOST_PORT }}" >> .env
        echo "DB_TEST_NAME=${{ secrets.DB_TEST_NAME }}" >> .env
        echo "DB_USER=${{ secrets.DB_USER }}" >> .env
        echo "DB_PASSWORD=${{ secrets.DB_PASSWORD }}" >> .env
        echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env
        echo "DB_HOST=${{ secrets.DB_HOST }}" >> .env
        echo "DB_DIALECT=${{ secrets.DB_DIALECT }}" >> .env
        echo "NODEMAILER_USER=${{ secrets.NODEMAILER_USER }}" >> .env
        echo "NODEMAILER_PASS=${{ secrets.NODEMAILER_PASS }}" >> .env
        echo "NODEMAILER_SERVICE=${{ secrets.NODEMAILER_SERVICE }}" >> .env
    - name: Install Dependencies
      run: npm ci
    - run: npm test
  • 이 과정에서 계속 아래와 같은 에러가 났었는데, 이는 test db를 create해주지 않아서 발생한 오류였다.
    npx sequelize db:create --env test로 test db를 만들어주자!

  • 테스트는 다 통과했는데 이런 에러가 나왔다. pm2로 서버를 돌리고 있어서 address가 이미 사용중이라고 뜨는 거 같은데... 어떻게 해결하지..? 다음 도전 과제임...

📌 What to learn next

  • Github action 위 에러 해결하고 CI/CD 완성시키기
post-custom-banner

0개의 댓글