Jenkinsfile:创建一个新文件(Groovy)

时间:2018-12-05 13:59:32

标签: jenkins groovy jenkins-pipeline jenkins-groovy

我正在尝试编写一个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 :(得分:1)

您尚未实际创建文件并尝试读取此文件。您必须先创建文件,然后再使用它。 例如:

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

但这不是您的最佳解决方案。最好使用詹金斯步骤“ 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"
                }
            }
        }
    }
}

答案 1 :(得分:0)

您的管道代码是否在远程代理上执行?

Cloudbees指出java.io.File可能无法在管道中使用,建议使用本机管道步骤与文件进行交互。

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