Jenkinsがビルドを作成するときに自動的にバージョンタグをgitリポジトリにプッシュしたいと思います。しかし、これを行うには、作成されたビルドアーティファクトにversion name
とversion code
が必要です。Jenkinsがbuild.gradleファイルから環境変数にAndroidアプリケーションのバージョンを読み込みます
私は現在、(それが正常に動作します)これを達成するために以下の設定を使用しています:
- ビルドで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
ファイルを変更することを余儀なくよ、かなり扱いにくい方法ですジェンキンスはその仕事をしています。
build.gradle
ファイルを変更することなく、簡単な方法がありますか?たぶん、に「version.properties」タスクが含まれているファイルの2番目のbuild.gradle
を生成してもよいでしょうか?
私はまったく同じことをしたいです。私は好奇心が強いです、あなたはどの解決策をとったのですか? –