Jenkinsfile: создать новый файл (Groovy) - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь написать Jenkinsfile со стадией, которая создает новый файл и использует его позже.

Что бы я ни делал, я получаю следующую ошибку:

java.io.FileNotFoundException: ./ci/new_file.txt (No such file or directory)

Вот соответствующий блок кода:

pipeline {
    agent any
    stages {
        stage('Some Stage') {
            steps {
                script{
                    file = new File('./ci/new_file.txt').text
                    file.createNewFile()
                }
            }
        }
    }
}

Я перебрал несколько похожих вопросов, и пока ничего не помогло.Пожалуйста, порекомендуйте.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вы на самом деле не создали файл и пытались прочитать этот.Вы должны создать файл перед его использованием.Например:

pipeline {
    agent any
    stages {
        stage('Some Stage') {
            steps {
                script {
                    File file = new File('./ci/new_file.txt')
                    file.createNewFile()
                    //...
                    String fileText = ... read file
                }
            }
        }
    }
}

Но это не лучшее решение для вас.Лучше использовать шаги jenkins 'readFile' и 'writeFile'.Документация здесь - https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/ Например:

pipeline {
    agent any
    stages {
        stage('Some Stage') {
            steps {
                script {
                    writeFile file: "./ci/new_file.txt", text: "Some Text"
                    //...
                    String fileText = readFile file: "./ci/new_file.txt"
                }
            }
        }
    }
}
0 голосов
/ 05 декабря 2018

Код вашего конвейера выполняется на удаленном агенте?

Cloudbees отмечает, что java.io.File может не работать в конвейере, и рекомендует использовать собственные шаги конвейера для взаимодействия с файлами.

https://support.cloudbees.com/hc/en-us/articles/230922128-Pipeline-Using-java-io-File-in-a-Pipeline-description

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...