Конвейерный скрипт пытается создать файл в рабочей области @ 2 - PullRequest
0 голосов
/ 25 февраля 2019

Для кода ниже Groovy:

node('worker_node'){

    ws("${WORKSPACE}"){
        createPropertiesFile()    
    }

}


def createPropertiesFile(){

    try{
        sh 'whoami'    
        def newFile = new File("sonar-project.properties")
        newFile.createNewFile()
    }catch(Throwable e){

        echo "${e}"
    }
}

Создаются два рабочих пространства:

/app/jenkins/workspace/Test/groovy_closures on worker_node
/app/jenkins/workspace/Test/groovy_closures@2 on worker_node // not sure about the purpose of this work space

, но выдает ниже вывод:

Running on worker_node in /app/jenkins/workspace/Test/groovy_closures
[Pipeline] {
[Pipeline] ws
Running in /app/jenkins/workspace/Test/groovy_closures@2
[Pipeline] {
[Pipeline] sh
+ whoami
jenkins
[Pipeline] echo
java.io.IOException: Permission denied
[Pipeline] }
[Pipeline] // ws
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

$ whoami дает jenkins с точки зрения владельца для запуска этого сценария, как показано ниже:

User_Jenkins_configuration_on_worker_node


ws("${WORKSPACE}"){
  sh "touch file" // creates file in /app/jenkins/workspace/Test/groovy_closures@2 folder but not in /app/jenkins/workspace/Test/groovy_closures folder
}

1) Почему пользователь jenkins не имеет разрешения на создание файла?Как настроить пользователя jenkins для получения этого разрешения в Jenkins?

2) Как создать файл в /app/jenkins/workspace/Test/groovy_closures, но не в /app/jenkins/workspace/Test/groovy_closures@2?

...