https://www.facebook.com/will.fans/videos/295083338727882 在 macos 上用 SonarQube,會須要: 1. 起一個 docker container 2. 安裝 scanner(可以用 brew 裝) ### 安裝 ```bash docker pull sonarqube:lts-community ``` ### 啟動 ```bash docker run \ -v $(pwd)/sonarqube/data:/opt/sonarqube/data \ -v $(pwd)/sonarqube/extensions:/opt/sonarqube/extensions \ -p 9000:9000 \ -d \ sonarqube:lts-community ``` #### 透過 docker-compose.yaml ```docker-compose.yaml services: sonarqube: image: sonarqube:lts-community ports: - "9000:9000" volumes: - "./data:/opt/sonarqube/data" - "./extensions:/opt/sonarqube/extensions" ``` #### 進入 dashboard http://localhost:9000 ![image](https://hackmd.io/_uploads/HkhRiI4a1l.png) #### 預設帳密: | username | admin | | -------- | -------- | | password | admin | 第一次登入就會被要求修改了 ### 登入後的第一個畫面 ![image](https://hackmd.io/_uploads/SyF8hUETye.png) ### 產生 token 在使用者頭像 > My Account > Security 畫面可以產生 token。選擇 Global Analysis Token,輸入名稱,然後按 Generate: ![image](https://hackmd.io/_uploads/rJblaINaJe.png) 這裡我拿到 `sqa_3c6a08c516eb4ca2184e32e09620d2c0ce9051c0`。 > 要保管好生成的 token,因為錯過就不再產生。 ### 建立專案 ![image](https://hackmd.io/_uploads/rJDGkPNp1l.png) ![image](https://hackmd.io/_uploads/HkNNJPEaye.png) > use the global setting ![image](https://hackmd.io/_uploads/rJ2HkwE6Jx.png) > locally ![image](https://hackmd.io/_uploads/rJJ51wV6Jl.png) > Using existing token ![image](https://hackmd.io/_uploads/HkmpyvV6kg.png) ### 下載 scanner #### 方式一:從官網下載 https://docs.sonarsource.com/sonarqube-community-build/analyzing-source-code/scanners/sonarscanner/ #### 方式二:透過 homebrew ```bash brew install sonar-scanner ``` ### 掃描 ![image](https://hackmd.io/_uploads/HyPWlvN6Jx.png) 執行它給的指令: ```bash sonar-scanner \ -Dsonar.projectKey=ghg-frontend \ -Dsonar.sources=. \ -Dsonar.host.url=http://localhost:9000 \ -Dsonar.login=sqa_3c6a08c516eb4ca2184e32e09620d2c0ce9051c0 ``` ![image](https://hackmd.io/_uploads/SJ48Zv46Jx.png) ### 成果 ![image](https://hackmd.io/_uploads/SkAobPV6Je.png) > 然後就有一堆報告可以看了 ### 產出報告 #### 下載外掛 社群版大家普遍是用「Sonar PDF Report Plugin」來產 PDF。 Repo Owner 很貼心幫大家整理了什麼版本的 sonarqube 應該用什麼版本的外掛: [![image](https://hackmd.io/_uploads/HyO5kYDayl.png)](https://github.com/cnescatlab/sonar-cnes-report?tab=readme-ov-file#compatibility-matrix) 你可以在 Releases 裡面翻到大神已經預先編譯好的 .tar 檔: [![image](https://hackmd.io/_uploads/SyxeetDTJe.png)](https://github.com/cnescatlab/sonar-cnes-report/releases) > 下載後要放進 `/opt/sonarqube/extensions/plugins` 哦!(不是 `/opt/sonarqube/extensions` 這層) #### 匯出 新版介面做在 More 選單底下: ![image](https://hackmd.io/_uploads/B1m3fYDake.png)