Pipeline 不同节点步骤语法

Pipeline: Nodes and Processes

官网地址:Pipeline: Nodes and Processes

bat: Windows 批处理脚本

  • script: String

    执行批处理脚本。允许多行。使用该 returnStdout 标志时,您可能希望在它前面加上前缀 @,以免命令本身包含在输出中。

  • encoding: String(可选的)

    过程输出的编码。在 returnStdout 的情况下,应用于该步骤的返回值;否则,或始终为标准错误,控制文本复制到生成日志的方式。如果未指定,则使用运行步骤的节点的系统默认编码。如果预期流程输出可能包含非 ASCII 字符,最好显式指定编码。例如:如果您知道某个给定进程将生成 UTF-8,但将在具有不同系统编码的节点上运行(通常是 Windows,因为每个 Linux 发行版在很长一段时间内都默认为 UTF-8),则可以通过指定:encoding: 'UTF-8' 来确保正确的输出

  • label: String(可选的)

    要在管道步骤视图中显示的标签和步骤的蓝海详细信息,而不是步骤类型。因此,该视图更有意义且特定于领域,而不是技术性的。

  • returnStatus: boolean(可选的)

    通常,以非零状态代码退出的脚本将导致步骤失败并出现异常。如果选中此选项,则步骤的返回值将改为状态码。例如:您可以将其与零进行比较。

  • returnStdout: boolean(可选的)

    如果选中,任务的标准输出将作为字符串作为步骤值返回,而不是打印到构建日志中。(标准错误(如果有)仍将打印到日志中。)您通常需要在结果中调用 .trim() 以去除尾随的换行符。

node: 分配节点

在节点(通常是构建代理)上分配执行程序,并在该代理上的工作区上下文中运行进一步的代码。

  • label: String

    计算机名称、标签名称或任何其他标签表达式都喜欢 linux && 64bit 限制此步骤的构建位置。可以留空,在这种情况下,将采用任何可用的执行者。

    支持以下运算符,按优先级降序排列:

    (expression)

    ()——用于显式定义表达式的关联性

    !expression

    NOT——否定;表达式的结果不能为真

    a && b

    AND——表达式 a 和 b 都必须为真

    a || b

    OR——表达式 a 或 b 中的任何一个都可能为真

    a -> b

    “隐含” 运算符——等价于 !a || b

    例如:windows -> x64 可以被认为是 “如果使用 Windows 代理,那么该代理必须是 64 位的”,同时仍然允许在任何没有 windows 标签的代理上执行此块,无论他们是否也有 x64 标签

    a <-> b

    “当且仅当” 运算符——等效于 a && b || !a && !b

    例如:windows <-> dc2 可以被认为是 “如果使用 Windows 代理,则该代理必须在数据中心 2 中,但如果使用非 Windows 代理,则不能在数据中心 2"

    笔记:

    • 所有运算符都是左结合的,即 a -> b -> c 等价于 (a -> b) -> c。
    • 如果标签或代理名称包含与运算符语法冲突的字符,则它们可以用引号引起来。
      • 例如:“osx (10.11)”|| “Windows 服务器”。
    • 表达式可以写成没有空格,但为了可读性建议包括它;Jenkins 在评估表达式时会忽略空格。
    • 不支持使用通配符或正则表达式匹配标签或代理名称。
    • 空表达式将始终计算为 true,匹配所有代理。

    例子:

    • master:此块只能在 Jenkins 内置节点上执行
    • linux-machine-42:此块只能在名称为 linux-machine-42 的代理上执行(或在恰好具有名为 linux-machine-42 的标签的任何机器上)
    • windows && jdk9:此块只能在安装了 Java Development Kit 版本 9 的任何 Windows 代理上执行(假设安装了 JDK 9 的代理已被赋予 jdk9 标签)
    • postgres && !vm && (linux || freebsd):这个块只能在 Linux 或 FreeBSD 代理上执行,只要它们不是虚拟机,并且它们安装了 PostgreSQL(假设每个代理都有适当的标签 - 特别是,在虚拟机中运行的每个代理必须具有 vm 标签,以便此示例按预期工作)

powershell: Windows PowerShell Script

  • script: String

    执行 Windows PowerShell 脚本(版本 3 或更高版本)。允许多行。

    注意:请注意 Windows PowerShell 和 PowerShell Core 之间的差异,请检查您的代理上可用的一个。

  • encoding: String(可选的)

    过程输出的编码。在 returnStdout 的情况下,应用于该步骤的返回值;否则,或始终为标准错误,控制文本复制到生成日志的方式。如果未指定,则使用运行步骤的节点的系统默认编码。如果预期流程输出可能包含非 ASCII 字符,最好显式指定编码。例如:如果您知道某个给定进程将生成 UTF-8,但将在具有不同系统编码的节点上运行(通常是 Windows,因为每个 Linux 发行版在很长一段时间内都默认为 UTF-8),则可以通过指定:encoding: 'UTF-8' 来确保正确的输出

  • label: String(可选的)

    要在管道步骤视图中显示的标签和步骤的蓝海详细信息,而不是步骤类型。因此,该视图更有意义且特定于领域,而不是技术性的。

  • returnStatus: boolean(可选的)

    通常,以非零状态代码退出的脚本将导致步骤失败并出现异常。如果选中此选项,则步骤的返回值将改为状态码。例如:您可以将其与零进行比较。

  • returnStdout: boolean(可选的)

    如果选中,任务的标准输出将作为字符串作为步骤值返回,而不是打印到构建日志中。(标准错误(如果有)仍将打印到日志中。)您通常需要在结果中调用 .trim() 以去除尾随的换行符。

pwsh: PowerShell 核心脚本

  • script: String

    执行 PowerShell 脚本。允许多行。此插件支持 PowerShell Core 6+

    注意:请注意 Windows PowerShellPowerShell Core 之间的差异,请检查您的代理上可用的一个。

  • encoding: String(可选的)

    过程输出的编码。在 returnStdout 的情况下,应用于该步骤的返回值;否则,或始终为标准错误,控制文本复制到生成日志的方式。如果未指定,则使用运行步骤的节点的系统默认编码。如果预期流程输出可能包含非 ASCII 字符,最好显式指定编码。例如:如果您知道某个给定进程将生成 UTF-8,但将在具有不同系统编码的节点上运行(通常是 Windows,因为每个 Linux 发行版在很长一段时间内都默认为 UTF-8),则可以通过指定:encoding: 'UTF-8' 来确保正确的输出

  • label: String(可选的)

    要在管道步骤视图中显示的标签和步骤的蓝海详细信息,而不是步骤类型。因此,该视图更有意义且特定于领域,而不是技术性的。

  • returnStatus: boolean(可选的)

    通常,以非零状态代码退出的脚本将导致步骤失败并出现异常。如果选中此选项,则步骤的返回值将改为状态码。例如:您可以将其与零进行比较。

  • returnStdout: boolean(可选的)

    如果选中,任务的标准输出将作为字符串作为步骤值返回,而不是打印到构建日志中。(标准错误(如果有)仍将打印到日志中。)您通常需要在结果中调用 .trim() 以去除尾随的换行符。

sh: 外壳脚本

  • script: String

    运行 Bourne shell 脚本,通常在 Unix 节点上。接受多行。

    可以使用解释器选择器,例如:#!/usr/bin/perl

    否则,系统默认 shell 将使用 -xe 标志运行(您可以指定 set +eset +x 禁用这些标志)。

  • encoding: String(可选的)

    过程输出的编码。在 returnStdout 的情况下,应用于该步骤的返回值;否则,或始终为标准错误,控制文本复制到生成日志的方式。如果未指定,则使用运行步骤的节点的系统默认编码。如果预期流程输出可能包含非 ASCII 字符,最好显式指定编码。例如:如果您知道某个给定进程将生成 UTF-8,但将在具有不同系统编码的节点上运行(通常是 Windows,因为每个 Linux 发行版在很长一段时间内都默认为 UTF-8),则可以通过指定:encoding: 'UTF-8' 来确保正确的输出

  • label: String(可选的)

    要在管道步骤视图中显示的标签和步骤的蓝海详细信息,而不是步骤类型。因此,该视图更有意义且特定于领域,而不是技术性的。

  • returnStatus: boolean(可选的)

    通常,以非零状态代码退出的脚本将导致步骤失败并出现异常。如果选中此选项,则步骤的返回值将改为状态码。例如,您可以将其与零进行比较。

  • returnStdout: boolean(可选的)

    如果选中,任务的标准输出将作为字符串作为步骤值返回,而不是打印到构建日志中。(标准错误(如果有)仍将打印到日志中。)您通常需要在结果中调用 .trim() 以去除尾随的换行符。

ws: 分配工作空间

分配一个工作区。请注意,该 node 步骤会自动为您分配一个工作区。

  • dir: String

    该步骤会自动为您分配一个工作区 node,或者您可以通过该步骤获得一个备用工作区 ws,但默认情况下会自动选择该位置。(有点像 AGENT_ROOT/workspace/JOB_NAME@2。)

    您可以改为在此处指定路径,而该工作区将被锁定。(路径可能是相对于构建代理根的,也可能是绝对的。)

    如果并发构建要求相同的工作空间,则带有后缀的目录 @2 可能会被锁定。目前没有等待锁定请求的确切目录的选项;如果您需要强制执行该行为,则可以在指示您有不同目录 error 时失败() ,或者您可以通过其他方式强制执行此部分构建的串行执行,例如.pwdstage name: ‘…’, concurrency: 1
    如果并发构建要求相同的工作空间,则可能会锁定后缀为 @2 的目录。目前没有等待锁定请求的确切目录的选项;如果您需要强制执行该行为,则当 pwd 指示您获得了不同的目录时,您可以失败(error),或者您可以通过一些其他方式强制执行该部分构建的串行执行,例如:stage name: '…', concurrency: 1

    如果您不关心锁定,只需使用该 dir 步骤更改当前目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值