RabbitAI의 코드리뷰 기능과 SonarQube의 정적분석기능을 함께 이용해 CI ~ CD 단계의 일부에 활용하는 변종 Flow를 알아보겠습니다.

코드 컨벤션,룰셋등 조정없이 순정인 상태로만 이용을 하였습니다.

소개되는 FLOW


머지 요청하기전 Local 검증

머지요청


SonarQube분석을 빌드 Action타이밍에 작동시키는 기본 스크립트

name: Build

on:
  push:
    branches:
      - main

jobs:
  build:
    name: Build and analyze
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0  # Shallow clones should be disabled for a better relevancy of analysis
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: 17
          distribution: 'zulu' # Alternative distribution options are available.
      - name: Cache SonarQube packages
        uses: actions/cache@v4
        with:
          path: ~/.sonar/cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar
      - name: Cache Gradle packages
        uses: actions/cache@v4
        with:
          path: ~/.gradle/caches
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
          restore-keys: ${{ runner.os }}-gradle
      - name: Build and analyze
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
        run: cd ./KotlinBootReactiveLabs && chmod +x ./gradlew && ./gradlew build sonar --info -x test


머지요청 ~ 리뷰 ~ 빌드분석 까지 여정을 대시보드를 통해 확인및 측정을 할수 있습니다.

“측정하지 못하면 관리할 수 없고, 관리할 수 없으면 개선할 수 없다”

CoderRabbit AI PR 대시보드



SonarQube의 정적 분석툴 대시보드


셀프로 연구중인 코드에서 오버 엔지니어인것처럼 보일수 있지만 한명의 AI 협력자를 두어 외롭지않은 개발을 할수 있는것 자체로도 유용할것같으며

아는만큼 적용한다고 팀프로젝트에도 도입하면 유용할것으로 보여집니다.


이상 코프링 Reactive Labs(Akka)을 연구하는도중 AI협력자를 셋업한 변종 실험이였습니다.