云服务器内容精选

  • 应用示例1:流水线执行条件表达式 在流水线阶段任务的执行条件中通过表达式引用上下文,用以限制任务执行。表达式由流水线上下文、操作符、函数或常量组合而成,表达式以编程的方式访问流水线上下文,实现将流水线中运行的实例、变量、任务等信息在流水线之间互相传递。 图1 执行条件表达式 示例: 在执行条件中定义任务在指定代码源的运行分支为“master”时才运行,表达式语法如下: ${{ sources.my_repo.target_branch == 'master' }} 流水线上下文 操作符 表达式中可以使用如下操作符: 表1 操作符 操作符 说明 . 属性引用。如:${{ pipeline.trigger_type }},表示获取流水线的触发类型。 ! 非。如:${{ !startsWith(sources.my_repo.target_branch, 'release') }},表示判断流水线代码源的分支是否不以release开头。 == 等于。如:${{ pipeline.trigger_type == 'Manual' }},表示判断流水线的触发方式是否为手动触发。 != 不等于。如:${{ pipeline.trigger_type != 'Manual' }},表示判断流水线的触发方式是否不为手动触发。 && 且。如:${{ pipeline.trigger_type == 'Manual' && sources.my_repo.target_branch == 'master' }},表示判断流水线的触发方式为手动触发并且流水线代码源的分支为master。 || 或。如:${{ pipeline.trigger_type == 'Manual' || sources.my_repo.target_branch == 'master' }},表示判断流水线的触发方式为手动触发或者流水线代码源的分支为master。 函数 表达式中可使用如下内置函数: 表2 内置函数 函数 说明 contains 格式 contains(search, item) 含义 如果“search”包含“item”,则函数返回“true”。 如果“search”是一个数组,那么如果“item”是数组中的一个元素,则此函数返回“true”。 如果“search”是一个字符串,那么如果“item”是“search”的子字符串,则函数返回“true”。 示例 contains('abc', 'bc') ,函数将返回“true”。 startsWith 格式 startsWith(searchString, searchValue) 含义 如果“searchString ”以“searchValue”开始,则函数返回“true ”。 示例 startsWith('abc', 'ab'),函数将返回“true”。 endsWith 格式 endsWith(searchString, searchValue) 含义 如果“searchString”以“searchValue”结束,则函数返回“true”。 示例 endsWith('abc', 'bc'),函数将返回“true”。 对象筛选器 使用“*”语法应用筛选器并选择集合中的匹配项。 示例:如下是流水线某次运行的jobs上下文 { "check_job": { "status": "COMPLETED", "metrics": { "critical": "0", "major": "0" } }, "demo_job": { "status": "FAILED" } } 示例1:“jobs.*.status”,表示所有任务的状态,所以返回“[ 'COMPLETED', 'FAILED' ]”。 示例2:结合contains函数一起使用,如:contains(jobs.*.status, 'FAILED'),“jobs.*.status”中包含“FAILED”,所以返回“true”。 父主题: 流水线上下文
  • 应用示例2:通过流水线上下文获取构建任务的产物信息 在任务的输入框中引用上下文获取信息:使用Build构建插件生成构建产物,并在后续阶段的“执行Shell”任务中引用,获取构建产物信息。 新建流水线。 在“阶段_1”添加“Build构建”插件,获取任务ID,如图1,并将构建产物标识设置为“demo”,如图2。 图1 获取任务ID 图2 Build构建插件 在“阶段_2”添加“执行Shell”插件,通过构建任务ID,结合流水线上下文,输入如下命令,即可获取构建产物的相关信息。 # 获取构建产物下载地址 echo ${{ jobs.JOB_xZGhF.artifacts.demo.download_url }} # 获取构建产物所有信息 echo ${{ jobs.JOB_xZGhF.artifacts.demo }} 图3 执行Shell 执行流水线,执行成功后即可在日志中查看打印的产物信息。 图4 查看产物信息 父主题: 流水线上下文