天天看點

Newbe.Build.Psake 編寫自動化建構腳本

編寫腳本可以将很多繁瑣重複的工作進行簡化。本篇将介紹一種基于 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 還沒寫完