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语法详解