jenkins - 如何在构建应用程序之前在 Jenkins 中编辑文件?
问题描述
目前在我的 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//**'
}}}
我想要实现的是:
- 存储库有一个名为 env.ts 的文件,但它有一些静态 IP 地址。静态 IP 地址仅适用于我们的其中一个分支机构。我希望能够在运行下一阶段(即构建阶段)之前编辑该 env.ts 文件以包含该构建的正确 IP 地址。我在 windows jenkins 节点上运行它。文件内容是这样的:
export const environment = { apiServer: ' http://1.1.1.1:80 ', 生产: true, paginationLimit: 10, };
我想将 apiServer 的值从 1.1.1.1 更改为 2.2.2.2
- 更改文件内容后,我希望将文件重命名为 environment.ts
我如何实现这一目标?
先感谢您!
解决方案
如果您正在使用 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"
推荐阅读
- memory - 为什么原始部分不对应于任何一种字节序?
- javascript - 如何将文本放在文本上
- android - 如果我留下这个错误,可能会出现什么问题?java.lang.IllegalArgumentException:服务未注册:lu@5d88aef
- azure - 是否可以确定是什么阻止了等待?
- python - catchup_by_default = False 被 DebugExecutor 忽略
- overleaf - 背页中的 AutoFit 表格
- java - C++ 警告和 logj4 日志级别
- java - Kafka 生产者无法正常工作,出现错误 kafka-producer-network-thread | 生产者-1
- c++ - make_heap 内存访问问题 error: Abort (core dumped)
- excel - 在 Excel 中合并两个列表,一个在另一个之下