Skip to content

Build summary reports for android projects

Notifications You must be signed in to change notification settings

canelmas/hubble-scripts

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

android-build-summary

Aggregates various android project information and generates json.

Why?

If you sit on bunch of android apps you may find yourself or your teammates asking questions like, Are we targeting 23 on project x? What's the usage of gradle plugin 1.3.1 in our projects? Which of our projects are asking GET_ACCOUNTS? Do we have any app with minSdk different than 19? and many many more...

With this work and additional ones to come in near future, we're trying to come to a point where we can list/filter our projects based on any parameter and see a brief summary.

How?

Combines parsed and processed gradle build files, data read with aapt and some jenkins environment information.

When?

As part of our internal build process, the summary information is generated during a jenkins prod build job as a post build step.

What's next?

  • Simple lovely summary rest api
  • Display of data in a lovely way - projects info summary based on any property

Generated Json

{
    "name": "XXXX",
    "created": "2016-08-22 19:51:38.771Z",
    "apk": {
        "methodCount": 40046,
        "versionName": "1.4.0",
        "minSdk": 19,
        "appId": "com.pozitron.sample.localDebug",
        "versionCode": 8,
        "apkSize": "14.0",
        "buildVariant": "prod-release",
        "targetSdk": 22,
        "permissions": [
            "android.permission.INTERNET",
            "android.permission.ACCESS_NETWORK_STATE",
            "android.permission.WAKE_LOCK",
            "com.google.android.c2dm.permission.RECEIVE",
            "android.permission.GET_ACCOUNTS' maxSdkVersion='18'",
            "android.permission.BLUETOOTH",
            "android.permission.BLUETOOTH_ADMIN",
            "android.permission.RECEIVE_BOOT_COMPLETED",
            "android.permission.ACCESS_COARSE_LOCATION",
            "android.permission.ACCESS_FINE_LOCATION",
            "android.permission.READ_PHONE_STATE",
            "android.permission.WRITE_EXTERNAL_STORAGE",
            "com.pozitron.pegasus.localDebug.permission.C2D_MESSAGE",
            "android.permission.READ_EXTERNAL_STORAGE"
        ]
    },
    "build": {
        "compileSdkVersion": "23",
        "buildToolsVersion": "23.0.3",
        "deps": [{
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "appcompat-v7",
            "module": "app"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "cardview-v7",
            "module": "app"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "recyclerview-v7",
            "module": "app"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "design",
            "module": "app"
        }, {
            "group": "com.canelmas.deps",
            "version": "2.2.0@aar",
            "config": "compile",
            "name": "lovely-core",
            "module": "app"
        }, {
            "group": "com.canelmas.deps",
            "version": "2.0.0@aar",
            "config": "compile",
            "name": "loveley-ui",
            "module": "app"
        }, {
            "group": "com.canelmas.deps",
            "version": "3.1.0@aar",
            "config": "compile",
            "name": "loveley-mvp",
            "module": "app"
        }, {
            "group": "com.canelmas.deps",
            "version": "3.3.0@aar",
            "config": "compile",
            "name": "lovely-util",
            "module": "app"
        }, {
            "group": "com.canelmas.deps",
            "version": "1.0.0",
            "config": "compile",
            "name": "lovellyfit",
            "module": "app"
        }, {
            "group": "com.canelmas.deps",
            "version": "1.0.0",
            "config": "compile",
            "name": "lovelybus",
            "module": "app"
        }, {
            "group": "com.crashlytics.sdk.android",
            "version": "2.5.5@aar",
            "config": "compile",
            "name": "crashlytics",
            "module": "app"
        }, {
            "group": "com.google.android.gms",
            "version": "9.0.2",
            "config": "compile",
            "name": "play-services-base",
            "module": "app"
        }, {
            "group": "com.google.android.gms",
            "version": "9.0.2",
            "config": "compile",
            "name": "play-services-analytics",
            "module": "app"
        }, {
            "group": "com.google.firebase",
            "version": "7.7.7",
            "config": "compile",
            "name": "firebase-core",
            "module": "app"
        }, {
            "group": "com.google.firebase",
            "version": "7.7.7",
            "config": "compile",
            "name": "firebase-messaging",
            "module": "app"
        }, {
            "group": "com.google.dagger",
            "version": "2.2",
            "config": "apt",
            "name": "dagger-compiler",
            "module": "app"
        }, {
            "group": "com.google.dagger",
            "version": "2.2",
            "config": "compile",
            "name": "dagger",
            "module": "sample/app"
        }, {
            "group": "org.glassfish",
            "version": "10.0-b28",
            "config": "provided",
            "name": "javax.annotation",
            "module": "app"
        }, {
            "group": "com.jakewharton",
            "version": "8.0.1",
            "config": "compile",
            "name": "butterknife",
            "module": "app"
        }, {
            "group": "com.jakewharton",
            "version": "8.0.1",
            "config": "apt",
            "name": "butterknife-compiler",
            "module": "app"
        }, {
            "group": "org.greenrobot",
            "version": "3.0.0",
            "config": "compile",
            "name": "eventbus",
            "module": "app"
        }, {
            "group": "com.hannesdorfmann.fragmentargs",
            "version": "3.0.2",
            "config": "compile",
            "name": "annotation",
            "module": "app"
        }, {
            "group": "com.hannesdorfmann.fragmentargs",
            "version": "3.0.2",
            "config": "apt",
            "name": "processor",
            "module": "app"
        }, {
            "group": "frankiesardo",
            "version": "3.2.0",
            "config": "compile",
            "name": "icepick",
            "module": "app"
        }, {
            "group": "frankiesardo",
            "version": "3.2.0",
            "config": "provided",
            "name": "icepick-processor",
            "module": "sample/app"
        }, {
            "group": "net.danlew",
            "version": "2.9.3.1",
            "config": "compile",
            "name": "android.joda",
            "module": "app"
        }, {
            "group": "com.timehop.stickyheadersrecyclerview",
            "version": "0.4.3",
            "config": "compile",
            "name": "library",
            "module": "app"
        }, {
            "group": "com.ogaclejapan.smarttablayout",
            "version": "1.6.1@aar",
            "config": "compile",
            "name": "library",
            "module": "app"
        }, {
            "group": "com.facebook.fresco",
            "version": "0.10.0",
            "config": "compile",
            "name": "fresco",
            "module": "app"
        }, {
            "group": "io.reactivex",
            "version": "1.1.5",
            "config": "compile",
            "name": "rxjava",
            "module": "app"
        }, {
            "group": "io.reactivex",
            "version": "1.2.0",
            "config": "compile",
            "name": "rxandroid",
            "module": "lib"
        }, {
            "group": "com.jakewharton.rxbinding",
            "version": "0.4.0",
            "config": "compile",
            "name": "rxbinding-appcompat-v7",
            "module": "lib"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "appcompat-v7",
            "module": "lib"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "cardview-v7",
            "module": "lib"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "recyclerview-v7",
            "module": "lib"
        }, {
            "group": "com.android.support",
            "version": "23.3.0",
            "config": "compile",
            "name": "design",
            "module": "lib"
        }, {
            "group": "com.google.android.gms",
            "version": "9.0.2",
            "config": "compile",
            "name": "play-services-base",
            "module": "lib"
        }, {
            "group": "com.google.android.gms",
            "version": "9.0.2",
            "config": "compile",
            "name": "play-services-analytics",
            "module": "lib"
        }, {
            "group": "com.google.firebase",
            "version": "7.7.7",
            "config": "compile",
            "name": "firebase-core",
            "module": "lib"
        }, {
            "group": "com.google.firebase",
            "version": "7.7.7",
            "config": "compile",
            "name": "firebase-messaging",
            "module": "lib"
        }, {
            "group": "io.reactivex",
            "version": "1.1.5",
            "config": "compile",
            "name": "rxjava",
            "module": "lib"
        }, {
            "group": "com.jakewharton.rxbinding",
            "version": "0.4.0",
            "config": "compile",
            "name": "rxbinding-appcompat-v7",
            "module": "lib"
        }, {
            "group": "org.hibernate",
            "version": "3.0.5",
            "config": "runtime",
            "name": "hibernate",
            "module": "lib"
        }, {
            "group": "org.hibernate",
            "version": "3.0.5",
            "config": "runtime",
            "name": "hibernate",
            "module": "lib"
        }, {
            "group": "com.android.tools.build",
            "version": "2.1.2",
            "config": "classpath",
            "name": "gradle"
        }, {
            "group": "com.neenbedankt.gradle.plugins",
            "version": "1.8",
            "config": "classpath",
            "name": "android-apt"
        }, {
            "group": "com.google.gms",
            "version": "3.0.0",
            "config": "classpath",
            "name": "google-services"
        }]
    },
    "jenkins": {
        "node": "jenkins-android-3",
        "commit": "8f2e682c359688129803cc85c1ee2c05d97f5b14",
        "url": "ssh://jenkins@gerrit.pozitron.com:29418/XXXX-Android",
        "id": "6",
        "branch": "master"
    }

}

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.0%
  • Shell 4.0%