借助变量和表达式,您可以在管道任务中使用输入参数和输出参数。您输入的参数会将管道任务绑定到一个或多个变量、表达式或条件,并会确定管道的运行行为。

管道可以运行简单或复杂的软件交付解决方案

将管道任务绑定在一起时,可以包括默认表达式和复杂表达式。因此,管道可以运行简单或复杂的软件交付解决方案。

要在管道中创建参数,请单击输入输出选项卡,然后通过输入美元符号 $ 和表达式来添加变量。例如,此参数用作调用 URL 的任务输入:${Stage0.Task3.input.URL}

变量绑定的格式使用名为 SCOPE 和 KEY 的语法组件。SCOPE 将上下文定义为输入或输出,KEY 则定义详细信息。在参数示例 ${Stage0.Task3.input.URL} 中,inputSCOPE,URL 是 KEY

任何任务的输出属性都可以解析为任意数量的变量绑定嵌套级别。

要了解有关如何在管道中使用变量绑定的更多信息,请参见如何在 Code Stream 管道中使用变量绑定

将美元表达式与 SCOPE 和 KEY 结合使用以绑定管道任务

您可以通过在美元符号变量中使用表达式来将管道任务绑定在一起。将表达式输入为 ${SCOPE.KEY.<PATH>}

为确定管道任务的行为,在每个表达式中,SCOPE 都是 Code Stream 使用的上下文。SCOPE 将查找 KEY,它定义了任务执行的操作的详细信息。当 KEY 的值是嵌套对象时,您可以提供一个可选的 PATH

这些示例介绍了 SCOPEKEY,并向您展示了如何在管道中使用它们。

表 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

您可以将表达式与任何支持的管道任务结合使用。以下示例展示了如何定义 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

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

actioncreateDeploymentupdateDeploymentdeleteDeploymentrollbackDeployment

blueprintInputParams:用于创建部署更新部署操作

allowDestroy:可以在更新部署过程中销毁计算机。

CREATE_DEPLOYMENT

  • blueprintName:云模板的名称
  • blueprintVersion:云模板的版本

  • fileUrl:选择 GIT 服务器后远程云模板 YAML 的 URL。

UPDATE_DEPLOYMENT

以下任意组合:

  • blueprintName:云模板的名称
  • blueprintVersion:云模板的版本

  • fileUrl:选择 GIT 服务器后远程云模板 YAML 的 URL。

------

  • deploymentId:部署的 ID

  • deploymentName:部署的名称

------

DELETE_DEPLOYMENT

  • deploymentId:部署的 ID

  • deploymentName:部署的名称

ROLLBACK_DEPLOYMENT

以下任意组合:

  • deploymentId:部署的 ID

  • deploymentName:部署的名称

------

  • 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 用户界面中,可以获取任何属性的 $ 绑定。

  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:要针对操作 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>}

了解更多

要了解有关任务中绑定变量的更多信息,请参见: