如何使用DSL[Jenkins]写入文件?

如何使用DSL[Jenkins]写入文件?,jenkins,dsl,Jenkins,Dsl,我目前正在使用DSL创建一个构建流 在搜索I之后,我已经能够找到如何读取文本文件,但无法找到如何写入文本文件 DSL中是否有针对它的命令 我还想借此机会问一下,我在哪里可以找到DSL的教程或命令列表?因为DSL是基于Groovy的,我想你可以编写任何Groovy代码,它应该可以工作,请参阅获取如何写入文件的示例。DSL命令在提供,您可以在操场上试用。出于安全原因,默认情况下,您不能使用新文件(…).text。您可以改为使用: 这是我能想到的最好的方法,它使用writeFile: def read

我目前正在使用DSL创建一个构建流

在搜索I之后,我已经能够找到如何读取文本文件,但无法找到如何写入文本文件

DSL中是否有针对它的命令


我还想借此机会问一下,我在哪里可以找到DSL的教程或命令列表?

因为DSL是基于Groovy的,我想你可以编写任何Groovy代码,它应该可以工作,请参阅获取如何写入文件的示例。DSL命令在提供,您可以在操场上试用。

出于安全原因,默认情况下,您不能使用
新文件(…).text
。您可以改为使用:


这是我能想到的最好的方法,它使用writeFile:

def readEscape(String file) {
  return readFileFromWorkspace(file).replace("\\", "\\\\").replace("\"", "\\\"").replace("\n", "\\n").replace("\r", "\\r").replace("\$", '\\$')
}
def Dockerfile = readEscape('./Dockerfile')
pipelineJob('sample-write-file') {
  definition {
    cps {
      script('''
        pipeline {
          agent any
          stages {
            stage("prep-files") {
              steps {
                writeFile file: './Dockerfile', text: "''' + Dockerfile + '''"
              }
            }
          }
        }
      ''')
    }
  }
}

问题不清楚是在处理作业dsl期间还是在生成的作业执行期间需要写入文件。因为我需要它来执行作业,这就是我的示例所显示的。创建作业时将读取该文件并将其嵌入已创建的作业定义中。

如何使用%new file(…).text%进行写入
def readEscape(String file) {
  return readFileFromWorkspace(file).replace("\\", "\\\\").replace("\"", "\\\"").replace("\n", "\\n").replace("\r", "\\r").replace("\$", '\\$')
}
def Dockerfile = readEscape('./Dockerfile')
pipelineJob('sample-write-file') {
  definition {
    cps {
      script('''
        pipeline {
          agent any
          stages {
            stage("prep-files") {
              steps {
                writeFile file: './Dockerfile', text: "''' + Dockerfile + '''"
              }
            }
          }
        }
      ''')
    }
  }
}