权限被拒绝错误 - jenkins(shell脚本)

时间:2017-10-16 08:38:24

标签: git bash shell jenkins jenkins-pipeline

我正在使用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文件夹上。

任何帮助,提前谢谢!

2 个答案:

答案 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”是行不通的。