У меня есть groovy class в котором в методе я пытаюсь записать файл
print("Loaded class MyClass.groovy")
public class Prepare {
private List service1 = ["dev-app-0001","dev-app-0002","dev-app-0003"];
private List service2 = ["dev-app-0004","dev-app-0005","dev-app-0006","dev-app-0007"]
String GetHosts() {
List result = this.service1+this.service2
return ("[allsystems]\n"+result.join('\n')+"\n").toString();
}
}
String PrepareHosts() {
Prepare pr = new Prepare();
// pr.setPath(Path)
pr.GetHosts();
Object hosts = new File("/data/jenkins/workspace/example1/update_sshkeys/hosts");
// hosts.createNewFile();
hosts.write(pr.GetHosts())
return pr.GetHosts();
}
return this
при запуске возвращается ошибка на отсутствие файла или папки
java.io.FileNotFoundException: /data/jenkins/workspace/example1/update_sshkeys/hosts (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
, хотя папка из-под пользователя jenkins доступна для записи
в Основном Jenkinsfile обращение выглядит таким образом
stage('Git clone') {
checkout scm
script {
def hosts = load "MyClass.groovy"
print "Result " + hosts.PrepareHosts();
writeFile file: "hosts", text: hosts.PrepareHosts()
}
}
вот эту операцию
writeFile file: "hosts", text: hosts.PrepareHosts()
хочу вынести из основного Jenkinsfile
Как решить эту проблему?