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

de.felixschulze.gradle
ArtifactId

ArtifactId

gradle-hockeyapp-plugin
Last Version

Last Version

3.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/x2on/gradle-hockeyapp-plugin
Source Code Management

Source Code Management

https://github.com/x2on/gradle-hockeyapp-plugin

Download gradle-hockeyapp-plugin

How to add to project

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

Dependencies

compile (5)

Group / Artifact Type Version
commons-io : commons-io jar 2.4
org.apache.httpcomponents : httpclient jar 4.5.1
org.apache.httpcomponents : httpmime jar 4.5.1
com.android.tools.build : gradle jar 1.5.0
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 '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

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
  • 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 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.6
3.5
3.4
3.3.1
3.3
3.2.1
3.2
3.1
3.0.1
3.0
2.6
2.5.2
2.5.1
2.5
2.4
2.3
2.2
2.1
2.0.1
2.0
1.10
1.9
1.8
1.7
1.6
1.5
1.4.1
1.4
1.3
1.2
1.1
1.0
0.9.1