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

Mat*_*eum 1 git bash shell jenkins jenkins-pipeline

我正在使用jenkinsfile测试我们的一个实例。为此,我创建了一个bash脚本。问题是jenkins没有运行脚本的权限。任何想法如何解决这个问题?

Jenkinsfile:

 stage("Testing instances"){
    if (terragruntAction == 'apply' || terragruntAction == 'test'){
       echo "Testing"
       sh '../check_services.sh'
    }
 }
Run Code Online (Sandbox Code Playgroud)

输出:

../check_services.sh:权限被拒绝

我试着做:

git update-index --chmod=+x check_services.sh 
Run Code Online (Sandbox Code Playgroud)

在詹金斯(Jenkins)签出的git文件夹上,但是没有运气。

任何帮助,在此先感谢!

Mat*_*eum 5

我通过将其添加到GIT存储库中来工作:git update-index --chmod = + x check_services.sh


tbr*_*adt 5

我的偏好是将单个文件的访问权限保留在我的 git 存储库之外,而是倾向于在管道内部处理此问题的方法。只需在执行脚本之前运行 chmod,即可授予工作区权限。使用声明:

    stage('My Stage') {
        steps {
            sh "chmod +x -R ${env.WORKSPACE}"
            sh "./my-script.sh"
        }
    }
Run Code Online (Sandbox Code Playgroud)

注意:对于那些还不知道这一点的人,另一个要求是明确告诉管道脚本相对于工作区的位置。仅使用 sh "my-script.sh" 是行不通的。