Gradle HockeyApp Plugin

A Gradle plugin for uploading iOS and Android Apps to HockeyApp.

License

License

Categories

Categories

Gradle Build Tools KeY Data Data Formats Formal Verification
GroupId

GroupId

com.github.3mph4515
ArtifactId

ArtifactId

gradle-hockeyapp-plugin
Last Version

Last Version

3.7.6
Release Date

Release Date

Type

Type

jar
Description

Description

Gradle HockeyApp Plugin
A Gradle plugin for uploading iOS and Android Apps to HockeyApp.
Project URL

Project URL

https://github.com/3mph4515/gradle-hockeyapp-plugin
Source Code Management

Source Code Management

https://github.com/3mph4515/gradle-hockeyapp-plugin

Download gradle-hockeyapp-plugin

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.3mph4515/gradle-hockeyapp-plugin/ -->
<dependency>
    <groupId>com.github.3mph4515</groupId>
    <artifactId>gradle-hockeyapp-plugin</artifactId>
    <version>3.7.6</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.3mph4515/gradle-hockeyapp-plugin/
implementation 'com.github.3mph4515:gradle-hockeyapp-plugin:3.7.6'
// https://jarcasting.com/artifacts/com.github.3mph4515/gradle-hockeyapp-plugin/
implementation ("com.github.3mph4515:gradle-hockeyapp-plugin:3.7.6")
'com.github.3mph4515:gradle-hockeyapp-plugin:jar:3.7.6'
<dependency org="com.github.3mph4515" name="gradle-hockeyapp-plugin" rev="3.7.6">
  <artifact name="gradle-hockeyapp-plugin" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.3mph4515', module='gradle-hockeyapp-plugin', version='3.7.6')
)
libraryDependencies += "com.github.3mph4515" % "gradle-hockeyapp-plugin" % "3.7.6"
[com.github.3mph4515/gradle-hockeyapp-plugin "3.7.6"]

Dependencies

compile (5)

Group / Artifact Type Version
commons-io : commons-io jar 2.4
org.apache.httpcomponents : httpclient jar 4.5.2
org.apache.httpcomponents : httpmime jar 4.5.2
com.android.tools.build : gradle jar 2.2.2
de.felixschulze.teamcity : teamcity-status-message-helper jar 1.2

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

gradle-hockeyapp-plugin Build Status Maven Central license

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 'com.github.3mph4515:gradle-hockeyapp-plugin$LAST_VERSION'
    }
}

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

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 proguard mapping.txt mapping file (Android) or dSYM file (iOS). Standard is mapping.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
  • releaseType: 0 beta, 1 live, 2 alpha
  • 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,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
  • teamId: Optional: add specific team or list of teams to project. IDs(comma-separated); example: teamId=1224,5678 with 1224 and 5678 being the database IDs of your teams
  • restoreAllowed: Optional: Allow to download any version of app. (By default only last app version is downloadable).
  • ownerId: Optional: Set owner to the application. Should be ID of organization.
  • 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 the R or dSYM 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

Releases

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.

Versions

Version
3.7.6
3.7.4
3.7.3
3.7.2
3.7.1