Jenkins Pipeline 中 ansiColor Jenkins 插件的包装器放在哪里?
Posted
技术标签:
【中文标题】Jenkins Pipeline 中 ansiColor Jenkins 插件的包装器放在哪里?【英文标题】:Where to put the wrapper for ansiColor Jenkins plugin in Jenkins Pipeline? 【发布时间】:2017-10-15 15:42:56 【问题描述】:我不确定如何处理声明式 jenkins 管道。
按照此处的示例: https://github.com/jenkinsci/ansicolor-plugin
wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm'])
sh 'something that outputs ansi colored stuff'
上面的sn-p去哪儿了?
这是我的简单 Jenkinsfile:
#!groovy
pipeline
agent any
// Set log rotation, timeout and timestamps in the console
options
buildDiscarder(logRotator(numToKeepStr:'10'))
timeout(time: 5, unit: 'MINUTES')
stages
stage('Initialize')
steps
sh '''
java -version
node --version
npm --version
'''
包装器是否绕过阶段?每个阶段都有吗?
【问题讨论】:
【参考方案1】:能够像这样在选项块中整合配置
options
buildDiscarder(logRotator(numToKeepStr:'10'))
timeout(time: 5, unit: 'MINUTES')
ansiColor('xterm')
【讨论】:
这在 Jenkins 2.98 和 Pipeline 2.5 上的脚本化管道中使用时不起作用。 有票可以添加支持:github.com/jenkinsci/ansicolor-plugin/issues/118 GitHub 问题目前仍处于打开状态,但实际上现在似乎可以正常工作(Jenkins 2.121.1 和管道 2.5)。【参考方案2】:我把我的放在每个阶段都是这样的:
stage('Initialize')
ansiColor('xterm')
// do stuff
【讨论】:
在我给出的答案中能够配置一次【参考方案3】:我把它放在选项部分,申请管道中的所有阶段和步骤
pipeline
agent any
options
ansiColor('xterm')
...
【讨论】:
@phani 你能解释一下吗?【参考方案4】:在脚本化的 jenkins 管道中,您可以像这样使用它:
stage('Pre-Checks')
timeout(time: 3, unit: 'MINUTES')
ansiColor('xterm')
sh 'python scripts/eod/pre_flight_check.py'
【讨论】:
以上是关于Jenkins Pipeline 中 ansiColor Jenkins 插件的包装器放在哪里?的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins Pipeline: pipeline语法详解
Jenkins流水线(pipeline)实战之:从部署到体验