Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[android] android nitpick script, verify submodule pins
Browse files Browse the repository at this point in the history
(cherry picked from commit e598146)
  • Loading branch information
LukasPaczos committed Jan 29, 2019
1 parent 8a1cf7f commit d38c65b
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 1 deletion.
10 changes: 10 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -758,6 +758,16 @@ endif
android-configuration: platform/android/gradle/configuration.gradle
cat platform/android/gradle/configuration.gradle

# Updates Android's vendor submodules
.PHONY: android-update-vendor
android-update-vendor: platform/android/gradle/configuration.gradle
cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=none updateVendorSubmodules

# Run android nitpick script
.PHONY: run-android-nitpick
run-android-nitpick: android-update-vendor
cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=none androidNitpick

# Creates a dependency graph using Graphviz
.PHONY: android-graph
android-graph: platform/android/gradle/configuration.gradle
Expand Down
6 changes: 6 additions & 0 deletions circle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,9 @@ jobs:
MBGL_ANDROID_STL: << parameters.stl >>
steps:
- install-dependencies: { gradle: true }
- run:
name: Android nitpick
command: make run-android-nitpick
- run:
name: Check code style
command: make android-check
Expand Down Expand Up @@ -596,6 +599,9 @@ jobs:
IS_LOCAL_DEVELOPMENT: false
steps:
- install-dependencies: { gradle: true }
- run:
name: Android nitpick
command: make run-android-nitpick
- run:
name: Generate Maven credentials
command: |
Expand Down
4 changes: 3 additions & 1 deletion platform/android/MapboxGLAndroidSDK/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -165,4 +165,6 @@ configurations {
apply from: "${rootDir}/gradle/gradle-javadoc.gradle"
apply from: "${rootDir}/gradle/gradle-publish.gradle"
apply from: "${rootDir}/gradle/gradle-checkstyle.gradle"
apply from: "${rootDir}/gradle/gradle-dependencies-graph.gradle"
apply from: "${rootDir}/gradle/gradle-dependencies-graph.gradle"
apply from: "${rootDir}/gradle/gradle-update-vendor-modules.gradle"
apply from: "${rootDir}/gradle/android-nitpick.gradle"
53 changes: 53 additions & 0 deletions platform/android/gradle/android-nitpick.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
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 verifyVendorSubmodulePins {
doLast {
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)
}
}

task androidNitpick {
doLast {
println "Running android nitpick script"
verifyVendorSubmodulePins
}
}

private def verifyVendorSubmodulePin(def dir, def prefix, def version) {
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()
}
5 changes: 5 additions & 0 deletions platform/android/gradle/gradle-update-vendor-modules.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
task updateVendorSubmodules {
doLast {
"git submodule update --init --recursive vendor".execute()
}
}

0 comments on commit d38c65b

Please sign in to comment.