프로젝트를 진행하면서 라이브러리나 패키지의 새로운 버전이 릴리즈 될때마다 최신 상태로 업데이트 하는데 고민이 많았다. 실제로 메이저 버전까지 올라가면 마이그레이션 하는데 상당 시간이 걸릴수 있어 일정에 차질이 생기는 마이그레이션은 진행하지 않았었다.

하지만 자동으로 올라간 버전에 대한 PR를 생성하고 미리 작성된 테스팅 액션을 실행하면 안정성을 높이고 빠른 업데이트를 진행할 수 있지 않을까 싶어 Dependency Bot를 도입 해보려고 한다.


.github/dependabot.yml 파일 생성

프로젝트의 루트 디렉토리에 .github/dependabot.yml 파일을 생성한다.

version: 2
updates:
  - package-ecosystem: "npm" # 프로젝트의 패키지 관리 도구 (예: npm, pip, maven 등)
    directory: "/" # 패키지 파일의 위치
    schedule:
      interval: "weekly" # 업데이트 주기 (daily, weekly, monthly)

GitHub Actions 워크플로우 파일 생성

.github/workflows/dependency-update.yml 파일을 생성하고, 라이브러리 종속성 업데이트를 자동화해주는 워크플로우를 추가한다.

name: Update Dependencies

on:
  schedule:
    - cron: '0 0 * * 0' # 매주 일요일 00:00 UTC에 실행
  workflow_dispatch:

jobs:
  update-dependencies:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm install

      - name: Update dependencies
        run: npm update

      - name: Commit and push changes
        run: |
          git config --global user.name 'github-actions[bot]'
          git config --global user.email 'github-actions[bot]@users.noreply.github.com'
          git add package.json package-lock.json
          git commit -m 'Update dependencies'
          git push
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


Pull Request 생성

위의 설정을 통해 종속성이 업데이트될 때마다 자동으로 PR이 생성되는걸 확인할수 있다.

image.png

별도의 설정을 통해 자동화된 검증을 도입할 수 있다

image.png