Jon*_*ong 15 groovy sh jenkins jenkins-pipeline
我在尝试让Jenkinsfile工作时遇到了很多麻烦.我一直在尝试运行这个测试脚本:
#!/usr/bin/env groovy
node {
stage('Build') {
echo 'Building....'
// Create virtualenv
sh 'echo "hi"'
}
stage('Test') {
echo 'Building....'
}
stage('Deploy') {
echo 'Deploying....'
}
}
Run Code Online (Sandbox Code Playgroud)
但是在尝试构建时我不断收到此错误:
Warning: JENKINS-41339 probably bogus PATH=/usr/lib64/ccache:/usr/lib64/ccache:$PATH; perhaps you meant to use ‘PATH+EXTRA=/something/bin’?
[test-job-jenkinsfile-pipeline] Running shell script
nohup: failed to run command `sh': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我将所有管道插件更新到最新版本,但仍然遇到此错误.有帮助吗?
XP8*_*P84 31
Jonathan的回答是正确的,因为使用Jenkins环境变量设置修改$ PATH会导致此问题 - 但只是删除您拥有的PATH自定义项可能会导致您失去功能,尤其是如果您的Jenkins中有任何Freestyle类型的项目.
看看,在整个宇宙的其他部分,通过将$ PATH设置为新的东西加上现有的$ PATH来编辑$ PATH是很常见的,如下所示:
PATH=/opt/blah/bin:$PATH
这取决于/opt/blah/bin已经存在的内容$PATH.所以决赛$PATH可能看起来像:( /opt/blah/bin:/usr/local/bin:/usr/sbin:/bin这只是一个例子当然)
这实际上适用于Jenkins Freestyle项目.但是,对于Pipeline项目,Jenkins由于某种原因实际上并没有评估和替换您设置的变量中的$ PATH变量.所以你最终会走上一条路/opt/blah/bin:$PATH- 所以之前没有任何东西仍然存在于你的$ PATH中!
詹金斯项目显然不是仅修复那个错误,而是决定(1)检测条件并显示一个奇怪的警告("警告:JENKINS-41339可能是虚假的")暗示你应该检查那张票并且(2)创建一个全新的定义PATH添加的方法,这是解决问题的最佳方法,因为它允许您自定义$ PATH而不会破坏所有内容.您可以在Jenkins-> Configure System中执行此操作.
定义一个名为PATH+EXTRAEXTRA显然可以是任何东西的变量.
在该变量中,只需添加PATH.所以在我上面的例子中,我根本不会设置PATH,而是我只是设置:
PATH+EXTRA=/opt/blah/bin
现在删除任何定义的PATH变量.
根据相关的故障单,这在Jenkins的某处记录,但在Manage Jenkins-> Configure System中没有记录在它需要的位置.
Jon*_*ong 16
所以似乎原因是全球财产PATH导致了这个问题.通过Manage Jenkins- > Configure System并删除PATH全局属性解决了我的问题.见JENKINS-41339.
Asg*_*ard 12
为了解决此问题,如果您无法从" 管理Jenkins - >配置系统 "中删除PATH全局属性,则应添加以下步骤:
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin'])
如下所示:for Scripted Pipeline:
node {
stage ('STAGE NAME') {
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']) {
sh '//code block'
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者用于声明性管道:
pipeline {
agent {
label 'master'
}
stages {
stage ('STAGE NAME') {
steps {
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']) {
sh '''
//code block
'''
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.我也为此寻找解决方案而苦苦挣扎.
| 归档时间: |
|
| 查看次数: |
21028 次 |
| 最近记录: |