x2on / Gradle Hockeyapp Plugin
Programming Languages
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
:true
allow upload multiple app files (for example when using APK splits for Android) -
buildServerUrl
: Optional: the URL of the build job on your build server -
commitSha
: Optional: commit SHA for this build -
mandatory
:0
not mandatory,1
mandatory -
mappingFileNameRegex
: Optional:mappingFileNameRegex="mapping.txt"
Should contain the filename or a regex for the proguardmapping.txt
mapping file (Android) ordSYM
file (iOS). Standard ismapping.txt
-
notes
: Release notes as Textile or Markdown -
notesType
:0
Textile,1
Markdown -
notify
:0
not notify testers,1
notify all testers that can install this app -
owner_id
: Optional: the ID of your organization -
releaseType
:0
beta,1
store,2
alpha,3
enterprise -
repositoryUrl
: Optional: your source repository URL -
status
:1
not allow users to download the version,2
make the version available for download -
strategy
:add
to add the build as a new build to even if it has the same build number (default),replace
to replace to a build with the same build number -
tags
: Optional: restrict download to comma-separated list of tags -
teamCityLog
:true
Add features for TeamCity -
teams
: Optional: restrict download to comma-separated list of team IDs; example:teams = '123,213'
with 123 and 213 being database IDs of your teams -
users
: Optional: restrict download to comma-separated list of user IDs; example:users = '1224,5678'
with 1224 and 5678 being the database IDs of your users -
variantToApiToken
: Optional:[variantName: "YOURHOCKEYAPITOKEN", variantName2: "YOUROTHERHOCKEYAPITOKEN"]
map between your variants and api tokens -
variantToApplicationId
: Optional (Android):[variantName: "hockeyAppAppId", variantName2: "hockeyAppAppId2"]
map between your variants and HockeyApp application IDs -
variantToMandatory
: Optional:[variantName: "0", variantName2: "1"]
map between your variants and mandatory -
variantToNotes
: Optional:[variantName: "some notes", variantName2: "some other Notes"]
map between your variants and notes -
variantToNotesType
: Optional:[variantName: "0", variantName2: "1"]
map between your variants and notesType -
variantToReleaseType
: Optional:[variantName: "0", variantName2: "1"]
map between your variants and releaseType -
variantToStatus
: Optional:[variantName: "1", variantName2: "2"]
map between your variants and status -
variantToStrategy
: Optional:[variantName: "1", variantName2: "2"]
map between your variants and strategy -
variantToTags
: Optional:[variantName: "1", variantName2: "2"]
map between your variants and tags -
variantToNotify
: 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 theR
ordSYM
file
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.