Bug 1335370 - signing_scriptworker: install Android build tools r=aki draft
authorJohan Lorenzo <jlorenzo@mozilla.com>
Thu, 09 Feb 2017 08:52:12 -0500
changeset 4758 dae3f8be20f3e92f39c2eabc4efeca8a82fd2867
parent 4754 e2a394ea0eca1538b434d5cc4256ac404597e382
push id2588
push userbmo:jlorenzo@mozilla.com
push dateThu, 09 Feb 2017 18:20:05 +0000
reviewersaki
bugs1335370
Bug 1335370 - signing_scriptworker: install Android build tools r=aki MozReview-Commit-ID: 8Feu6vTzrD0
modules/packages/manifests/mozilla/android_sdk.pp
modules/signing_scriptworker/manifests/init.pp
modules/signing_scriptworker/templates/script_config.json.erb
new file mode 100644
--- /dev/null
+++ b/modules/packages/manifests/mozilla/android_sdk.pp
@@ -0,0 +1,48 @@
+define packages::mozilla::android_sdk(
+    $basedir = '/tools/android-sdk',
+    $build_tools_version = "$title",
+    $zipalign_location = "$basedir/build-tools/$build_tools_version/zipalign",
+
+    $username,
+    $group,
+) {
+  $archive_file_name = "android-sdk-linux_build-tools-$build_tools_version.tar.xz"
+  $archive_location = "$basedir/$archive_file_name"
+
+  File {
+    mode      => 640,
+    owner     => $username,
+    group     => $group,
+    show_diff => false,
+  }
+
+  file {
+    $basedir:
+      ensure => directory;
+
+    $archive_location:
+      ensure  => file,
+      source  => "puppet:///repos$p/ZIPs/$archive_file_name";
+  }
+
+  exec {
+    "/bin/tar xvf $archive_location --strip-components=1":  # strip-components removes the first directory called "android-sdk-linux"
+      creates => $zipalign_location,
+      cwd     => $basedir,
+      group   => $group,
+      require => File[$archive_location],
+      user    => $username;
+  }
+
+  case $::operatingsystem {
+    CentOS: {
+      package {
+          [ 'glibc.i686', 'zlib.i686', 'libstdc++.i686' ]:
+              ensure => latest;
+      }
+    }
+    default: {
+      fail("cannot install on $::operatingsystem")
+    }
+  }
+}
--- a/modules/signing_scriptworker/manifests/init.pp
+++ b/modules/signing_scriptworker/manifests/init.pp
@@ -5,16 +5,19 @@ class signing_scriptworker {
     include packages::mozilla::python35
     include users::signer
     include tweaks::swap_on_instance_storage
     include packages::gcc
     include packages::make
 
     # because puppet barfs whenever I try to put it in settings.pp
     $verbose_logging = true
+    $build_tools_version = '23.0.3'
+    # See value defined in packages::mozilla::android_sdk
+    $zipalign_location = "/tools/android-sdk/build-tools/$build_tools_version/zipalign"
 
     python35::virtualenv {
         "${signing_scriptworker::settings::root}":
             python3  => "${packages::mozilla::python35::python3}",
             require  => Class["packages::mozilla::python35"],
             user     => "${users::signer::username}",
             group    => "${users::signer::group}",
             mode     => 700,
@@ -38,17 +41,17 @@ class signing_scriptworker {
                   "ptyprocess==0.5.1",
                   "pycrypto==2.6.1",
                   "pyparsing==2.1.10",
                   "python-dateutil==2.6.0",
                   "python-gnupg==0.4.0",
                   "python-jose==1.3.2",
                   "requests==2.13.0",
                   "scriptworker==2.1.1",
-                  "signingscript==0.9.0",
+                  "signingscript==0.10.1",
                   "signtool==2.0.3",
                   "six==1.10.0",
                   "slugid==1.0.7",
                   "taskcluster==1.0.2",
                   "virtualenv==15.1.0",
                   "yarl==0.8.1",
             ];
     }
@@ -103,9 +106,16 @@ class signing_scriptworker {
             show_diff   => true;
         "${signing_scriptworker::settings::root}/file_age_check_required.txt":
             mode        => 640,
             owner       => "${users::signer::username}",
             group       => "${users::signer::group}",
             source      => "puppet:///modules/signing_scriptworker/file_age_check_required.txt",
             show_diff   => true;
     }
+
+    packages::mozilla::android_sdk {
+      $build_tools_version:
+        username          => $users::signer::username,
+        group             => $users::signer::group,
+        zipalign_location => $zipalign_location;
+    }
 }
--- a/modules/signing_scriptworker/templates/script_config.json.erb
+++ b/modules/signing_scriptworker/templates/script_config.json.erb
@@ -3,10 +3,11 @@
     "artifact_dir": "<%= scope.lookupvar("signing_scriptworker::settings::root") %>/artifacts",
 
     "my_ip": "<%= @ipaddress %>",
     "signing_server_config": "<%= scope.lookupvar("signing_scriptworker::settings::root") %>/passwords.json",
     "ssl_cert": "<%= scope.lookupvar("signing_scriptworker::settings::root") %>/lib/python3.5/site-packages/signingscript/data/host.cert",
     "schema_file": "<%= scope.lookupvar("signing_scriptworker::settings::root") %>/lib/python3.5/site-packages/signingscript/data/signing_task_schema.json",
 
     "signtool": "<%= scope.lookupvar("signing_scriptworker::settings::root") %>/bin/signtool",
-    "verbose": <%= @verbose_logging %>
+    "verbose": <%= @verbose_logging %>,
+    "zipalign": "<%= @zipalign_location %>"
 }