A Gradle plugin for uploading iOS and Android Apps to HockeyApp.
The plugin is compatible with gradle 2.14 and up.
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' ... The task name is generated based on your productFlavors and buildTypes. For a basic release build with no flavors using the gradle wrapper:
./gradlew uploadReleaseToHockeyAppAdd 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", ] } apiToken: Your API Token from HockeyApp
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,1live,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,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
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
To migrate to version >= 3.0 please change
apply plugin: 'hockeyApp'to
apply plugin: 'de.felixschulze.gradle.hockeyapp'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)
gradle-hockeyapp-plugin is available under the MIT license. See the LICENSE file for more info.
