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 PowerShell
和PowerShell 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 +e
或set +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
步骤更改当前目录。