Newbe.Build.Psake 編寫自動化構建腳本
- 2020 年 3 月 16 日
- 筆記
編寫腳本可以將很多繁瑣重複的工作進行簡化。本篇將介紹一種基於 powershell 的腳本框架。基於該框架,開發者可以方便的編寫和維護自己的自動化腳本。
抄起腳本一把梭
對項目進行持續集成和持續發佈是現在項目開發中非常基礎的要求。現在可選的自動化構建引擎很多。Jenkins、Gitlab、TFS、TeamCity等都是很好的選擇。很多項目都基於這些自動化構建引擎實現了項目的持續集成和持續發佈。
一般,自動化引擎都提供了簡單的構建步驟,開發者可以直接使用內置的步驟,便可以實現自動化需求。不過,為了更強的自定義需求,開發者往往需要自己編寫一些腳本,然後使用自動化引擎進行構建。例如:發送釘釘通知,這樣的需求,自動化引擎沒有提供專門的插件實現這些需求。
自動化引擎一般都提供了「直接執行腳本」的步驟。直接使用這樣的步驟,開發者可以直接填入腳本實現需求。但是,本文將介紹一種更為合理的方案來解決這樣的需求。
Powershell
Powershell 是微軟提供的一種腳本語言。在最新的 Powershell 6 中,由於基於 Netcore 2.0 作為運行時,Powershell 6 具備了跨平台運行的特性。因此,使用這種腳本語言編寫的腳本可以在不同的操作系統平台上運行。
Psake
Psake 是一個基於 Powershell 的腳本語言框架。通過這種框架,可以結構化的管理自己的腳本。使得自己的腳本更加易讀,便於管理。
以下便是採用 Psake 框架編寫的構建腳本,這段腳本展示了編譯一個解決方案的基礎過程。
properties { # 定義一個變量,指向當前文件夾所在的位置 $rootNow = Resolve-Path . } # 默認任務。調用該腳本時,如果沒有指定執行的任務,那麼將會執行這個任務 # 通過 -depends 指定該任務所依賴的上級任務 Task Default -depends Build # 調用 dotnet 來執行 nuget 還原的操作。 Task Nuget -Description "nuget restore" { Exec { dotnet restore } } # 調用 dotnet 執行編譯操作。 Task Build -depends Nuget -Description "build sln" { Exec { dotnet build -c "Release" } }
TODO 還沒寫完