我正在尝试在 Groovy Sandbox 的 Jenkins 管道中使用以下命令。
descr -fmt "%[rec_bls]CXp" stream:stream_name@my_vob
虽然如果从 windows cmd 执行,该命令可以正常运行,但在 Jenkins 阶段执行时会抛出以下错误。
Running batch script
path_to_workspace>cleartool describe -fmt 'stream_name@my_vob
cleartool: Error: Object selector required.
Usage: describe -graphical pname …
...
…
下面是 Jenkins 阶段片段:
stage ('Test') {
agent {label 'Jenkins_Label'}
steps{
bat """
cleartool describe -fmt "%[rec_bls]CXp" stream:stream_name@\vob_name
"""
}
}
首先检查这是否是因为-fmt "%[rec_bls]CXp"
,其引号在 Jenkins 蝙蝠壳会话中被错误地解释。
例如:
stage ('Test') {
agent {label 'Jenkins_Label'}
steps{
bat """
cleartool describe -l stream:stream_name@\vob_name
"""
}
}
如果可行,请尝试查看如何添加这些引号。
例如:
cleartool describe -fmt """%[rec_bls]CXp""" stream:stream_name@\vob_name
# or
cleartool describe -fmt "%[rec_bls]CXp" stream:stream_name@\vob_name
如果问题出在"%
",请转义它:
cleartool describe -fmt "%%[rec_bls]CXp" stream:stream_name@\vob_name
这将防止蝙蝠会话将其解释为可变环境。
我找到了解决方案。使用 %% 可以解决问题!
cleartool describe -fmt "%%[rec_bls]CXp" stream:stream_name@\vob_name