Posts
Visual Studio Code - Python on Visual Studio Code
要在 Visual Studio Code 使用 Python,可安裝 Visual Studio Code 的 Python 套件。
套件安裝完按下熱鍵打開 Command Palette (Windows 為 Ctrl+ Shift + P, OS X 為CMD + SHIFT + P),搜尋並運行 Tasks: Configure Task Runner。
接著選取 TypeScript - tsconfig.json。
修改 tasks.json 設定,command 設為 python、args 設為 ${file}、showOutput 設為 always。
設定修改完存檔,按下熱鍵運行 Tasks: Run Build Task (Windows 為 Ctrl+ Shift + B, OS X 為CMD + SHIFT + B),即可運行 Python 程式。
Link Python with Visual Studio Code [Python] 使用 Visual Studio Code 作為開發環境
read morePosts
Visual Studio Code - Check for updates
要更新 Visual Studio Code,可點選 [Code | Check For Updates…] 選單選項。
Visual Studio Code 會開始檢查是否有可用的更新。
然後開始安裝更新。
更新安裝後 Visual Studio Code 會出現提示 Visual Studio Code will be updated after it restarts.,告知我們可以套用更新,這邊可以按下 Update Now 按鈕立即套用更新,或是按下 Later 按鈕暫緩套用,抑或是按下 Release Notes 按鈕查閱這次的更新有什麼變更。
這邊按下 Update Now 按鈕繼續。
Visual Studio Code 重啟後更新就套用上去了。
read morePosts
SonarQube - Analyzing with SonarQube Scanner
要使用 SonarQube 進行程式碼分析,並將分析結果送至 SonarQube Server,最簡單的就是使用 SonarQube Scanner。
先至官網將 SonarQube Scanner 下載下來。
下載下來後直接解壓即可使用,其命令使用方式如下:
usage: sonar-scanner [options] Options: -D,--define <arg> Define property -e,--errors Produce execution error messages -h,--help Display help information -v,--version Display version information -X,--debug Produce execution debug output 其中比較常用的就是參數 -D,–define,可用來定義 SonarQube 分析所需要的屬性,像是 sonar.host.url 屬性用來指定 SonarQube 的位置、sonar.projectName 用來指定 SonarQube 的 Project name、sonar.projectVersion 用來指定 SonqrQube 的 Project version、sonar.projectKey 用來指定 Sonarqube 的 Project key、sonar.log.level 用來指定分析運行時的 log 層級…等。
除了透過 -D,–define 將這些屬性用參數帶入設定外,也可以使用設定檔,只要將屬性的設定寫在名為 sonar-project.properties 檔案。
這樣運行分析時也只需要直接調用 sonar-scanner。
read morePosts
'C# 7.0 - Out variables'
C# 7.0 以前使用的方法若有 Out 參數,需要事先宣告才能帶入使用。
... string data; GetData(out data); ... static void GetData(out string data) { ... } C# 7.0 以後,可以在帶入 Out 參數時直接順帶宣告。
... GetData(out string data); ... 也可以結合使用區域型別推斷。
... GetData(out var data); ... 完整的範例程式如下:
using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { GetData(out string data); //GetData(out var data); Console.WriteLine($"{data}"); } static void GetData(out string data) { data = "Level Up (http://larrynung.github.io/)"; } } } 運行結果如下:
read morePosts
SonarQube - System upgrades
要進行 SonarQube 的系統升級,目前 Update Center 只支援查閱更新以及告知升級的步驟,尚未支援自動升級,需要自行手動升級。
可以先下載新版的 SonarQube 程式。
將舊的 SonarQube 服務停止。
停止後將舊的服務移除。
將舊的 SonarQube 設定與套件放到新的 SonarQube。
再將新的 SonarQube 服務安裝。
將安裝好的服務啟動。
即完成 SonarQube 的系統升級。
read morePosts
SonarQube - Project management
要將程式送到 SonarQube 進行分析,首先必須要在 SonarQube 建立 Project。
可點擊 [Administration | Projects | Management] 選單選項開啟 Project management 頁面。
點選 Project management 頁面右上方的 Create Project 按鈕。
設定 Project 的 Name 與 Key 後按下 Create 按鈕。
Project 即建立完成。
接著點選 Project 名稱進入 Project 管理頁面,這邊的 Administration 下有些設定可適需要做些調整。
像是可能要調整要分析的副檔名,就可以到 General Settings 頁面做對應的設定。
要指定專案所使用的 Quality Profile,可到 Quality Profiles 頁面設定。
要指定專案所使用的 Quality Gate,可到 Quality Gate 頁面設定。
read morePosts
SonarQube - Quality Gates
Quality Gate 是產品要上到正式環境所要滿足的條件,可在 SonarQube 的 Quality Gates 頁面管理,可以點選 Create 按鈕新增,或是點選 Quality Gate 的名稱進一步的管理。
點選 Quality Gate 名稱後,可以在導到的頁面調整 Quality Gate 所要滿足的條件。可以設定新的程式碼要小於多少分才後會是 Warning 或是 Error。
若有需要該頁面也可以針對 Quality Gate 的名稱進行修改,或是 Quality Gate 的複製、設定/取消預設使用、以及 Quality Gate 的刪除。
read morePosts
SonarQube - Quality Profiles
SonarQube 的 Quality Profiles 頁面提供我們查詢可供分析的 Profile。
Profile 為分析 Rule 的集合,多半會造著語言或是套件下去區分。透過 Quality Profiles 頁面我們可以新增 Profile、查看 Profile 的 Rule 數、查看上次使用的時間…等。
點選 Profile 的名稱可進一步進入 Profile 管理頁面。在這頁面我們可以看到 Profile 所使用的 Rule、與設定 Profile 的繼承關係。
在進行程式碼分析之前可先透過該頁面確認 Profile 的 Rule 啟用狀態,因為有時套件安裝的 Profile 其 Rule 預設是未啟用的狀態,或是某些想要分析的 Rule 並未被啟用,這時可以按下 Active More 按鈕切到 Rules 頁面,透過 Rules 頁面將之啟用。
read morePosts
SonarQube - Rules
SonarQube 的 Rules 頁面提供我們查詢可供分析的 Rule。
可以依照語言、類行、Repository…等條件下去過濾 Rule。
可透過該頁面啟用/停用 Rule、查閱 Rule 的細部說明、以及查看程式中是否有相關的 Issue。
read morePosts
Jenkins - Quality Gates Plugin
Jenkins 安裝 SonarQube Plugin 後,雖然能用 Jenkins 分析程式並將分析結果送至 SonarQube,但是不論分析的結果是否有通過 SonarQube Quality Gate, Jenkins 的 job 都是會過。
若要讓 Jenkins job 依照 SonarQube Quality Gate 通過與否去決定建置的成功狀態,可以為 Jenkins 安裝 Quality Gate Plugin。
安裝完後進入 Jenkins 的 設定系統 頁面。
在 Quality Gates 這邊按下 ADD SONAR INSTANCE。
設定 SonarQube 的名稱與位置。
接著到 Job 組態這邊設定建置後動作,使用 Quality Gates 套件,帶入 Project Key。
這樣 Job 在運行時最後就會開始運行 Quality Gates 套件。
Job 的建置狀態就會依 Quality Gates 通過與否去決定。
read more