当前在我的Jenkins管道脚本中,我有这个:
stage ('get_repo'){
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'git', url: 'git@bitbucket.org:myrepo/myrepo.git']]])
}
stage ('build'){
bat "npm install @angular-devkit/build-angular"
bat 'C:\\Users\\user1\AppData\\Roaming\\npm\\ng.cmd build --aot'
}
stage ('create artifact'){
archiveArtifacts 'dist//**'
}}}
我想实现的是这样:
export const environment = { apiServer:“ http://1.1.1.1:80”, 生产:真实, 分页限制:10, };
我想将apiServer的值从1.1.1.1更改为2.2.2.2
我该如何实现?
提前谢谢!
答案 0 :(得分:0)
有很多方法可以实现您想要的。我看到您使用的是Windows,因此我会选择Powershell,它使此类操作变得容易。您可以设置正则表达式或简单地用2.2.2.2替换1.1.1.1。重命名文件也非常容易(Rename-Item cmdlet)。 jenkins管道也支持Powershell。
powershell脚本示例:
$path = "C:\env.ts"
$content = Get-Content -Path $path
$content -replace [regex]::escape("1.1.1.1"),"2.2.2.2" | Out-File $path
Rename-Item -Path $path -NewName "environment.ts"
Here,您有显示如何从Jenkins管道调用powershell代码的示例。
答案 1 :(得分:0)
如果您正在使用Jenkins,并且它在Windows机器上。您可以使用PowerShell更改文件内容并重命名
在此示例中,
(Get-Content C:\proj\Jenkins\workspace\QA\env.ts).replace('1.1.1.1', '2.2.2.2') | Set-Content C:\proj\Jenkins\workspace\QA\env.ts
Rename-Item -Path "C:\proj\Jenkins\workspace\QA\env.ts" -NewName "environment.ts"