[Android] update script to release
authorJaeyun <jy1210.jung@samsung.com>
Thu, 5 Sep 2019 13:01:34 +0000 (22:01 +0900)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Wed, 11 Sep 2019 07:24:49 +0000 (16:24 +0900)
Add dependency and args for jcenter release.

To upload NNStreamer library, run the script with bintray user name.

./api/android/build-android-lib.sh --release=yes --release_version=$release_ver --bintray_user_name=$user_name --bintray_user_key=$user_key

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
api/android/api/build.gradle
api/android/build-android-lib.sh
api/android/build.gradle
api/android/sample/build.gradle

index b89f24c..2116c05 100644 (file)
@@ -1,4 +1,5 @@
 apply plugin: 'com.android.library'
+// add plugin (bintray)
 
 android {
     compileSdkVersion 28
index deb81af..17d3b2c 100644 (file)
@@ -16,6 +16,30 @@ nnstreamer_target_abi="'armeabi-v7a', 'arm64-v8a'"
 # Set tensorflow-lite version (available: 1.9 and 1.13)
 nnstreamer_tf_lite_ver=1.13
 
+# Variables to release library (GROUP:ARTIFACT:VERSION)
+release_bintray='no'
+
+# Parse args
+for arg in "$@"; do
+    case $arg in
+        --release=*)
+        release_bintray=${arg#*=};;
+        --release_version=*)
+        release_version=${arg#*=};;
+        --bintray_user_name=*)
+        bintray_user_name=${arg#*=};;
+        --bintray_user_key=*)
+        bintray_user_key=${arg#*=};;
+    esac
+done
+
+if [[ $release_bintray == 'yes' ]]; then
+    [ -z "$release_version" ] && echo "Set release version." && exit 1
+    [ -z "$bintray_user_name" ] || [ -z "$bintray_user_key" ] && echo "Set user info to release." && exit 1
+
+    echo "Release version: $release_version user: $bintray_user_name"
+fi
+
 # Function to check if a package is installed
 function check_package() {
     which "$1" 2>/dev/null || {
@@ -66,6 +90,25 @@ tar xJf ./ext-files/tensorflow-lite-$nnstreamer_tf_lite_ver.tar.xz -C ./api/src/
 
 sed -i "s|abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'|abiFilters $nnstreamer_target_abi|" api/build.gradle
 
+# Add dependency for release
+if [[ $release_bintray == 'yes' ]]; then
+    sed -i "s|// add dependency (bintray)|classpath 'com.novoda:bintray-release:0.9.1'|" build.gradle
+
+    sed -i "s|// add plugin (bintray)|apply plugin: 'com.novoda.bintray-release'\n\
+\n\
+publish {\n\
+    userOrg = 'nnsuite'\n\
+    repoName = 'nnstreamer'\n\
+    groupId = 'org.nnsuite'\n\
+    artifactId = 'nnstreamer'\n\
+    publishVersion = '$release_version'\n\
+    desc = 'NNStreamer API for Android'\n\
+    website = 'https://github.com/nnsuite/nnstreamer'\n\
+    issueTracker = 'https://github.com/nnsuite/nnstreamer/issues'\n\
+    repository = 'https://github.com/nnsuite/nnstreamer.git'\n\
+}|" api/build.gradle
+fi
+
 echo "Starting gradle build for Android library."
 nnstreamer_android_api_lib=./api/build/outputs/aar/api-release.aar
 
@@ -80,6 +123,11 @@ if [[ -e $nnstreamer_android_api_lib ]]; then
     echo "Build procedure is done, copy NNStreamer library to $result_directory directory."
     mkdir -p ../$result_directory
     cp $nnstreamer_android_api_lib ../$result_directory/nnstreamer-api-$today.aar
+
+    if [[ $release_bintray == 'yes' ]]; then
+        echo "Upload NNStreamer library to Bintray"
+        ./gradlew api:bintrayUpload -PbintrayUser=$bintray_user_name -PbintrayKey=$bintray_user_key -PdryRun=false
+    fi
 else
     echo "Failed to build NNStreamer library."
 fi
index a1526b9..169e6ee 100644 (file)
@@ -7,6 +7,7 @@ buildscript {
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:3.3.1'
+        // add dependency (bintray)
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
index 3d4fcb5..6e3321b 100644 (file)
@@ -22,4 +22,6 @@ dependencies {
     implementation fileTree(include: ['*.aar'], dir: 'libs')
     implementation 'com.android.support:appcompat-v7:28.0.0'
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+    // Set latest version of NNStreamer API
+    // implementation 'org.nnsuite:nnstreamer:0.0.1'
 }