프로젝트를 진행하면서 라이브러리나 패키지의 새로운 버전이 릴리즈 될때마다 최신 상태로 업데이트 하는데 고민이 많았다. 실제로 메이저 버전까지 올라가면 마이그레이션 하는데 상당 시간이 걸릴수 있어 일정에 차질이 생기는 마이그레이션은 진행하지 않았었다.
하지만 자동으로 올라간 버전에 대한 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/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 }}
위의 설정을 통해 종속성이 업데이트될 때마다 자동으로 PR이 생성되는걸 확인할수 있다.
별도의 설정을 통해 자동화된 검증을 도입할 수 있다