chiark / gitweb /
tests: specify dir for APKs as cmd line arg, and set jenkins to ~
authorHans-Christoph Steiner <hans@eds.org>
Mon, 2 Jun 2014 17:21:54 +0000 (13:21 -0400)
committerHans-Christoph Steiner <hans@eds.org>
Thu, 5 Jun 2014 02:01:25 +0000 (22:01 -0400)
This lets people easily set whatever dir they want, while letting jenkins
search through its whole workspace for any APKs that have been built. Also,
only include the latest version of a given packageName+versionCode.

jenkins-build
tests/run-tests

index dbdea777fc849bc03f7c63114499e7ad5a759d8d..cbdf115ffac8b36d80a262bbeec6de6e63f2b4b2 100755 (executable)
@@ -47,7 +47,7 @@ cd $WORKSPACE/fdroidserver/getsig
 #------------------------------------------------------------------------------#
 # run local tests
 cd $WORKSPACE/tests
-./run-tests
+./run-tests ~jenkins/
 
 
 #------------------------------------------------------------------------------#
@@ -67,7 +67,7 @@ python setup.py install
 
 # run tests in new pip+virtualenv install
 . $WORKSPACE/env/bin/activate
-fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests
+fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests ~jenkins/
 
 
 #------------------------------------------------------------------------------#
index 206ffa6babda96c92720488c28ad8cb6a9b022d6..49aadeb592935e1d959f1cda0ef406b7bce20095 100755 (executable)
@@ -9,12 +9,15 @@ echo_header() {
 }
 
 copy_apks_into_repo() {
-    for f in `ls -1 ../../*/bin/*.apk`; do
+    for f in `find $APKDIR -name '*.apk' | grep -F -v -e unaligned -e unsigned`; do
         name=$(basename $(dirname `dirname $f`))
-        echo "name $name"
-        apk=`aapt d badging "$f" | sed -n "s,^package: name='\(.*\)' versionCode='\([0-9][0-9]*\)' .*,\1_\2.apk,p"`
-        echo "apk $apk"
-        cp -f $f $1/repo/$apk
+        apk=`aapt dump badging "$f" | sed -n "s,^package: name='\(.*\)' versionCode='\([0-9][0-9]*\)' .*,\1_\2.apk,p"`
+        test $f -nt repo/$apk && rm -f repo/$apk  # delete existing if $f is newer
+        if [ ! -e repo/$apk ] && [ ! -e archive/$apk ]; then
+            echo "$f --> repo/$apk"
+            ln $f $1/repo/$apk || \
+                rsync -axv $f $1/repo/$apk # rsync if hard link is not possible
+        fi
     done
 }
 
@@ -34,6 +37,16 @@ create_test_file() {
     mktemp --tmpdir=$WORKSPACE/.testfiles
 }
 
+#------------------------------------------------------------------------------#
+# "main"
+
+if [ $# -ne 1 ]; then
+    echo "Usage: $0 '/path/to/folder/with/apks'"
+    exit 1
+fi
+
+APKDIR=$1
+
 if [ -z $WORKSPACE ]; then
     WORKSPACE=`dirname $(pwd)`
     echo "Setting Workspace to $WORKSPACE"