blob: 48446b48ddf5eaa58317cf7643cd22048d3b82ea [file] [log] [blame]
buildscript {
repositories {
mavenCentral()
google()
}
}
plugins {
id 'com.github.sherter.google-java-format' version '0.9'
id 'maven-publish'
id 'signing'
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 31
defaultConfig {
minSdkVersion 26
targetSdkVersion 31
versionCode VERSION_CODE.toInteger()
versionName VERSION_NAME
// Need to set up some project properties to publish to bintray.
project.group = GROUP_ID
project.archivesBaseName = ARTIFACT_ID
project.version = VERSION_NAME
}
splits {
abi {
enable true
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "arm64-v8a", "armeabi-v7a", "armeabi"
universalApk true
}
}
lintOptions {
abortOnError false
checkAllWarnings true
warningsAsErrors true
disable 'HardwareIds','MissingApplicationIcon','GoogleAppIndexingWarning','InvalidPackage','OldTargetApi'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'junit:junit:4.13.2'
implementation 'androidx.test:runner:1.4.0'
}
googleJavaFormat {
options style: 'AOSP'
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
failOnError false
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
groupId GROUP_ID
artifactId ARTIFACT_ID
version VERSION_NAME
from components.release
artifact sourcesJar
artifact javadocJar
pom {
name = ARTIFACT_ID
description = 'Android library for triggering device-side ' +
'code from host-side Mobly tests.'
url = 'https://github.com/google/mobly-snippet-lib'
licenses {
license {
name = 'The Apache Software License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution = 'repo'
}
}
developers {
developer {
name = 'The Mobly Team'
}
}
scm {
connection = 'https://github.com/google/mobly-snippet-lib.git'
url = 'https://github.com/google/mobly-snippet-lib'
}
}
}
}
repositories {
maven {
def releasesRepoUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
def snapshotsRepoUrl = 'https://oss.sonatype.org/content/repositories/snapshots/'
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
credentials {
username ossrhUsername
password ossrhPassword
}
}
}
}
signing {
sign publishing.publications.release
}
}
// Open lint's HTML report in your default browser or viewer.
task openLintReport(type: Exec) {
def lint_report = "build/reports/lint-results-debug.html"
def cmd = "cat"
def platform = System.getProperty('os.name').toLowerCase(Locale.ROOT)
if (platform.contains("linux")) {
cmd = "xdg-open"
} else if (platform.contains("mac os x")) {
cmd = "open"
} else if (platform.contains("windows")) {
cmd = "launch"
}
commandLine cmd, lint_report
}
task presubmit {
dependsOn { ['googleJavaFormat', 'lint', 'openLintReport'] }
doLast {
println "Fix any lint issues you see. When it looks good, submit the pull request."
}
}