Jenkins入門之執行Powershell腳本

以前章節提到過powershell,若是須要構建複雜的任務時,使用cmd不是很方便(也多是因爲筆者不太熟悉cmd命令,這裏見笑了),這時候powershell就派上用場了,這裏並不詳細介紹powershell腳本,若是有須要之後另開章節講解powershell基本命令,powershell面向對象編程,powershell腳本調試,C#編寫powershell cmdlet,powershell相關工具等.本篇主要介紹如何在Jenkins環境中運行powershell命令. shell

目前主要有兩種方法在Jenkins環境中運行powershell腳本:經過windows batch command運行powershell和使用powershell Jenkins插件運行powershell 編程

  1. 使用windows batch command運行powershell.這裏主要是使用powershell.exe來執行powershell腳本,跟在windows下使用cmd執行exe並無什麼兩樣.

    下面咱們建立一個新項目,名稱叫做RunPowershellInCmd,仍然選擇FreeStyle Project,咱們略過幾個和當前項目無關的欄目,直接進入Build 點擊 windows

    選擇紅框框選的命令 安全

    這時候界面上會出現以下命令框,咱們說過,能夠在這裏像在cmd裏面同樣輸入各類cmd命令 多線程

    咱們輸入如下命令後點擊保存 工具

    點擊保存之後,而後執行Build Now執行一次構建.咱們能夠看到命令是執行成功的 ui

    點擊構建記錄#1進入詳情,而後點擊左側console output查看輸出詳情 插件

    咱們能夠看到Jenkins實際上建立的一個臨時bat命令來執行一個cmd命令.這裏之因此沒有輸出結果,是由於當前命令的執行環境爲Jenkins安裝目錄下的當前項目目錄,裏面默認是空的,因此沒有內容,若是咱們在編寫命令裏若是指定-path爲powershell指定要列出哪一個目錄下的內容,則你將會看到此處會輸出此目錄下的內容.固然你也能夠在當前工做目錄下面添加一些隨機內容,而後再執行一次構建,看看輸出內容的變化. 線程

     

    使用powershell.exe來執行powershell腳本時還能夠指定一些參數,注意這裏的參數並非powershell命令的參數,而是powershell.exe運行時支持的參數. 3d

    支持的參數請看如下文檔:

    https://technet.microsoft.com/zh-cn/library/dd315276.aspx

    這裏介紹幾個有用的參數:

-ExecutionPolicy腳本默認執行策略.

Powershell腳本的默認執行策略,若是相要執行遠程腳本必須設置此選項爲RemoteSigned, Unrestricted或者Bypass.關於powershell 執行策略,請看如下文檔

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-6

-Comand 要執行的命令,好比上面咱們執行的是get-childitem

-File 要執行的powershell腳本文件,若是腳本內容很長時,咱們每每保存成一個ps1文件,這裏經過-File參數指定ps1文件所在的位置

-Sta單線程啓用powershell,若是腳本中有非線程安全代碼,多線程啓動則可能會形成數據狀態錯誤,此時須要指定-sta.

-help 獲取關於powershell的幫助,通常的程序都會提供這樣一個參數,經過此參數能夠快速找到一些想要的幫助,而不須要去查看文檔或者筆記

 

  1. 經過插件來運行powershell腳本.

    不少時候經過powershell.exe來執行powershell並非很方便,幸運的是Jenkins裏面有能夠直接運行powershell腳本的插件.下面來看看如何使用

    若是不在Jenkins主界面請點擊左上角人頭標誌切換到主界面,而後點擊左側的Manage Jenkins按鈕

    進入到以下界面:

    點擊進入以下界面

     

    你們的跟個人可能稍不同,由於我已經安裝的一些插件,因此這裏會提示升級.

    點擊上面的Available標籤

     

    咱們在Filter框輸入Powershell搜索powershell插件

    這時候咱們勾選powershell插件前面的複選框,並點擊Install Without Restart按鈕

    這時候進入插件安裝界面:

    等一會咱們發現powershell安裝成功

    勾選Restart Jenkins when installation is complete and no jobs are running前面的複選框,使jenkins重啓,以使插件生效

    等Jenkins重啓完成之後,咱們新建一個任務叫做ExecutePsCmd

    當咱們點擊Add Step Build時,若是powershell安裝成功,便會多出一個選項

    咱們點擊它並添加如下命令:

    注意這裏咱們能夠添加像本地powershell窗口裏同樣的命令.有些小夥伴可能會看到我這裏get-date全是小寫,可是不少教程上都開頭首字母大寫.Powershell是大小寫不敏感的腳本語言,完成全是小寫也是ok的.

    點擊保存之後執行Build Now而後打開#1任務記錄,看看窗口輸出內容:

    Jenkins powershell插件成功執行一條powershell腳本

相關文章
相關標籤/搜索