Files
MapLibreParticleLab/platform/android/gradle/android-nitpick.gradle
2019-02-21 15:23:08 +01:00

54 lines
2.1 KiB
Groovy

apply from: "${rootDir}/gradle/dependencies.gradle"
def MAPBOX_JAVA_DIR = 'mapbox-java'
def MAPBOX_JAVA_TAG_PREFIX = 'v'
def MAPBOX_TELEMETRY_DIR = 'mapbox-events-android'
def MAPBOX_TELEMETRY_TAG_PREFIX = 'telem-'
def MAPBOX_GESTURES_DIR = 'mapbox-gestures-android'
def MAPBOX_GESTURES_TAG_PREFIX = 'v'
task androidNitpick {
doLast {
println "Running android nitpick script"
println "Verify vendor submodule pins"
verifyVendorSubmodulePin(MAPBOX_JAVA_DIR, MAPBOX_JAVA_TAG_PREFIX, versions.mapboxServices)
verifyVendorSubmodulePin(MAPBOX_TELEMETRY_DIR, MAPBOX_TELEMETRY_TAG_PREFIX, versions.mapboxTelemetry)
verifyVendorSubmodulePin(MAPBOX_GESTURES_DIR, MAPBOX_GESTURES_TAG_PREFIX, versions.mapboxGestures)
}
}
private def verifyVendorSubmodulePin(def dir, def prefix, def version) {
println "Verify vendor submodule pin: ${dir} (${prefix + version})"
exec {
workingDir = "${rootDir}/vendor/${dir}"
commandLine "git", "fetch", "-t"
}
def output = new ByteArrayOutputStream()
exec {
workingDir = "${rootDir}/vendor/${dir}"
commandLine "git", "rev-list", "-n", "1", "tags/${prefix + version}"
standardOutput = output
}
def expectedCommit = output.toString().trim()
output.reset()
exec {
workingDir = "${rootDir}/vendor/${dir}"
commandLine "git", "rev-parse", "HEAD"
standardOutput = output
}
def actualCommit = output.toString().trim()
if (actualCommit != expectedCommit) {
throw new IllegalStateException("${dir} vendor repository is not checked out on the consumed binary's tag.\n" +
"Expected commit: " + expectedCommit + "(${prefix + version} tag).\n" +
"Actual commit: " + actualCommit + ".\n" +
"If you've updated the version in the dependencies.gradle file, make sure to bump the submodule pin in the platform/android/vendor/ directory to match the release tag.\n" +
"If you've bumped the pin, make sure to verify the version tag prefix in the android-nitpick.gradle file.")
}
output.close()
}