drno-reg
@drno-reg
см не кратко

Как правильно записать файл в методе присоединяемого класса к основному Jenkinsfile?

У меня есть 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

Как решить эту проблему?
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы