設定管線時,您可以新增管線針對所需動作執行的特定工作類型。每個工作類型均與另一個應用程式整合,並且在建置、測試和交付應用程式時啟用管線。

若要執行管線,無論您必須從存放庫提取構件以進行部署、執行遠端指令碼,還是需要團隊成員對使用者作業進行核准,VMware Code Stream 都具有適當的工作類型供您選取!

在管線中使用工作之前,請確認對應的端點可用。

表 1. 取得核准或設定決定點
工作類型 執行的作業 範例和詳細資料
使用者作業

使用者作業工作會啟用所需的核准,以控制何時執行管線以及何時必須等待核准。

請參閱如何執行管線和查看結果。和如何在 Code Stream 中管理使用者存取和核准

條件

新增決定點,以根據條件運算式確定繼續執行或停止管線。條件為 true 時,管線執行連續工作。條件為 false 時,管線將停止。

請參閱如何在 VMware Code Stream 中使用 [條件] 工作中的變數繫結來執行或停止管線

表 2. 自動執行持續整合和部署
工作類型 執行的作業 範例和詳細資料
雲端範本

從 GitHub 部署自動執行雲端範本,並佈建應用程式,針對您的部署自動執行該雲端範本的持續整合和持續交付 (CICD)。

請參閱如何在 Code Stream 中自動發行從 YAML 雲端範本部署的應用程式
CI

透過從登錄端點提取 Docker 建置映像並將其部署至 Kubernetes 叢集,CI 工作能夠將代碼持續整合到管線中。

請參閱使用智慧管線範本前在 Code Stream 中規劃 CICD 原生建置

自訂

自訂工作將 VMware Code Stream 與您自己的建置工具、測試工具和部署工具整合。

請參閱如何將自己的建置工具、測試工具和部署工具與 Code Stream 整合

Kubernetes

自動將軟體應用程式部署到 AWS 上的 Kubernetes 叢集。

請參閱如何在 Code Stream 中自動將應用程式發行至 Kubernetes 叢集

管線

將管線嵌套於主要管線中。嵌套管線後,此管線將作為主要管線中的工作。

在主要管線的 [工作] 索引標籤上,您可以透過按一下巢狀管線的連結輕鬆導覽至該管線。巢狀管線將在新的瀏覽器索引標籤中開啟。

若要在執行中尋找巢狀管線,請在搜尋區域中輸入 nested

表 3. 整合開發、測試和部署應用程式
工作類型... 它執行的作業... 範例和詳細資料...
Bamboo

與 Bamboo 持續整合 (CI) 伺服器互動,該伺服器持續建置、測試和整合軟體,為部署準備就緒,並在開發人員認可變更時觸發程式碼建置。它會公開 Bamboo 建置產生的構件位置,讓工作可輸出用於建置和部署的其他工作的參數。

連線至 Bamboo 伺服器端點,並從管線啟動 Bamboo 建置計劃。

Jenkins

觸發建置和測試原始程式碼的 Jenkins 工作,執行測試案例,並且可以使用自訂指令碼。

請參閱如何整合 Code Stream 與 Jenkins

TFS

允許您將管線連線至 Team Foundation Server,以便管理和叫用建置專案,包括可建置和測試程式碼的已設定工作。

VMware Code Stream 支援 Team Foundation Server 2013 和 2015。

vRO

透過在 vRealize Orchestrator 中執行預先定義的工作流程或自訂工作流程,來延伸 VMware Code Stream 的功能。

請參閱如何將 Code Stream 與 vRealize Orchestrator 整合

表 4. 透過 API 整合其他應用程式
工作類型... 它執行的作業... 範例和詳細資料...
REST

VMware Code Stream 與其他使用 REST API 的應用程式整合,可讓您持續開發和交付彼此互動的軟體應用程式。

請參閱如何使用 REST API 將 VMware Code Stream 與其他應用程式整合

輪詢

叫用 REST API,並對其進行輪詢,直到管線工作滿足結束準則並完成為止。

請參閱如何使用 REST API 將 VMware Code Stream 與其他應用程式整合

表 5. 執行遠端指令碼和使用者定義的指令碼
工作類型 執行的作業 範例和詳細資料
PowerShell

透過 PowerShell 工作, Code Stream 可以在遠端主機上執行指令碼命令。例如,指令碼可以自動執行測試工作,並執行管理類型的命令。

指令碼可以是遠端指令碼,也可以是使用者定義的指令碼。它可以透過 HTTP 或 HTTPS 進行連線,並且可以使用 TLS。

Windows 主機必須已設定 winrm 服務,並且 winrm 必須已設定 MaxShellsPerUserMaxMemoryPerShellMB

若要執行 PowerShell 工作,您必須具有與遠端 Windows 主機的作用中工作階段。

PowerShell 命令列長度

如果輸入 base64 PowerShell 命令,請務必計算整體命令長度。

Code Stream 管線會對 base64 PowerShell 命令進行編碼並包裝在另一個命令中,這會增加命令的整體長度。

PowerShell winrm 命令允許的長度上限為 8192 個位元組。對 PowerShell 工作進行編碼和包裝後,其命令長度限制會降低。因此,您必須先計算命令長度,然後才能輸入 PowerShell 命令。

Code Stream PowerShell 工作的命令長度限制取決於原始命令的 base64 編碼長度。命令長度的計算方式如下。

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

Code Stream 的命令長度必須小於 8192 的上限。

設定 MaxShellsPerUserMaxMemoryPerShellMB 時:

  • MaxShellsPerUser 可接受的值為 500 (50 個並行管線),每個管線 5 個 PowerShell 工作。若要設定值,請執行:winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • MaxMemoryPerShellMB 可接受的記憶體值為 2048。若要設定值,請執行:winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

指令碼會將輸出寫入至其他管線可以耗用的回應檔案中。

SSH

SSH 工作允許 Bash Shell 指令碼工作在遠端主機上執行指令碼命令。例如,指令碼可以自動執行測試工作,並執行管理類型的命令。

指令碼可以是遠端指令碼,也可以是使用者定義的指令碼。它可以透過 HTTP 或 HTTPS 進行連線,且需要私密金鑰或密碼。

必須在 Linux 主機上設定 SSH 服務,而且 MaxSessions 的 SSHD 組態必須設定為 50

指令碼可以是遠端指令碼,也可以是使用者定義的指令碼。例如,指令碼可能類似於:

message="Hello World" echo $message

指令碼會將輸出寫入至其他管線可以耗用的回應檔案中。