![](/img/trans.png)
[英]How to read property from config file inside Jenkins pipeline using Config File Provider Plugin
[英]How to read config file in Jenkins pipeline
我正在创建一个新的管道作业,在执行详细的bat文件之前,需要定义许多变量。
node('BuildMachine')
{
env.ReleaseNumber='1.00.00'
env.BuildType='Test'
env.Language='ENU'
...
Stage('Build')
{
bat '''
call build.bat %ReleaseNumber%_%BuildType%_%BUILD_NUMBER%
'''
}
}
EnvInject插件又名(Environment Injector插件)为您提供了几个在Jenkins作业中设置和使用环境变量的选项。 它将变量写入文件,稍后可以加载以获取变量,但是我认为变量不能直接在bat中工作。
如果必须在每个构建中定义变量,则可以(因为Jenkinsfile实际上只是Groovy)定义变量并将其在调用中用作命令行参数:
node('BuildMachine') {
def releaseNumber='1.00.00'
def buildType='Test'
def language='ENU'
Stage('Build')
{
bat "call build.bat ${releaseNumber}_${buildType}_%BUILD_NUMBER%"
}
}
我假设BUILD_NUMBER是在开始构建作业之前设置的环境变量。 否则,您可以像其他人一样去做。 请注意,双引号而不是单引号是有效的。
另一个选择是定义一个<键> = <值>文件,然后可以执行以下操作:
readFile "<your config file>"
configData = file.split("\n")
configData.each {
lineData = it.split("=")
switch(lineData[0].toLowerCase().trim()){
case "<key 1>": <varName 1> = lineData[1].trim(); break;
case "<key 2>": <varName 2> = lineData[1].trim(); break;
case "<key 3>": <varName 3> = lineData[1].trim(); break;
....
}
}
然后使用varName调用蝙蝠
此代码的优点是您不必依赖配置文件内容的顺序
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.