Jenkins - 获取 Build_id 来格式化 MMdd(使用 EnvInject ?)
Jenkins - Get Build_id to format MMdd (usage of EnvInject ?)
我正在做一些事情来正确创建像 'X.X.build_number.build_id' 这样的版本。但是我不能像我想要的那样正确地拥有我的内部版本号:
MMdd 而不是 YY-MM-DD_hh:mm:ss 。使用 ZenTimestamp 插件,它只会在显示时更改它,但是当我尝试传递给其他作业时,PROMOTED_ID 与时间戳具有相同的值。
所以我尝试使用变量来格式化它,但是它不起作用...
我创建了一个名为 ID 的变量
我做了一个 Windows Powershell 构建:
$format = '{0:MMdd}' -f $env:BUILD_ID
echo "`$env:ID='$format'" > releaseId
我做了一个"Inject environment variables"来传递我的新值。
我尝试了很多不同的解决方案,但没有一个像我想要的那样工作...我错过了什么??
@Slav : 我的参数没有设置,所以里面没有任何值。
为了解决这个问题,我使用了 groovy 脚本来重新创建我的参数并添加我需要的内容:
import hudson.model.*
import java.text.SimpleDateFormat
def build = Thread.currentThread().executable
def npl = new ArrayList<StringParameterValue>()
def newParam = null
def oldParam = build.getAction(ParametersAction.class)
def dateFormat = new SimpleDateFormat("MMdd").format(new Date())
npl.add(new StringParameterValue("RELEASE_ID",dateFormat))
if (oldParam != null) {
build.actions.remove(oldParam)
newParam = oldParam.createUpdated(npl)
}
else {
newParam = new ParametersAction(npl)
}
build.actions.add(newParam)
return null
我正在做一些事情来正确创建像 'X.X.build_number.build_id' 这样的版本。但是我不能像我想要的那样正确地拥有我的内部版本号:
MMdd 而不是 YY-MM-DD_hh:mm:ss 。使用 ZenTimestamp 插件,它只会在显示时更改它,但是当我尝试传递给其他作业时,PROMOTED_ID 与时间戳具有相同的值。
所以我尝试使用变量来格式化它,但是它不起作用...
我创建了一个名为 ID 的变量
我做了一个 Windows Powershell 构建:
$format = '{0:MMdd}' -f $env:BUILD_ID
echo "`$env:ID='$format'" > releaseId
我做了一个"Inject environment variables"来传递我的新值。
我尝试了很多不同的解决方案,但没有一个像我想要的那样工作...我错过了什么??
@Slav : 我的参数没有设置,所以里面没有任何值。
为了解决这个问题,我使用了 groovy 脚本来重新创建我的参数并添加我需要的内容:
import hudson.model.*
import java.text.SimpleDateFormat
def build = Thread.currentThread().executable
def npl = new ArrayList<StringParameterValue>()
def newParam = null
def oldParam = build.getAction(ParametersAction.class)
def dateFormat = new SimpleDateFormat("MMdd").format(new Date())
npl.add(new StringParameterValue("RELEASE_ID",dateFormat))
if (oldParam != null) {
build.actions.remove(oldParam)
newParam = oldParam.createUpdated(npl)
}
else {
newParam = new ParametersAction(npl)
}
build.actions.add(newParam)
return null