gradle-hockeyapp-plugin

A Gradle plugin for uploading iOS and Android Apps to HockeyApp.
Compatibility
The plugin is compatible with gradle 2.14 and up.
Basic usage
Add to your build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'de.felixschulze.gradle:gradle-hockeyapp-plugin:3.6'
}
}
apply plugin: 'de.felixschulze.gradle.hockeyapp'
hockeyapp {
apiToken = "YOURHOCKEYAPITOKEN"
}
As the upload tasks are automatically generated based on application variants, ensure this plugin is applied after the android plugin. i.e.
...
apply plugin: 'com.android.application'
apply plugin: 'de.felixschulze.gradle.hockeyapp'
...
Upload task
The task name is generated based on your productFlavors and buildTypes. For a basic release build with no flavors using the gradle wrapper:
./gradlew uploadReleaseToHockeyApp
Advanced usage
Add to your build.gradle
hockeyapp {
apiToken = "YOURHOCKEYAPITOKEN"
releaseType = 2 // alpha
notify = 0
status = 2
notesType = 1
notes = new File(file('../README.md').absolutePath).getText('UTF-8')
variantToApplicationId = [
buildVariantA: "hockeyAppApplicationIdA",
buildVariantB: "hockeyAppApplicationIdB",
]
}
Required
apiToken: Your API Token from HockeyApp
Optional
allowMultipleAppFiles:trueallow upload multiple app files (for example when using APK splits for Android)buildServerUrl: Optional: the URL of the build job on your build servercommitSha: Optional: commit SHA for this buildmandatory:0not mandatory,1mandatorymappingFileNameRegex: Optional:mappingFileNameRegex="mapping.txt"Should contain the filename or a regex for the proguardmapping.txtmapping file (Android) ordSYMfile (iOS). Standard ismapping.txtnotes: Release notes as Textile or MarkdownnotesType:0Textile,1Markdownnotify:0not notify testers,1notify all testers that can install this appowner_id: Optional: the ID of your organizationreleaseType:0beta,1store,2alpha,3enterpriserepositoryUrl: Optional: your source repository URLstatus:1not allow users to download the version,2make the version available for downloadstrategy:addto add the build as a new build to even if it has the same build number (default),replaceto replace to a build with the same build numbertags: Optional: restrict download to comma-separated list of tagsteamCityLog:trueAdd features for TeamCityteams: Optional: restrict download to comma-separated list of team IDs; example:teams = '123,213'with 123 and 213 being database IDs of your teamsusers: Optional: restrict download to comma-separated list of user IDs; example:users = '1224,5678'with 1224 and 5678 being the database IDs of your usersvariantToApiToken: Optional:[variantName: "YOURHOCKEYAPITOKEN", variantName2: "YOUROTHERHOCKEYAPITOKEN"]map between your variants and api tokensvariantToApplicationId: Optional (Android):[variantName: "hockeyAppAppId", variantName2: "hockeyAppAppId2"]map between your variants and HockeyApp application IDsvariantToMandatory: Optional:[variantName: "0", variantName2: "1"]map between your variants and mandatoryvariantToNotes: Optional:[variantName: "some notes", variantName2: "some other Notes"]map between your variants and notesvariantToNotesType: Optional:[variantName: "0", variantName2: "1"]map between your variants and notesTypevariantToReleaseType: Optional:[variantName: "0", variantName2: "1"]map between your variants and releaseTypevariantToStatus: Optional:[variantName: "1", variantName2: "2"]map between your variants and statusvariantToStrategy: Optional:[variantName: "1", variantName2: "2"]map between your variants and strategyvariantToTags: Optional:[variantName: "1", variantName2: "2"]map between your variants and tagsvariantToNotify: Optional:[variantName: "1", variantName2: "2"]map between your variants and notify
iOS or custom Android build only options
appFileNameRegex: Only needed for iOS or if you don't use the android gradle plugin `appFileNameRegex = ".*.ipa"outputDirectory: Only needed for iOS:file("directory")symbolsDirectory: Only needed for iOS or if you don't use the android gradle plugin:file("directory")Directory which contains theRordSYMfile
Migration from 2.x to >= 3.0
To migrate to version >= 3.0 please change
apply plugin: 'hockeyApp'
to
apply plugin: 'de.felixschulze.gradle.hockeyapp'
Changelog
Fix for Error with Top-Level-Projects / Multi project environment
If you use a top-level-project or multi project environment and got the error java.lang.NoSuchFieldError: INSTANCE or Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory move the dependency to this plugin to your root build.gradle file (see #30, #62)
License
gradle-hockeyapp-plugin is available under the MIT license. See the LICENSE file for more info.
