重命名文件 - Jenkins

Ric*_*wis 5 jenkins jenkins-pipeline

作为我们管道的一部分,我需要在将文件推送到 GitHub 之前重命名该文件。以前,这在主节点上运行 Jenkins 作业时有效,但现在我们在代理上运行它们

def rename_build_file() {
  print "Append Version Number to File"
  // File without version
  String myFile = "${WORKSPACE_PATH}/release-pipeline/project/dist/myFile.js

  // File with version
  String myFileNew = "${WORKSPACE_PATH}/release-pipeline/project/dist/myfile-1.0.js"

  // Rename File
  new File(myFile).renameTo(new File(myFileNew));
}
Run Code Online (Sandbox Code Playgroud)

在我们的 JenkinsFile 中我们调用helper.rename_build_file(),这通常有效

当我sshd进入代理时我发现我必须跑sudo来手动更改文件名(不必输入密码),我是否可以假设当 Jenkins 作业运行时它没有运行为sudo

如果是这种情况,我该如何执行这项工作?

谢谢

Szy*_*iak 7

跨多个代理处理文件时,您应该使用管道的工作流程步骤,例如fileExistsreadFilewriteFile。您可以结合使用这些步骤在当前工作区中创建具有所需名称的新文件。

def sourceFile = "release-pipeline/project/dist/myFile.js"

if (fileExists(file: sourceFile)) {
    def newFile = "release-pipeline/project/dist/myFile-1.0.js"

    writeFile(file: newFile, encoding: "UTF-8", text: readFile(file: sourceFile, encoding: "UTF-8"))
}
Run Code Online (Sandbox Code Playgroud)