【问题标题】:Jenkins Pipeline replaceAll and DeployJenkins Pipeline replaceAll 和 Deploy
【发布时间】:2019-12-21 12:13:32
【问题描述】:

我对 Jenkins 还很陌生,希望能得到一些帮助。我构建了一个管道脚本,它从 git repo 调用文件、读取文件并打印文件内容,然后将所有“text1”替换为我参数化的“${text2}”。控制台输出反映了更改。

对于 bat 命令,我映射服务器并希望能够将更新的文件内容部署到 Windows 服务器。但是发生了什么,它将原始文件而不是更新的文件部署到服务器。如何获取更新的文件以进行部署?谢谢。

stage(’name’)       
     node("commercial-windows-agents")
     {
       git([url: ‘git url’, branch: 'master'])
       echo “${text2}”
       String filePath = "${Workspace}"
       println filePath
       def fileContents = readFile("${Workspace}\\filename”)
       println fileContents
       println fileContents.replaceAll(“text1”, “${text2}”)

       bat('''
       (
       net use T: \\\\server\\c$ %Password% /user:%Username%
       xcopy "%WORKSPACE%\\filename” “T:\\filepath\\” /e /y
       )
       net use T: /d /y
       ''')
     }

【问题讨论】:

  • replaceAll 返回修改后的字符串。您需要将该字符串分配给变量,将其写入文件(或同时执行),然后使用该新文件而不是原始文件。

标签: jenkins jenkins-pipeline


【解决方案1】:

试试 AntBuilder():

def ant = new AntBuilder()
def file = new File($Workspace, "filename")
ant.replace(file: file, token: “text1”, value: “${text2}”)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 2017-08-09
    相关资源
    最近更新 更多