Firestorm Gradle Plugin

Gradle plugin for running modularized Android instrumented tests on Firebase Test Lab

License

License

Categories

Categories

Gradle Build Tools React User Interface Web Frameworks ORM Data
GroupId

GroupId

io.github.reactivecircus.firestorm
ArtifactId

ArtifactId

firestorm-gradle-plugin
Last Version

Last Version

0.1.1
Release Date

Release Date

Type

Type

jar
Description

Description

Firestorm Gradle Plugin
Gradle plugin for running modularized Android instrumented tests on Firebase Test Lab
Project URL

Project URL

https://github.com/reactivecircus/Firestorm
Source Code Management

Source Code Management

https://github.com/reactivecircus/Firestorm

Download firestorm-gradle-plugin

How to add to project

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

Dependencies

runtime (3)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-bom jar 1.3.50
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.50
org.jetbrains.kotlinx : kotlinx-coroutines-core jar 1.3.1

test (4)

Group / Artifact Type Version
com.android.tools.build : gradle jar 3.6.0-alpha10
org.jetbrains.kotlin : kotlin-gradle-plugin jar 1.3.50
junit : junit jar 4.13-beta-3
com.google.truth : truth jar 1.0

Project Modules

There are no modules declared in this project.

Firestorm

CI License

Gradle plugin for running modularized Android instrumented tests on Firebase Test Lab.

...

Installation

The Firestorm Gradle Plugin is available from both Maven Central and Gradle Plugin Portal. Make sure your top-level build.gradle has either mavenCentral() or gradlePluginPortal() defined in the buildscript block:

buildscript {
    ext.firestormVersion = '0.1.1'
    
    repositories {
        mavenCentral()
        gradlePluginPortal()
        ...
    }
}

Applying the plugin

The plugin should be applied directly to Android Application or Android Library subprojects with instrumented tests.

In the subproject's build.gradle file:

Android Application project:

plugins {
    id 'com.android.application'
    id 'io.github.reactivecircus.firestorm' version "$firestormVersion"
}

Android Library project:

plugins {
    id 'com.android.library'
    id 'io.github.reactivecircus.firestorm' version "$firestormVersion"
}

To use the traditional syntax, declare the plugin in the buildscript block within the top-level build.gradle:

buildscript {
    ext.firestormVersion = 'x.y.z'
    
    repositories {
        mavenCentral()
        google()
        gradlePluginPortal()
    }

    dependencies {
        ...
        classpath "io.github.reactivecircus.firestorm:firestorm-gradle-plugin:$firestormVersion"
    }
}

Then apply the plugin in the subproject's build.gradle file:

Android Application project:

apply plugin: 'com.android.application'
apply plugin: 'io.github.reactivecircus.firestorm'

Android Library project:

apply plugin: 'com.android.library'
apply plugin: 'io.github.reactivecircus.firestorm'

Configurations

Available plugin configurations and default values:

plugins {
    id 'com.android.application'
    id 'io.github.reactivecircus.firestorm'
}

firestorm {
    // Enable or disable the plugin
    enabled = true    

    // Whether to only trigger assembling APKs and running tests if the project source has meaningful git changes.
    smartTrigger = true

    // Configurations for smart trigger. Only relevant when [smartTrigger] is true.
    smartTriggerConfigs {
        // Set of include patterns to be considered when performing project source git changes detection.
        includes = [
            "src/**/*.kt",
            "src/**/*.java",
            "src/**/*.xml",
            "src/*/assets",
            "build.gradle",
            "build.gradle.kts",
            "*.properties"
        ]

        // Set of exclude patterns to be ignored when performing project source git changes detection.
        excludes = [
            "src/test*"
        ]

        // Whether to recursively check the project's transitive dependencies when performing project source git changes detection.
        checkDependencies = true 
    }
}

License

Copyright 2019 Yang Chen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
io.github.reactivecircus.firestorm

Reactive Circus

A bunch of open source projects mostly around Android - apps, tooling, libraries and experiments.

Versions

Version
0.1.1
0.1.0