본문 바로가기

안드로이드

안드로이드 라이브러리 관리 자동화

반응형

BuildSrc와 함께 어떻게든 라이브러리를 쉽게 관리하기 위해서 이것저것 찾다가
Renovate라는 라이브러리를 자동으로 관리해주는 Bot을 발견했다.

꽤 오래전부터 있던 거 같은데, 이제야 존재를 알게 됐다.

 

그런데 아쉽게도 BuildSrc는 지원해주지 않고, version Catalog에 대한 처리만 제공하고 있다.

비슷한 기능을 제공하는 dependabot 도 BuildSrc는 지원하지 않는다.

 

Renovate를 적용하려고 versionCatalog로 싹 갈아엎었고,

이제 Renovate를 적용해보겠다.

1. Renovate

 

GitHub - renovatebot/tutorial: Renovate Bot Tutorial source

Renovate Bot Tutorial source. Contribute to renovatebot/tutorial development by creating an account on GitHub.

github.com

해당 봇은 깃허브의 마켓플레이스를 통해서 연결이 가능하고, 너무나 고맙게도 무료로 사용이 가능하다.

설치하는 튜토리얼은 잘 설명되어 있으니 링크를 보자

2. PR을 받을 시간

설치를 하고 잠시 기다리면 Renovate 가 pr과 이슈를 만들기 시작한다.

개인 프로젝트에서 pr 받을 일이 없는데, 설치하고 나면 원 없이 pr을 날려준다.

pr을 보면 굉장히 상세하게 잘 알려준다.

 

age : 해당 라이브러리가 나온 지 얼마나 됐는지

adoption : Renovate 유저 중에 이 버전을 얼마나 쓰는지

passing : 테스트가 얼마나 통과됐는지 ( 이 라이브러리를 적용한 레포들이 테스트를 돌았을 때 실패한 비율인 듯 )

confidence : 신뢰도

 

해당 라이브러리에 포함된 내용도 보여주기는 하는데, 이건 라이브러리에 ChangeLog에서 긁어 오는 거 같다.

ReleaseNote에 있는 내용도 보여주면 좋을 텐데, 그건 안 되는 거 같다.  케바케인듯

 

이슈 내용도 밑에 처럼 깔끔하게 보여준다.

versionCatalog에 bundle로 묶어 놓은 라이브러리들 ( compose ) 은 이슈에서 보는 것처럼 묶어서 표시해준다.

여기서 체크 표시를 하면 해당 라이브러리를 업데이트한 pr을 날려준다. 딜레이는 좀 있다.

가만 두면 알아서 하나씩 pr을 날려준다.

업데이트하기 싫은 라이브러리가 있는 경우 만들어진 pr을 닫아버리면 이렇게 이슈 화면에서 표시해주고, 더 이상 해당 라이브러리는 자동으로 pr을 날리지 않는다.

3. 커스텀 옵션들

 

Configuration Options - Renovate Docs

 

docs.renovatebot.com

아래는 쓸만한 옵션 몇 가지이다.

"packageRules": [
  {
    "matchUpdateTypes": ["minor", "patch"],
    "automerge": true
  }
]

모든 라이브러리를 수동으로 머지하려면 손이 많이 가니, 자동으로 머지할 수 있다.
위 설정은 minor, patch 인 경우에는 자동으로 머지하도록 한다.

 

다만, automerge는 최소 하나 이상의 테스트가 있어야 하고, 모든 테스트가 통과해야 동작한다.

"prConcurrentLimit" : 3,

pr의 최대 개수를 지정할 수 있다. 너무 많은 pr 이 오면 힘들다.

"ignoreTests" : true,

automerge 조건인 테스트를 무시한다. automerge 가 동작하도록 하고 싶은데 테스트는 없는 경우 쓰면 된다.

"ignoreDeps": [
  "androidx.palette:palette-ktx"
]

특정 라이브러리에 대한 업데이트를 확인하지 않도록 만들어 준다.

반응형