Для кода ниже 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
?