Gradle Plugin for Continuous Integration of AppSweep App Testing.

Overview



AppSweep

Gradle Plugin for Continuous Integration of AppSweep App Testing.


Configuring the PluginInitiate the ScanFurther Configuration


Configuring the Plugin

The AppSweep plugin is published in the Gradle Public Repository, and can be easily added to your Android project by adding

plugins {
  id "com.guardsquare.appsweep" version "0.1.4"
  // Apply other plugins here
}

Next, you need to configure the plugin by providing an API key for your project.

🚀 You can create an API key in the API Keys section of your project settings.

appsweep {
    apiKey "gs_appsweep_SOME_API_KEY"
}

Initiate the Scan

When the Gradle plugin is enabled and configured, some multiple uploadToAppSweep* Gradle tasks are registered.
More specifically, one task will be registered for each build variant of your app. For example, if you want to upload your release build variant, you can run:

gradle uploadToAppSweepRelease

in the root folder of your app.

Moreover, if you have DexGuard configured in your project to create a protected build of your app, additional Gradle tasks will be registered for the protected builds. For example, to upload your protected release build, run:

gradle uploadToAppSweepReleaseProtected

To see all available AppSweep tasks, use

gradle tasks --group=AppSweep

Further Configuration

In the appsweep-block in your build.gradle(.kts) file, you can make additional configurations.

Tags

By default, the Gradle plugin will tag each uploaded build with the variant name (e.g. Debug or Release). Additionally it will add a Protected tag for builds uploaded using the uploadToAppSweep{variant}Protected tasks. You can override this behavior and set your own tags:

appsweep {
    apiKey "gs_appsweep_SOME_API_KEY"
    configurations {
        release {
            tags "Public"
        }
    }
}

This will tag all builds of the release variant with Public.

Commit hash

By default, the Gradle plugin will keep track of the current commit hash. This will then be displayed along with your build results so you can easily identify which version was analysed. By default the command git rev-parse HEAD is used to obtain this commit hash.

If you don't want to keep track of the commit hash, you can turn off this feature by specifying the addCommitHash option:

appsweep {
    apiKey "gs_appsweep_SOME_API_KEY"
    addCommitHash false
}

You can also use an alternative command to retrieve the commit hash by overriding the commitHashCommand option:

appsweep {
    apiKey "gs_appsweep_SOME_API_KEY"
    commitHashCommand "hg id -i"
}
You might also like...
Artifactory is a gradle plugin to assist in developing Minecraft mods that can target different modloaders.

Artifactory Artifactory is a gradle plugin to assist in developing Minecraft mods that can target different modloaders. Currently, Fabric and Forge ar

Graphfity is a Gradle Plugin which creates a dependency node diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module application
Graphfity is a Gradle Plugin which creates a dependency node diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module application

Graphfity creates a dependency nodes diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module app

A Gradle Plugin to determine which modules were affected by a set of files in a commit.
A Gradle Plugin to determine which modules were affected by a set of files in a commit.

A Gradle Plugin to determine which modules were affected by a set of files in a commit. One use case for this plugin is for developers who would like to only run tests in modules which have changed in a given commit.

A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes.
A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes.

Change Tracker Plugin A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes

Android Gradle Plugin -- Auto Check big image and compress image in building.

McImage I will continue to update, please rest assured to use 中文文档 Android优雅的打包时自动化获取全部res资源 McImage is a Non-invasive plugin for compress all res in

Gradle plugin that generates a Swift Package Manager manifest and an XCFramework to distribute a Kotlin Multiplatform library for Apple platforms.

Multiplatform Swift Package This is a Gradle plugin for Kotlin Multiplatform projects that generates an XCFramework for your native Apple targets and

A Gradle plugin helps to proxy all the BuildConfig fields in the Android project.
A Gradle plugin helps to proxy all the BuildConfig fields in the Android project.

Readme A Gradle plugin helps to proxy all the BuildConfig fields in the Android project. Background In android BuildConfig, We might have different co

Gradle Plugin for publishing artifacts to Sonatype and Nexus

Introduction Due to Sonatype's strict validation rules, the publishing requirement must be satisfied by every artifact which wants to be published to

Gradle-i18n-plugin is meant for generating a JSON file with internationalized texts, based on a Google Sheet.
Gradle-i18n-plugin is meant for generating a JSON file with internationalized texts, based on a Google Sheet.

Gradle-i18n-plugin Gradle-i18n-plugin is meant for generating a JSON file with internationalized texts, based on a Google Sheet. The plugin assumes th

Comments
  • How to upload APK or AAB file using the plugin

    How to upload APK or AAB file using the plugin

    Good day we have use case in our CI CD setup where we build debug APK file, now we want to use this APK file instead of building another one with uploadToAppSweepDebug to save build minute. We also want to know how to upload AAB instead of APK for release build as the documentation currently did not mention it. Thanks a lot!

    opened by ArcherEmiya05 11
  • Moshi JsonAdapter issue

    Moshi JsonAdapter issue

    Hi, When I try to run ':app:uploadToAppSweepBetaDebug' task, I get an error below

    • What went wrong: Execution failed for task ':app:uploadToAppSweepBetaDebug'.

    'com.squareup.moshi.Moshi$Builder com.squareup.moshi.Moshi$Builder.addLast(com.squareup.moshi.JsonAdapter$Factory)'

    opened by gkaradagan 9
  • Calculates path to mapping file on non-dexguarded builds

    Calculates path to mapping file on non-dexguarded builds

    Hi 👋🏼

    What

    Rising this PR as per suggestion given in this thread from Guardsquare community

    How

    This PR enables the upload of mapping.txt file for non Dexguarded builds by calculating the conventional path

    <buildDir>/outputs/mapping/<variant>/mapping.txt
    

    when registering the appsweep tasks for project's variants.

    Tested locally and it seems the upload is working fine.

    opened by ubiratansoares 2
  • Plugin was not found

    Plugin was not found

    First of all thanks for this service, however I am getting an error upon Gradle sync

    * What went wrong:
    Plugin [id: 'com.guardsquare.appsweep', version: 'v.1.0.0'] was not found in any of the following sources:
    
    - Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
    - Plugin Repositories (could not resolve plugin artifact 'com.guardsquare.appsweep:com.guardsquare.appsweep.gradle.plugin:v.1.0.0')
      Searched in the following repositories:
        Gradle Central Plugin Repository
    

    This is how the app lever build.gradle looks like

    
    plugins {
        id 'com.android.application'
        id 'org.jetbrains.kotlin.android' version "${kotlin_version}" // This should be put before any Kotlin dependent plugin
        id 'com.guardsquare.appsweep' version "v.1.0.0"
    }
    
    appsweep {
        apiKey APPSWEEP_API_KEY
    }
    
    dependencies { ... }
    

    Do we still need to add classpath to this? Thanks

    opened by ArcherEmiya05 1
Releases(v1.4.0)
  • v1.4.0(Oct 20, 2022)

    • Caching is now enabled. The task will not run if the app is unchanged. The new cacheTask parameter can be set to false to disable this behavior and guarantee a new scan every time the upload task is run.
    • Update gradle version for wrapper and tests to 7.5.1.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Oct 11, 2022)

    • Fix bug that caused tasks not being present if DG plugin is used and not defining behavior for variants.
    • Update gradle version and dependencies.
    • Update tests to AGP 7.3.0.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Aug 2, 2022)

    With this new release we added support for Android library modules to the Gradle plugin! While AppSweep itself already supported scanning AAR files for quite some time, you can now also upload them automatically using our Gradle plugin.

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Jun 20, 2022)

  • v1.0.0(Dec 30, 2021)

A Gradle plugin that generates plugin.yml for Bukkit/BungeeCord/Nukkit plugins based on the Gradle project

plugin-yml is a simple Gradle plugin that generates the plugin.yml plugin description file for Bukkit plugins, bungee.yml for Bungee plugins or nukkit.yml for Nukkit plugins based on the Gradle project. Various properties are set automatically (e.g. project name, version or description) and additional properties can be added using a simple DSL.

Plexus 0 Apr 10, 2022
A Gradle plugin to ease testing in Kotlin Multiplatform projects.

Multiplatform Testing Plugin A Gradle plugin for easy testing of Kotlin Multiplatform projects in your CI pipeline. Support for testing android() targ

DeepMedia 6 Oct 19, 2022
Gradle Plugin to automatically upgrade your gradle project dependencies and send a GitHub pull request with the changes

Gradle Plugin to automatically upgrade your gradle project dependencies and send a GitHub pull request with the changes

Dipien 142 Dec 29, 2022
Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it

decomposer Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it How to use Run bui

Takahiro Menju 56 Nov 18, 2022
EasyVersion is a Gradle plugin that manage your app or library version.

EasyVersion EasyVersion is a Gradle plugin that manage your app or library version. Before Downloading Create easy_version.json in your root project d

Kosh Sergani 8 Nov 26, 2022
The core Gradle plugin and associated logic used for Slack's Android app

slack-gradle-plugin This repository contains the core Gradle plugin and associated logic used for Slack's Android app. This repo is effectively read-o

Slack 306 Dec 30, 2022
Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.

CompleteKotlin Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms. What this plugin provides This zero-conf

Louis CAD 235 Jan 3, 2023
A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

Rikka apps 124 Dec 31, 2022
Grazel is a Gradle plugin to automate generation of valid Bazel files for a given Android/Kotlin/Java project.

Grazel Grazel stands for Gradle to Bazel. It is a Gradle plugin that enables you to migrate Android projects to Bazel build system in an incremental a

Grab 228 Jan 2, 2023
Gradle plugin which validates the licenses of your dependency graph match what you expect

Gradle plugin which validates the licenses of your dependency graph match what you expect

Cash App 502 Dec 31, 2022