在 GitLab CI Pipeline 運用 SonarQube 做程式碼品質分析

前言 如果問到哪裡有免費的程式碼品質分析(掃描)工具,這幾年大家第一時間多半都會回答 SonarQube Community Edition。 (截圖日期:2023.12.04) 如上圖,SonarQube 原廠有提供多種 Edition,商業策略也與其他軟體供應商類似,提供 Community Edition 吸引廣大的使用者,並在 Developer Edition 與 Enterprise Edition 提供更強大的整合與進階功能。 本文就讓我們嘗試架設 SonarQube 9.9.3 LTS,並且在 GitLab CI Pipeline 中加入程式碼分析的 CI Job。 操作步驟 架設 SonarQube Server 老樣子,在這個時代,想要試用一個新服務最簡單的方式,就是想辦法利用 Container 快速將服務架設起來。SonarQube 原廠當然也明白這一點,因此早就準備好現成可用的 Docker image。 這裡我們要使用的 image 是 sonarqube:9.9.3-community。 請準備至少有 4GB RAM 可運行 Docker Container 的環境,然後使用下面的 docker-compose.yml 即可快速架設 SonarQube。 services: sonarqube: # 9.9.3 是 LTS 版本 image: sonarqube:9.9.3-community # SonarQube 需要相依一個 db,這裡我們選用 postgres db depends_on: - postgres_db environment: # 設定 postgres 的連線資訊 SONAR_JDBC_URL: jdbc:postgresql://postgres_db:5432/mysonar # 帳密建議可以改一下啦! SONAR_JDBC_USERNAME: mysonar SONAR_JDBC_PASSWORD: mysonar # 如果你的 Container 跑起來有遇到一些 ElasticSearch 的錯誤,可以試著加上這個參數。 SONAR_ES_BOOTSTRAP_CHECKS_DISABLE: 'true' # 主要的 data 直接存放在 docker volumes volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_logs:/opt/sonarqube/logs # 預設使用 9000 port ports: - "9000:9000" postgres_db: # 2023....

December 9, 2023 · Cheng Wei Chen