Jenkins Pipeline replaceAll 和 Deploy

Posted

技术标签:

【中文标题】Jenkins Pipeline replaceAll 和 Deploy【英文标题】:Jenkins Pipeline replaceAll and 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 返回修改后的字符串。您需要将该字符串分配给变量,将其写入文件(或同时执行),然后使用该新文件而不是原始文件。 【参考方案1】:

试试 AntBuilder():

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

【讨论】:

以上是关于Jenkins Pipeline replaceAll 和 Deploy的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins Pipeline: pipeline语法详解

Jenkins pipeline:pipeline 使用之语法详解

Jenkins pipeline的优点

jenkins-pipeline配置简介

devops-jenkins-Pipeline基础语法

jenkins pipeline 制品相关步骤