透過變數和運算式,您可以在管線工作中使用輸入參數與輸出參數。您輸入的參數會將管線工作繫結到一或多個變數、運算式或條件,並確定執行時的管線行為。

管線可以執行簡單或複雜的軟體交付解決方案

將管線工作繫結在一起時,可以包括預設運算式和複雜運算式。因此,您的管線可以執行簡單或複雜的軟體交付解決方案。

若要在管線中建立參數,請按一下輸入輸出索引標籤,然後透過輸入貨幣符號 $ 和運算式來新增變數。例如,此參數會用作呼叫 URL 的工作輸入:${Stage0.Task3.input.URL}

變數繫結的格式使用稱為範圍和金鑰的語法元件。SCOPE 會將內容定義為輸入或輸出,而 KEY 會定義詳細資料。在參數範例 ${Stage0.Task3.input.URL} 中,inputSCOPE,而 URL 是 KEY

任何工作的輸出內容都可以解析為任何數目的變數繫結嵌套層級。

若要瞭解有關在管線中使用變數繫結的詳細資訊,請參閱如何在 Code Stream 管線中使用變數繫結

將美元運算式與 Scope 和 Key 搭配使用,以繫結管線工作

您可以透過在貨幣符號變數中使用運算式,將管線工作繫結在一起。您可以輸入運算式為 ${SCOPE.KEY.<PATH>}

若要確定管線工作的行為,則在每個運算式中,SCOPE Code Stream 所使用的內容。範圍將尋找 KEY,以定義工作所採取動作的詳細資料。當 KEY 的值為巢狀物件時,您可以提供選用的 PATH

這些範例說明了 SCOPEKEY,並向您顯示如何在管線中使用它們。

表 1. 使用 SCOPE 和 KEY
SCOPE 運算式的用途和範例 KEY 如何在管線中使用範圍和金鑰
input

管線的輸入內容:

${input.input1}

輸入內容的名稱

若要在工作中參考管線的輸入內容,請使用此格式:

tasks:
  mytask:
    type: REST
    input:
      url: ${input.url}
      action: get
input:
  url: https://www.vmware.com
output

管線的輸出內容:

${output.output1}

輸出內容的名稱

若要參考用於傳送通知的輸出內容,請使用此格式:

notifications:
 email:
 - endpoint: MyEmailEndpoint
   subject: "Deployment Successful"
   event: COMPLETED
   to:
   - [email protected]
   body: |
     Pipeline deployed the service successfully. Refer ${output.serviceURL}
task input

工作的輸入:

${MY_STAGE.MY_TASK.input.SOMETHING}

在通知中指示工作輸入

當 Jenkins 工作啟動時,它可以參考從工作輸入觸發的工作的名稱。在此情況下,請使用下列格式傳送通知:

notifications:
  email:
  - endpoint: MyEmailEndpoint
    stage: MY_STAGE
    task: MY_TASK
    subject: "Build Started"
    event: STARTED
    to:
    - [email protected]
    body: |
      Jenkins job ${MY_STAGE.MY_TASK.input.job} started for commit id ${input.COMMITID}.
task output

工作的輸出:

${MY_STAGE.MY_TASK.output.SOMETHING}

在後續工作中指示工作輸出

若要在工作 2 中參考管線工作 1 的輸出,請使用此格式:

taskOrder:
  - task1
  - task2
tasks:
 task1:
   type: REST
   input:
     action: get
     url: https://www.example.org/api/status
 task2:
   type: REST
   input:
     action: post
     url: https://status.internal.example.org/api/activity
     payload: ${MY_STAGE.task1.output.responseBody}
var

變數:

${var.myVariable}

參考端點中的變數

若要針對密碼參考端點中的密碼變數,請使用此格式:

---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
 url: https://jenkins.example.com
 username: jenkinsUser
 password: ${var.jenkinsPassword}
var

變數:

${var.myVariable}

參考管線中的變數

若要參考管線 URL 中的變數,請使用此格式:

tasks:
 task1:
  type: REST
  input:
   action: get
   url: ${var.MY_SERVER_URL}
task status

工作的狀態:

${MY_STAGE.MY_TASK.status}

${MY_STAGE.MY_TASK.statusMessage}

stage status

階段的狀態:

${MY_STAGE.status}

${MY_STAGE.statusMessage}

預設運算式

您可以在管線中搭配使用變數與運算式。此摘要包含您可以使用的預設運算式。

運算式 說明
${comments} 在管線執行請求時提供的註解。
${duration} 管線執行的持續時間。
${endTime} 管線執行的結束時間 (如果結束) (UTC)。
${executedOn} 管線執行的開始時間 (UTC),與開始時間相同。
${executionId} 管線執行的識別碼。
${executionUrl} 在使用者介面中導覽至管線執行的 URL。
${name} 管線的名稱。
${requestBy} 請求執行之使用者的名稱。
${stageName} 目前階段在階段範圍中使用時的名稱。
${startTime} 管線執行的開始時間 (UTC)。
${status} 執行狀態:
${statusMessage} 管線執行的狀態訊息。
${taskName} 目前工作在工作輸入或通知中使用時的名稱。

在管線工作中使用 SCOPE 和 KEY

您可以將運算式與任何支援的管線工作搭配使用。這些範例顯示如何定義 SCOPEKEY,並確認語法。代碼範例使用 MY_STAGEMY_TASK 作為管線階段和工作名稱。

若要瞭解有關可用工作的詳細資訊,請參閱在 Code Stream 中提供哪些類型的工作

表 2. 管制工作
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
使用者作業
Input

summary:使用者作業請求的摘要

description:使用者作業請求的說明

approvers:核准者電子郵件地址清單,其中每個項目可以是包含逗號的變數,也可以針對不同的電子郵件使用分號

approverGroups:平台和身分識別的核准者群組地址清單

sendemail:在設定為 true 時,選擇性地按照請求或回應傳送電子郵件通知

expirationInDays:表示請求到期時間的天數

${MY_STAGE.MY_TASK.input.summary}

${MY_STAGE.MY_TASK.input.description}

${MY_STAGE.MY_TASK.input.approvers}

${MY_STAGE.MY_TASK.input.approverGroups}

${MY_STAGE.MY_TASK.input.sendemail}

${MY_STAGE.MY_TASK.input.expirationInDays}

Output

index:表示請求的 6 位數十六進位字串

respondedBy:核准/拒絕使用者作業之人員的帳戶名稱

respondedByEmail:回應者的電子郵件地址

comments:回應期間提供的註解

${MY_STAGE.MY_TASK.output.index}

${MY_STAGE.MY_TASK.output.respondedBy}

${MY_STAGE.MY_TASK.output.respondedByEmail}

${MY_STAGE.MY_TASK.output.comments}

條件
Input

condition:要評估的條件。當條件評估為 true 時,它會將工作標記為完成,而其他回應會使工作失敗

${MY_STAGE.MY_TASK.input.condition}

Output

result:評估後的結果

${MY_STAGE.MY_TASK.output.response}

表 3. 管線工作
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
管線
Input

name:要執行的管線的名稱

inputProperties:要傳遞到巢狀執行的輸入內容

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.inputProperties} # 參考所有內容

${MY_STAGE.MY_TASK.input.inputProperties.input1} # 參考 input1 的值

Output

executionStatus:管線執行的狀態

executionIndex:管線執行的索引

outputProperties:管線執行的輸出內容

${MY_STAGE.MY_TASK.output.executionStatus}

${MY_STAGE.MY_TASK.output.executionIndex}

${MY_STAGE.MY_TASK.output.outputProperties} # 參考所有內容

${MY_STAGE.MY_TASK.output.outputProperties.output1} # 參考 output1 的值

表 4. 自動化連續整合工作
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
CI
Input

steps:一組字串,表示要執行的命令

export:執行步驟後要保留的環境變數

artifacts:要在共用路徑中保留的構件路徑

process:用於 JUnit、JaCoCo、Checkstyle、FindBugs 處理的組態元素集

${MY_STAGE.MY_TASK.input.steps}

${MY_STAGE.MY_TASK.input.export}

${MY_STAGE.MY_TASK.input.artifacts}

${MY_STAGE.MY_TASK.input.process}

${MY_STAGE.MY_TASK.input.process[0].path} # 參考第一個組態的路徑

Output

exports:索引鍵-值配對,表示從輸入 export 中匯出的環境變數

artifacts:已成功保留的構件的路徑

processResponse:輸入 process 的已處理結果集

${MY_STAGE.MY_TASK.output.exports} # 參考所有匯出

${MY_STAGE.MY_TASK.output.exports.myvar} # 參考 myvar 的值

${MY_STAGE.MY_TASK.output.artifacts}

${MY_STAGE.MY_TASK.output.processResponse}

${MY_STAGE.MY_TASK.output.processResponse[0].result} # 第一個程序組態的結果

自訂
Input

name:自訂整合的名稱

version:自訂整合的版本 (已發佈或已過時)

properties:要傳送至自訂整合的內容

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.version}

${MY_STAGE.MY_TASK.input.properties} # 參考所有內容

${MY_STAGE.MY_TASK.input.properties.property1} # 參考 property1 的值

Output

properties:來自自訂整合回應的輸出內容

${MY_STAGE.MY_TASK.output.properties} # 參考所有內容

${MY_STAGE.MY_TASK.output.properties.property1} # 參考 property1 的值

表 5. 自動化連續部署工作:雲端範本
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
雲端範本
Input

actioncreateDeploymentupdateDeploymentdeleteDeploymentrollbackDeployment 中的其中一個

blueprintInputParams:用於建立部署更新部署動作

allowDestroy:可以在更新部署程序中銷毀機器。

CREATE_DEPLOYMENT

  • blueprintName:雲端範本的名稱
  • blueprintVersion:雲端範本的版本

  • fileUrl:選取 GIT 伺服器後,遠端雲端範本 YAML 的 URL。

UPDATE_DEPLOYMENT

這些組合中的任何一種:

  • blueprintName:雲端範本的名稱
  • blueprintVersion:雲端範本的版本

  • fileUrl:選取 GIT 伺服器後,遠端雲端範本 YAML 的 URL。

------

  • deploymentId:部署的識別碼

  • deploymentName:部署的名稱

------

DELETE_DEPLOYMENT

  • deploymentId:部署的識別碼

  • deploymentName:部署的名稱

ROLLBACK_DEPLOYMENT

這些組合中的任何一種:

  • deploymentId:部署的識別碼

  • deploymentName:部署的名稱

------

  • blueprintName:雲端範本的名稱
  • rollbackVersion:要復原到的版本
Output

可繫結至其他工作或管線輸出的參數:

  • 部署名稱可以 ${Stage0.Task0.output.deploymentName} 形式進行存取
  • 部署識別碼可以 ${Stage0.Task0.output.deploymentId} 形式進行存取
  • 部署詳細資料是一個複雜物件,可透過使用 JSON 結果存取內部詳細資料。

若要存取任何內容,請使用點運算子遵循 JSON 階層。例如,若要存取資源 Cloud_Machine_1[0] 的位址,$ 繫結為:

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address}

同樣地,對於類型模板,$ 繫結為:

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor}

Code Stream 使用者介面中,您可以取得任何內容的 $ 繫結。

  1. 在工作輸出內容區域中,按一下檢視輸出 JSON
  2. 若要尋找 $ 繫結,請輸入任何內容。
  3. 按一下搜尋圖示,其會顯示對應的 $ 繫結。

JSON 輸出範例:

JSON 輸出包含路徑尋找程式,您可以在其中搜尋 address 等詞彙,然後 Code Stream 會顯示繫結的完整定義。

範例部署詳細資料物件:

{
	"id": "6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"name": "deployment_6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"description": "Pipeline Service triggered operation",
	"orgId": "434f6917-4e34-4537-b6c0-3bf3638a71bc",
	"blueprintId": "8d1dd801-3a32-4f3b-adde-27f8163dfe6f",
	"blueprintVersion": "1",
	"createdAt": "2020-08-27T13:50:24.546215Z",
	"createdBy": "[email protected]",
	"lastUpdatedAt": "2020-08-27T13:52:50.674957Z",
	"lastUpdatedBy": "[email protected]",
	"inputs": {},
	"simulated": false,
	"projectId": "267f8448-d26f-4b65-b310-9212adb3c455",
	"resources": {
		"Cloud_Machine_1[0]": {
			"id": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"name": "Cloud_Machine_1[0]",
			"powerState": "ON",
			"address": "10.108.79.33",
			"resourceLink": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"componentTypeId": "Cloud.vSphere.Machine",
			"endpointType": "vsphere",
			"resourceName": "Cloud_Machine_1-mcm110615-146929827053",
			"resourceId": "1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"resourceDescLink": "/resources/compute-descriptions/1952d1d3-15f0-4574-ae42-4fbf8a87d4cc",
			"zone": "Automation / Vms",
			"countIndex": "0",
			"image": "ubuntu",
			"count": "1",
			"flavor": "small",
			"region": "MYBU",
			"_clusterAllocationSize": "1",
			"osType": "LINUX",
			"componentType": "Cloud.vSphere.Machine",
			"account": "bha"
		}
	},
	"status": "CREATE_SUCCESSFUL",
	"deploymentURI": "https://api.yourenv.com/automation-ui/#/deployment-ui;ash=/deployment/6a031f92-d0fa-42c8-bc9e-3b260ee2f65b"
}
表 6. 自動化連續部署工作:Kubernetes
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
Kubernetes
Input

actionGETCREATEAPPLYDELETEROLLBACK 中的其中一個

  • timeout:任何動作的整體逾時
  • filterByLabel:要使用 K8S labelSelector 針對動作 GET 篩選的其他標籤

GET、CREATE、DELETE、APPLY

  • yaml:要處理並傳送至 Kubernetes 的內嵌 YAML
  • parameters:KEY、VALUE 配對 - 在內嵌 YAML 輸入區域中,以 VALUE 取代 $$KEY
  • filePath:SCM Git 端點 (如果提供) 中要從中擷取 YAML 的相對路徑
  • scmConstants:KEY、VALUE 配對 - 在透過 SCM 擷取的 YAML 中,以 VALUE 取代 $${KEY}
  • continueOnConflict:設定為 true 時,如果資源已存在,則工作會繼續。

ROLLBACK

  • resourceType:要復原的資源類型
  • resourceName:要復原的資源名稱
  • namespace:必須執行復原的命名空間
  • revision:要復原到的修訂版本

${MY_STAGE.MY_TASK.input.action} # 決定要執行的動作。

${MY_STAGE.MY_TASK.input.timeout}

${MY_STAGE.MY_TASK.input.filterByLabel}

${MY_STAGE.MY_TASK.input.yaml}

${MY_STAGE.MY_TASK.input.parameters}

${MY_STAGE.MY_TASK.input.filePath}

${MY_STAGE.MY_TASK.input.scmConstants}

${MY_STAGE.MY_TASK.input.continueOnConflict}

${MY_STAGE.MY_TASK.input.resourceType}

${MY_STAGE.MY_TASK.input.resourceName}

${MY_STAGE.MY_TASK.input.namespace}

${MY_STAGE.MY_TASK.input.revision}

Output

response:擷取完整回應

response.<RESOURCE>:資源對應於 configMaps、部署、端點、入口、工作、命名空間、網繭、replicaSets、Replicationcontroller、密碼、服務、statefulSets、節點、負載平衡器。

response.<RESOURCE>.<KEY>:金鑰對應於 apiVersion、種類、中繼資料、規格中的其中一個

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.response.}

表 7. 整合開發、測試和部署應用程式
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
Bamboo
Input

plan:計劃名稱

planKey:計劃金鑰

variables:要傳遞至計劃的變數

parameters:要傳遞至計劃的參數

${MY_STAGE.MY_TASK.input.plan}

${MY_STAGE.MY_TASK.input.planKey}

${MY_STAGE.MY_TASK.input.variables}

${MY_STAGE.MY_TASK.input.parameters} # 參考所有參數

${MY_STAGE.MY_TASK.input.parameters.param1} # 參考 param1 的值

Output

resultUrl:所產生建置的 URL

buildResultKey:所產生建置的金鑰

buildNumber:組建編號

buildTestSummary:所執行測試的摘要

successfulTestCount:測試結果已通過

failedTestCount:測試結果失敗

skippedTestCount:測試結果已略過

artifacts:來自建置的構件

${MY_STAGE.MY_TASK.output.resultUrl}

${MY_STAGE.MY_TASK.output.buildResultKey}

${MY_STAGE.MY_TASK.output.buildNumber}

${MY_STAGE.MY_TASK.output.buildTestSummary} # 參考所有結果

${MY_STAGE.MY_TASK.output.successfulTestCount} # 參考特定測試計數

${MY_STAGE.MY_TASK.output.buildNumber}

Jenkins
Input

job:Jenkins 工作的名稱

parameters:要傳遞至工作的參數

${MY_STAGE.MY_TASK.input.job}

${MY_STAGE.MY_TASK.input.parameters} # 參考所有參數

${MY_STAGE.MY_TASK.input.parameters.param1} # 參考參數的值

Output

job:Jenkins 工作的名稱

jobId:所產生工作的識別碼,例如 1234

jobStatus:Jenkins 中的狀態

jobResults:測試/程式碼涵蓋範圍結果的集合

jobUrl:所產生工作執行的 URL

${MY_STAGE.MY_TASK.output.job}

${MY_STAGE.MY_TASK.output.jobId}

${MY_STAGE.MY_TASK.output.jobStatus}

${MY_STAGE.MY_TASK.output.jobResults} # 參考所有結果

${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # 參考 JUnit 結果

${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # 參考 JaCoCo 結果

${MY_STAGE.MY_TASK.output.jobUrl}

TFS
Input

projectCollection:TFS 中的專案集合

teamProject:從可用集合中選取的專案

buildDefinitionId:要執行的建置定義識別碼

${MY_STAGE.MY_TASK.input.projectCollection}

${MY_STAGE.MY_TASK.input.teamProject}

${MY_STAGE.MY_TASK.input.buildDefinitionId}

Output

buildId:所產生建置的識別碼

buildUrl:用於造訪建置摘要的 URL

logUrl:用於造訪記錄的 URL

dropLocation:構件的放置位置 (如果有)

${MY_STAGE.MY_TASK.output.buildId}

${MY_STAGE.MY_TASK.output.buildUrl}

${MY_STAGE.MY_TASK.output.logUrl}

${MY_STAGE.MY_TASK.output.dropLocation}

vRO
Input

workflowId:要執行的工作流程的識別碼

parameters:要傳遞至工作流程的參數

${MY_STAGE.MY_TASK.input.workflowId}

${MY_STAGE.MY_TASK.input.parameters}

Output

workflowExecutionId:工作流程執行的識別碼

properties:來自工作流程執行的輸出內容

${MY_STAGE.MY_TASK.output.workflowExecutionId}

${MY_STAGE.MY_TASK.output.properties}

表 8. 透過 API 整合其他應用程式
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
REST
Input

url:要呼叫的 URL

action:要使用的 HTTP 方法

headers:要傳遞的 HTTP 標頭

payload:請求裝載

fingerprint:URL 為 https 時要符合的指紋

allowAllCerts:設定為 true 時,可以是 URL 為 https 的任何憑證

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.action}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.payload}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode:HTTP 回應代碼

responseHeaders:HTTP 回應標頭

responseBody:收到的回應字串格式

responseJson:周遊回應 (如果內容類型為 application/json)

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseHeaders}

${MY_STAGE.MY_TASK.output.responseHeaders.header1} # 參考回應標頭「header1」

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # 參考 JSON 回應

${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # 參考回應中 a.b.c JSON 路徑之後的巢狀物件

輪詢
Input

url:要呼叫的 URL

headers:要傳遞的 HTTP 標頭

exitCriteria:工作成功或失敗需符合的準則。索引鍵-值配對:「成功」→運算式,「失敗」→運算式

pollCount:要執行的反覆運算次數。 Code Stream 管理員最多可以將輪詢計數設定為 10000。

pollIntervalSeconds:每個反覆運算之間要等待的秒數。輪詢時間間隔必須大於或等於 60 秒。

ignoreFailure:設定為 true 時,忽略中繼回應失敗

fingerprint:URL 為 https 時要符合的指紋

allowAllCerts:設定為 true 時,可以是 URL 為 https 的任何憑證

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.exitCriteria}

${MY_STAGE.MY_TASK.input.pollCount}

${MY_STAGE.MY_TASK.input.pollIntervalSeconds}

${MY_STAGE.MY_TASK.input.ignoreFailure}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode:HTTP 回應代碼

responseBody:收到的回應字串格式

responseJson:周遊回應 (如果內容類型為 application/json)

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Refer to response as JSON

表 9. 執行遠端指令碼和使用者定義的指令碼
工作 Scope Key 如何在工作中使用 SCOPE 和 KEY
PowerShell

若要執行 PowerShell 工作,您必須:

Input

host:機器的 IP 位址或主機名稱

username:用於連線的使用者名稱

password:用於連線的密碼

useTLS:嘗試 https 連線

trustCert:設定為 true 時,信任自我簽署憑證

script:要執行的指令碼

workingDirectory:執行指令碼前要切換到的目錄路徑

environmentVariables:要設定的環境變數的索引鍵-值配對

arguments:要傳遞至指令碼的引數

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.useTLS}

${MY_STAGE.MY_TASK.input.trustCert}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

${MY_STAGE.MY_TASK.input.arguments}

Output

response:檔案 $SCRIPT_RESPONSE_FILE 的內容

responseFilePath$SCRIPT_RESPONSE_FILE 的值

exitCode:程序結束代碼

logFilePath:包含 stdout 之檔案的路徑

errorFilePath:包含 stderr 之檔案的路徑

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

SSH
Input

host:機器的 IP 位址或主機名稱

username:用於連線的使用者名稱

password:用於連線的密碼 (可選擇性地使用 privateKey)

privateKey:用於連線的 PrivateKey

passphrase:用於解鎖 privateKey 的選用複雜密碼

script:要執行的指令碼

workingDirectory:執行指令碼前要切換到的目錄路徑

environmentVariables:要設定的環境變數的索引鍵-值配對

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.privateKey}

${MY_STAGE.MY_TASK.input.passphrase}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

Output

response:檔案 $SCRIPT_RESPONSE_FILE 的內容

responseFilePath$SCRIPT_RESPONSE_FILE 的值

exitCode:程序結束代碼

logFilePath:包含 stdout 之檔案的路徑

errorFilePath:包含 stderr 之檔案的路徑

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

如何在工作之間使用變數繫結

此範例會顯示如何在管線工作中使用變數繫結。

表 10. 範例語法格式
範例 語法
為管線通知和管線輸出內容使用工作輸出值 ${<Stage Key>.<Task Key>.output.<Task output key>}
參考上一個工作的輸出值做為目前工作的輸入 ${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>}

進一步瞭解

若要進一步瞭解工作中的繫結變數,請參閱: