Teamcityによって実行されるGradleスクリプトのビルド番号とVCSチェックアウト番号にアクセスするにはどうすればよいですか?
Antではそれぞれ${build.number}
とを使用できます${build.vcs.number.1}
。
ありがとうございました。
Teamcityによって実行されるGradleスクリプトのビルド番号とVCSチェックアウト番号にアクセスするにはどうすればよいですか?
Antではそれぞれ${build.number}
とを使用できます${build.vcs.number.1}
。
ありがとうございました。
これらは、TeamCityがAnt /GradleJVMに設定するJVMシステムプロパティにすぎません。たとえば、通常のJava手段でそれらにアクセスできますSystem.getProperty("build.number")
。
Androidアプリケーションを開発している場合は、build.number
それに応じてapkファイル名を更新するためにアクセスできます。
defaultConfig {
applicationId "com.mydemoci"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "0.7"
ext.buildNumber = System.getProperty("build.number") ?: "Regular"
archivesBaseName = "$applicationId-v$versionName-b$buildNumber"
}
ローカルでテストするには、実行するだけですgradlew clean build -Dbuild.number=123
TeamCity 9.1.5以降、これは変更されています。「プロパティ」(「system」と「teamcity」の両方)プロパティは、プロジェクトのextプロパティとして設定されます。
概要ページhttps://confluence.jetbrains.com/display/TCD9/Configure+Build+Parameters#ConfigureBuildParameters-ConfigurationParametersを読むと、非常に混乱します。 「システム」(「システムプロパティ」内)を使用すると、次のように設定されていると思いました。 JVMシステムは適切であるため、ここで説明するようにGradleメカニズムを試しました:https : //docs.gradle.org/current/userguide/build_environment.html「org.gradle.project」を使用するように指示します。..「システム」を使用するように言うTeamCityでそれを追加します。gradleプロパティ「repositoryUrl」を「system.org.gradle.project.repositoryUrl」として設定しようとしました...これは機能しませんでした。「プロパティ」の追加
試行錯誤の末、私は明らかなことに遭遇しました...そしてそれをドキュメントのバグとして報告しようとしていました..しかしそれからドキュメントでそれを見つけました
概要:TeamCity9.1.5以降では
system.<propertyName>
例えば
system.repositoryUrl
Gradleでは、これらはrootProject(またはプロジェクト)の「プロパティ」(「システムプロパティ」ではない)としてアクセスできます...例:
println repositoryUrl
println project.repositoryUrl
println rootProject.repositoryUrl
println project.properties["repositoryUrl"]
println rootProject.ext.repositoryUrl
println "${repositryUrl}"
assert hasProperty("repositoryUrl")
そして同じことをする500の他の方法。
私は多くの場合、gradleとbuild.number
外部変数の注入をテストしました。私の場合、ビルド環境としてdockerを使用しているため、teamcityが提供する環境が正常に注入されません。
gradleに変数を挿入する方法は2つあります。-D
以下の例と-P
の違いに注意してください。
// 1. gradle build -Pbuild.number=555
aaa = rootProject.properties.get("build.number")
// 2. gradle bulid -Dbuild.number=444
bbb = System.getProperty("build.number")
gradle --help
[option] task
コマンドオーダーとして言いますが、task [option]
機能します。
build.gradle
スクリプトの例は次のとおりです。
ext {
buildNumber = (rootProject.properties.get("build.number") as Integer) ?: 1
}
android {
defaultConfig {
versionCode project.buildNumber
versionName "1.3.7." + project.buildNumber.toString()
}
私の場合、build.number
AndroidのversionCodeとして使用したいので、:?
null処理では整数への解析が必要です。