从 Jenkins 读取 build.gradle 的版本名称
Read versionName of build.gradle from Jenkins
我正在使用 Jenkins 构建我的 Android 应用程序。
在每个版本中,我都会获得一些信息,例如版本号等...
我正在寻找一种方法来在 Jenkins 构建作业时读取 build.gradle
中的 versionName
值。我知道我们可以使用 $BUILD_NUMBER
env 变量获取 buildNumber,但是如何获取 versionName
?
您可以通过添加确定 versionName
的执行 Shell 步骤并使用 EnvInject Plugin.
将其导出为环境变量来执行此操作
假设您的 build.gradle
包含:
versionName = myname
您可以添加此脚本:
v=$(cat build.gradle | grep versionName | awk '{print }')
echo MY_VERSION_NAME=${v} > env.properties
更好的方法是在 build.gradle 中添加 "printVersion" 任务。
app/build.gradle
task printVersion{
doLast {
print android.defaultConfig.versionName + '-' + android.defaultConfig.versionCode
}
}
测试它:./gradlew -q printVersion
1.8-13
然后在jenkins pipeline中,在git之后添加一个阶段:
stage('printVersion') {
def versionInfo = sh (
script: './gradlew -q printVersion',
returnStdout: true
).trim()
echo "VersionInfo: ${versionInfo}"
//set the current build to versionInfo plus build number.
currentBuild.displayName = "${versionInfo}-${currentBuild.number}" ;
}
示例:
gradle properties | grep "version" | awk '{print }'
关于詹金斯:
def versionInfo = sh (
script: "gradle properties | grep 'version' | awk '{print }'",
returnStdout: true
).trim()
println versionInfo
我正在使用 Jenkins 构建我的 Android 应用程序。 在每个版本中,我都会获得一些信息,例如版本号等...
我正在寻找一种方法来在 Jenkins 构建作业时读取 build.gradle
中的 versionName
值。我知道我们可以使用 $BUILD_NUMBER
env 变量获取 buildNumber,但是如何获取 versionName
?
您可以通过添加确定 versionName
的执行 Shell 步骤并使用 EnvInject Plugin.
假设您的 build.gradle
包含:
versionName = myname
您可以添加此脚本:
v=$(cat build.gradle | grep versionName | awk '{print }')
echo MY_VERSION_NAME=${v} > env.properties
更好的方法是在 build.gradle 中添加 "printVersion" 任务。 app/build.gradle
task printVersion{
doLast {
print android.defaultConfig.versionName + '-' + android.defaultConfig.versionCode
}
}
测试它:./gradlew -q printVersion
1.8-13
然后在jenkins pipeline中,在git之后添加一个阶段:
stage('printVersion') {
def versionInfo = sh (
script: './gradlew -q printVersion',
returnStdout: true
).trim()
echo "VersionInfo: ${versionInfo}"
//set the current build to versionInfo plus build number.
currentBuild.displayName = "${versionInfo}-${currentBuild.number}" ;
}
示例:
gradle properties | grep "version" | awk '{print }'
关于詹金斯:
def versionInfo = sh (
script: "gradle properties | grep 'version' | awk '{print }'",
returnStdout: true
).trim()
println versionInfo