diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-01-28 13:10:06 +0100 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2019-01-29 15:21:01 +0100 |
commit | e598146399a9d53a2d78b3b45eb1a69ca367dcf3 (patch) | |
tree | c1e142ea9611cebe8bc8e12fe02871ceb24493c9 | |
parent | ca8625fba1bc86a42323236f27cb2c7f803a11c5 (diff) | |
download | qtlocation-mapboxgl-e598146399a9d53a2d78b3b45eb1a69ca367dcf3.tar.gz |
[android] android nitpick script, verify submodule pins
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | circle.yml | 6 | ||||
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/build.gradle | 4 | ||||
-rw-r--r-- | platform/android/gradle/android-nitpick.gradle | 53 | ||||
-rw-r--r-- | platform/android/gradle/gradle-update-vendor-modules.gradle | 5 |
5 files changed, 77 insertions, 1 deletions
@@ -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 diff --git a/circle.yml b/circle.yml index 473739d58b..966945094f 100644 --- a/circle.yml +++ b/circle.yml @@ -536,6 +536,9 @@ jobs: steps: - install-dependencies: { gradle: true } - run: + name: Android nitpick + command: make run-android-nitpick + - run: name: Check code style command: make android-check - run: @@ -597,6 +600,9 @@ jobs: steps: - install-dependencies: { gradle: true } - run: + name: Android nitpick + command: make run-android-nitpick + - run: name: Trigger core benchmark run command: | if [ -n "${MOBILE_METRICS_TOKEN}" ]; then diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle index eafb0583c2..12be290175 100644 --- a/platform/android/MapboxGLAndroidSDK/build.gradle +++ b/platform/android/MapboxGLAndroidSDK/build.gradle @@ -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"
\ No newline at end of file +apply from: "${rootDir}/gradle/gradle-dependencies-graph.gradle" +apply from: "${rootDir}/gradle/gradle-update-vendor-modules.gradle" +apply from: "${rootDir}/gradle/android-nitpick.gradle"
\ No newline at end of file diff --git a/platform/android/gradle/android-nitpick.gradle b/platform/android/gradle/android-nitpick.gradle new file mode 100644 index 0000000000..dfcbcfb869 --- /dev/null +++ b/platform/android/gradle/android-nitpick.gradle @@ -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() +}
\ No newline at end of file diff --git a/platform/android/gradle/gradle-update-vendor-modules.gradle b/platform/android/gradle/gradle-update-vendor-modules.gradle new file mode 100644 index 0000000000..f2305eb7a5 --- /dev/null +++ b/platform/android/gradle/gradle-update-vendor-modules.gradle @@ -0,0 +1,5 @@ +task updateVendorSubmodules { + doLast { + "git submodule update --init --recursive vendor".execute() + } +}
\ No newline at end of file |