[Qodana] Github Actions 연동하기

Hoi-82·2024년 3월 6일
post-thumbnail

Qodana란 JetBrains 사의 정적 코드 분석기로 개발 팀이 합의된 품질 표준에 따라 읽기 및 유지 관리 가능하고 안전한 코드를 제공하는 데 도움을 준다고 한다.

IntelliJ IDEA 사용 중 알게 되었다. 역시 같은 회사의 제품이기에 연동 또한 깔끔하게 잘 되는 것이 좋다.


JetBrains Qodana

  • 🔗 https://qodana.cloud/ 해당 페이지로 이동하게 된다.
  • 첫 페이지에서는 Qodana 내에서 사용할 조직 명을 입력한 후 팀을 만들어보자.

❗ 무료 버전으로는 조직을 두 개 까지 만들 수 있다. 만들어진 조직은 삭제할 수 없으니 신중하게 만들어야 한다.
해당 이슈는 23년 11월 15일 이후 고쳐질 것이라고 했지만, 묵묵부답이다…

🔗 https://youtrack.jetbrains.com/issue/QD-6566/Add-button-to-remove-organization-Qodana-Cloud

  • 팀 선택 후 프로젝트를 생성하면 HTTPS 또는 SSH URL을 입력하는 창이 나온다.
  • 자신의 github repository URL 또는 SSH를 입력하자.

  • 프로젝트 명을 입력하자.

  • 프로젝트 생성 시 입력했던 Github Repository에서 Settings → Security → Secrets and variables → Actions 순서대로 들어가면 Repository secrets가 나올 것이다.
    • New repository secret을 눌러 Name은 ‘QODANA_TOKEN’, Secret은 위 Token 값을 입력 후 등록하자.

  • 자신의 프로젝트에 Qodana 설정 yml 파일을 등록해야 한다.
    • 설정 위치 : .github/workflows/code_quality.yml
name: Qodana
on:
  workflow_dispatch:
  pull_request:
  push:
    branches: # Specify your branches here
      - main # The 'main' branch
      - 'releases/*' # The release branches

jobs:
  qodana:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      checks: write
    steps:
      - uses: actions/checkout@v3
        with:
          ref: ${{ github.event.pull_request.head.sha }}  # to check out the actual pull request commit, not the merge commit
          fetch-depth: 0  # a full history is required for pull request analysis
      - name: 'Qodana Scan'
        uses: JetBrains/qodana-action@v2023.3
        env:
          QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
  • 위와 같이 직접 등록하는 방법 대신 IntelliJ IDEA를 활용할 수도 있다.
    • Settings → Tools → Qodana에서 계정을 연동하면 위에서 만든 프로젝트를 선택할 수 있다.

  • Alt + 6을 눌러 Problems에 진입 후 Server-Side Analysis탭을 선택
    • Open → Try Code Analysis with Qodana → Add to CI Pipeline → Next → Add

  • 위 내용으로 yml 파일이 자동으로 생성되었을 것이다. commit and push를 하자.
  • Actions의 Workflow에서 Qodana가 연동되고 있는 모습을 확인할 수 있다.

  • Qodana.cloud에서 연동과 분석을 확인할 수 있다.

무료 버전은 JVM, Java for Android, Python, .NET만 지원하고 프레임워크는 모두 지원하지 않는다고 한다.

회사에서 Qodana를 채택하고 Ultimate 버전을 지원해주는 것이 아니라면 개인 프로젝트에서는 많은 활용도를 낼 수 없을 것 같다…

profile
가치있는 것을 만드는 개발자

0개의 댓글