透過變數和運算式,您可以在管線工作中使用輸入參數與輸出參數。您輸入的參數會將管線工作繫結到一或多個變數、運算式或條件,並確定執行時的管線行為。
管線可以執行簡單或複雜的軟體交付解決方案
將管線工作繫結在一起時,可以包括預設運算式和複雜運算式。因此,您的管線可以執行簡單或複雜的軟體交付解決方案。
若要在管線中建立參數,請按一下輸入或輸出索引標籤,然後透過輸入貨幣符號 $ 和運算式來新增變數。例如,此參數會用作呼叫 URL 的工作輸入:${Stage0.Task3.input.URL}
。
變數繫結的格式使用稱為範圍和金鑰的語法元件。SCOPE
會將內容定義為輸入或輸出,而 KEY
會定義詳細資料。在參數範例 ${Stage0.Task3.input.URL}
中,input
是 SCOPE
,而 URL 是 KEY
。
任何工作的輸出內容都可以解析為任何數目的變數繫結嵌套層級。
若要瞭解有關在管線中使用變數繫結的詳細資訊,請參閱如何在 Code Stream 管線中使用變數繫結。
將美元運算式與 Scope 和 Key 搭配使用,以繫結管線工作
您可以透過在貨幣符號變數中使用運算式,將管線工作繫結在一起。您可以輸入運算式為 ${SCOPE.KEY.<PATH>}
。
若要確定管線工作的行為,則在每個運算式中,SCOPE
是 Code Stream 所使用的內容。範圍將尋找 KEY
,以定義工作所採取動作的詳細資料。當 KEY
的值為巢狀物件時,您可以提供選用的 PATH
。
這些範例說明了 SCOPE
和 KEY
,並向您顯示如何在管線中使用它們。
表 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
您可以將運算式與任何支援的管線工作搭配使用。這些範例顯示如何定義 SCOPE
和 KEY
,並確認語法。代碼範例使用 MY_STAGE
和 MY_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 |
action :createDeployment、updateDeployment、deleteDeployment、rollbackDeployment 中的其中一個 blueprintInputParams :用於建立部署和更新部署動作 allowDestroy :可以在更新部署程序中銷毀機器。 CREATE_DEPLOYMENT
blueprintName :雲端範本的名稱
blueprintVersion :雲端範本的版本
或
fileUrl :選取 GIT 伺服器後,遠端雲端範本 YAML 的 URL。
UPDATE_DEPLOYMENT 這些組合中的任何一種:
blueprintName :雲端範本的名稱
blueprintVersion :雲端範本的版本
或
fileUrl :選取 GIT 伺服器後,遠端雲端範本 YAML 的 URL。
------
或
------ DELETE_DEPLOYMENT
或
ROLLBACK_DEPLOYMENT 這些組合中的任何一種:
或
------
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 使用者介面中,您可以取得任何內容的 $ 繫結。
- 在工作輸出內容區域中,按一下檢視輸出 JSON。
- 若要尋找 $ 繫結,請輸入任何內容。
- 按一下搜尋圖示,其會顯示對應的 $ 繫結。
|
JSON 輸出範例:
範例部署詳細資料物件:
{
"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 |
action :GET、CREATE、APPLY、DELETE、ROLLBACK 中的其中一個
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>} |
進一步瞭解
若要進一步瞭解工作中的繫結變數,請參閱: