借助变量和表达式,您可以在管道任务中使用输入参数和输出参数。您输入的参数会将管道任务绑定到一个或多个变量、表达式或条件,并会确定管道的运行行为。
管道可以运行简单或复杂的软件交付解决方案
将管道任务绑定在一起时,可以包括默认表达式和复杂表达式。因此,管道可以运行简单或复杂的软件交付解决方案。
要在管道中创建参数,请单击输入或输出选项卡,然后通过输入美元符号 $ 和表达式来添加变量。例如,此参数用作调用 URL 的任务输入:${Stage0.Task3.input.URL}
。
变量绑定的格式使用名为 SCOPE 和 KEY 的语法组件。SCOPE
将上下文定义为输入或输出,KEY
则定义详细信息。在参数示例 ${Stage0.Task3.input.URL}
中,input
是 SCOPE
,URL 是 KEY
。
任何任务的输出属性都可以解析为任意数量的变量绑定嵌套级别。
要了解有关如何在管道中使用变量绑定的更多信息,请参见如何在 Code Stream 管道中使用变量绑定。
将美元表达式与 SCOPE 和 KEY 结合使用以绑定管道任务
您可以通过在美元符号变量中使用表达式来将管道任务绑定在一起。将表达式输入为 ${SCOPE.KEY.<PATH>}
。
为确定管道任务的行为,在每个表达式中,SCOPE
都是 Code Stream 使用的上下文。SCOPE 将查找 KEY
,它定义了任务执行的操作的详细信息。当 KEY
的值是嵌套对象时,您可以提供一个可选的 PATH
。
这些示例介绍了 SCOPE
和 KEY
,并向您展示了如何在管道中使用它们。
表 1.
使用 SCOPE 和 KEY
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} |
管道执行的 ID。 |
${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 |
export :键值对,表示从输入 exports 中导出的环境变量 artifacts :已成功保留的工件的路径 process :输入 processResponse 的已处理结果集 |
${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} 进行访问
- 部署 ID 可以作为 ${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 :要针对操作 GET 使用 K8S labelSelector 筛选的其他标签:
GET、CREATE、DELETE、APPLY
yaml :要处理并发送到 Kubernetes 的内嵌 YAML
parameters :键值对 - 将 $$KEY 替换为内嵌 YAML 输入区域中的 VALUE:
filePath :SCM Git 端点(如果已提供)中要从中获取 YAML 的相对路径
scmConstants :键值对 - 将 $${KEY} 替换为通过 SCM 获取的 YAML 中的 VALUE。
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、节点、loadBalancers。 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 :生成的作业的 ID,例如 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 :要运行的构建定义 ID |
${MY_STAGE.MY_TASK.input.projectCollection } ${MY_STAGE.MY_TASK.input.teamProject} ${MY_STAGE.MY_TASK.input.buildDefinitionId} |
|
Output |
buildId :生成的构建 ID 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 :要运行的工作流的 ID parameters :要传递到工作流的参数 |
${MY_STAGE.MY_TASK.input.workflowId} ${MY_STAGE.MY_TASK.input.parameters} |
|
Output |
workflowExecutionId :工作流执行的 ID properties :工作流执行的输出属性 |
${MY_STAGE.MY_TASK.output.workflowExecutionId} ${MY_STAGE.MY_TASK.output.properties} |
表 8.
通过 API 集成其他应用程序
任务 |
Scope |
Key |
如何在任务中使用 SCOPE 和 KEY |
REST |
|
Input |
url :要调用的 URL action :要使用的 TTP 方法 headers :要传递的 HTTP 标头 payload :请求负载 fingerprint :URL 为 https 时要匹配的指纹 allowAllCerts :设置为 true 时,可以是任何具有 https URL 的证书 |
${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 :Traversable 响应(如果 content-type 为 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 路径之后引用嵌套对象 |
Poll |
|
Input |
url :要调用的 URL headers :要传递的 HTTP 标头 exitCriteria :任务成功或失败需要满足的条件。“成功”的键值对 → 表达式,“失败”→ 表达式 pollCount :要执行的迭代次数。 Code Stream 管理员最多可以将轮询计数设置为 10000。 pollIntervalSeconds :每次迭代之间等待的秒数。轮询时间间隔必须大于或等于 60 秒。 ignoreFailure :设置为 true 时,将忽略中间响应失败 fingerprint :URL 为 https 时要匹配的指纹 allowAllCerts :设置为 true 时,可以是任何具有 https URL 的证书 |
${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 :Traversable 响应(如果 content-type 为 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>} |
了解更多
要了解有关任务中绑定变量的更多信息,请参见: