我希望当Jenkins创建构建时,自动将版本标签推送到我的git仓库。但是为了做到这一点,我需要为创建的构建工件获取版本名称
和版本代码
。
我目前使用以下设置来实现此目的(它可以正常工作):
- 在构建中创建Gradle任务。
- 运行一个Gradle任务,创建带有版本名称和版本代码的属性文件;
- 使用EnvInject插件读取/注入属性文件,以便环境变量可用于当前的Jenkins作业;
生成version.properties
文件的代码如下:
android.applicationVariants.all { variant ->
def taskName = "createVersionFile" + variant.flavorName.capitalize();
if (tasks.findByPath(taskName) == null) {
tasks.create(name: taskName) {
doLast {
def prop = new Properties()
def propFile = new File("$buildDir/outputs/version.properties");
prop.setProperty('versionname', variant.versionName + '-' + variant.versionCode)
propFile.createNewFile();
prop.store(propFile.newWriter(), null);
}
}
}
}
这个方法是可行的(如之前所述),但它非常笨重,我被迫修改
build.gradle
文件,以便Jenkins能够正常工作。
有没有更简单的方法,可能不需要修改build.gradle
文件?也许可以生成第二个build.gradle
文件,其中包含“version.properties”任务?