我正在使用jenkinsfile来测试我们的一个实例。 为此,我创建了一个bash脚本。 问题是jenkins没有运行脚本的权限。知道如何解决这个问题吗?
Jenkinsfile:
stage("Testing instances"){
if (terragruntAction == 'apply' || terragruntAction == 'test'){
echo "Testing"
sh '../check_services.sh'
}
}
输出:
../ check_services.sh:权限被拒绝
我试着这样做:
git update-index --chmod=+x check_services.sh
在由Jenkins检查但没有运气的git文件夹上。
任何帮助,提前谢谢!
答案 0 :(得分:3)
我将它添加到GIT仓库中了: git update-index --chmod = + x check_services.sh
答案 1 :(得分:1)
我的偏好是将单个文件的访问权限保留在我的git repo之外,而倾向于使用一种在管道内部处理此文件的方法。只需在脚本执行之前运行chmod即可为工作区授予权限。使用声明式:
stage('My Stage') {
steps {
sh "chmod +x -R ${env.WORKSPACE}"
sh "./my-script.sh"
}
}
注意:对于那些尚不了解的人,另一个要求是显式告诉管道脚本相对于工作空间的位置。仅仅使用sh“ my-script.sh”是行不通的。