chiark / gitweb /
buildserver: unpack NDK with a provisioning shell script
authorHans-Christoph Steiner <hans@eds.org>
Wed, 15 Jun 2016 13:02:37 +0000 (15:02 +0200)
committerHans-Christoph Steiner <hans@eds.org>
Wed, 15 Jun 2016 14:35:00 +0000 (16:35 +0200)
This makes the process closer to ./jenkins-build scripts and .gitlab-ci.yml
files.  Hopefully it uses less RAM than chef too.

buildserver/cookbooks/android-ndk/recipes/default.rb [deleted file]
buildserver/provision-android-ndk [new file with mode: 0644]
makebuildserver

diff --git a/buildserver/cookbooks/android-ndk/recipes/default.rb b/buildserver/cookbooks/android-ndk/recipes/default.rb
deleted file mode 100644 (file)
index 506443c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-
-ndk_loc = node[:settings][:ndk_loc]
-user = node[:settings][:user]
-
-script "setup-android-ndk" do
-  timeout 14400
-  interpreter "bash"
-  user node[:settings][:user]
-  cwd "/tmp"
-  code "
-    mkdir -p #{ndk_loc}
-  "
-end
-
-script "setup-android-ndk-r9b" do
-  timeout 14400
-  interpreter "bash"
-  user node[:settings][:user]
-  cwd "/tmp"
-  code "
-    if [ `uname -m` == 'x86_64' ] ; then
-       SUFFIX='_64'
-    else
-       SUFFIX=''
-    fi
-    tar jxvf /vagrant/cache/android-ndk-r9b-linux-x86$SUFFIX.tar.bz2
-    tar jxvf /vagrant/cache/android-ndk-r9b-linux-x86$SUFFIX-legacy-toolchains.tar.bz2
-    mv android-ndk-r9b #{ndk_loc}/r9b
-  "
-  not_if "test -d #{ndk_loc}/r9b"
-end
-
-script "setup-android-ndk-r10e" do
-  timeout 14400
-  interpreter "bash"
-  user node[:settings][:user]
-  cwd "/tmp"
-  code "
-    if [ `uname -m` == 'x86_64' ] ; then
-       SUFFIX='_64'
-    else
-       SUFFIX=''
-    fi
-    cd #{ndk_loc}
-    7zr x /vagrant/cache/android-ndk-r10e-linux-x86$SUFFIX.bin
-    mv android-ndk-r10e r10e
-  "
-  not_if "test -d #{ndk_loc}/r10e"
-end
-
diff --git a/buildserver/provision-android-ndk b/buildserver/provision-android-ndk
new file mode 100644 (file)
index 0000000..3c9b0a6
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+
+set -e
+
+if [ -z $ANDROID_NDK_HOME ]; then
+    echo "ANDROID_NDK_HOME env var must be set!"
+    exit 1
+fi
+
+test -e $ANDROID_NDK_HOME || mkdir -p $ANDROID_NDK_HOME
+cd $ANDROID_NDK_HOME
+
+if [ ! -e $ANDROID_NDK_HOME/r9b ]; then
+    if [ `uname -m` == 'x86_64' ] ; then
+        SUFFIX='_64'
+    else
+        SUFFIX=''
+    fi
+    tar jxvf /vagrant/cache/android-ndk-r9b-linux-x86$SUFFIX.tar.bz2
+    tar jxvf /vagrant/cache/android-ndk-r9b-linux-x86$SUFFIX-legacy-toolchains.tar.bz2
+    mv android-ndk-r9b r9b
+fi
+
+if [ ! -e $ANDROID_NDK_HOME/r10e ]; then
+    if [ `uname -m` == 'x86_64' ] ; then
+       SUFFIX='_64'
+    else
+       SUFFIX=''
+    fi
+    7zr x /vagrant/cache/android-ndk-r10e-linux-x86$SUFFIX.bin > /dev/null
+    mv android-ndk-r10e r10e
+fi
+
+chmod -R a+rX $ANDROID_NDK_HOME/
+find $ANDROID_NDK_HOME/ -type f -executable -print0 | xargs -0 chmod a+x
index 2f9a8ad3d63734219d15e16d22e1b675be38641e..bfe7f149f5dc58d47c620804a424697e9a774f33 100755 (executable)
@@ -386,19 +386,18 @@ vagrantfile += """
     chef.log_level = :debug
     chef.json = {
       :settings => {
-        :ndk_loc => "/home/vagrant/android-ndk",
         :debian_mirror => "%s",
         :ubuntu_trusty => "%s",
         :user => "vagrant"
       }
     }
     chef.add_recipe "fdroidbuild-general"
-    chef.add_recipe "android-ndk"
     chef.add_recipe "gradle"
     chef.add_recipe "kivy"
   end
 
   config.vm.provision "shell", path: "provision-android-sdk"
+  config.vm.provision "shell", path: "provision-android-ndk"
 
 end
 """ % (config['debian_mirror'],