Bug 1426244 - 5. Add geckoview-docs job; r=nalexander draft
authorJim Chen <nchen@mozilla.com>
Sat, 13 Jan 2018 17:41:09 -0500
changeset 720174 f1cdef3839748dc09eb42028d3d3a0df972aab56
parent 720173 fcfe0d45b08968ff3371e44e2a3e545ca8a8954f
child 745992 c6ffd29797918c3c053919ecb651d242c301d9f5
push id95466
push userbmo:nchen@mozilla.com
push dateMon, 15 Jan 2018 00:55:47 +0000
reviewersnalexander
bugs1426244
milestone59.0a1
Bug 1426244 - 5. Add geckoview-docs job; r=nalexander Add a geckoview-docs job that executes "./mach android geckoview-docs", which takes care of calling gradle to generate the javadoc archive, and uploading it to Github using given parameters. MozReview-Commit-ID: DTWh4XdFZEO
taskcluster/ci/build/android-stuff.yml
taskcluster/docker/android-build/Dockerfile
testing/mozharness/configs/builds/releng_sub_android_configs/64_geckoview_docs.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
--- a/taskcluster/ci/build/android-stuff.yml
+++ b/taskcluster/ci/build/android-stuff.yml
@@ -201,8 +201,52 @@ android-findbugs/opt:
     optimization:
         skip-unless-changed:
             - "mobile/android/**/*.java"
             - "mobile/android/**/Makefile.in"
             - "mobile/android/config/**"
             - "mobile/android/gradle.configure"
             - "mobile/android/**/moz.build"
             - "**/*.gradle"
+
+android-geckoview-docs/opt:
+    description: "Android GeckoView docs"
+    index:
+        product: mobile
+        job-name: android-geckoview-docs
+    treeherder:
+        platform: android-4-0-armv7-api16/opt
+        kind: build
+        tier: 3
+        symbol: tc-A(gv-docs)
+    run-on-projects: [mozilla-central]
+    worker-type: aws-provisioner-v1/gecko-{level}-b-android
+    worker:
+        docker-image: {in-tree: android-build}
+        env:
+            GRADLE_USER_HOME: "/builds/worker/workspace/build/src/mobile/android/gradle/dotgradle-offline"
+            PERFHERDER_EXTRA_OPTIONS: android-geckoview-docs
+            GECKOVIEW_DOCS_UPLOAD_SECRET: "project/releng/gecko/build/level-{level}/geckoview-docs-upload"
+        artifacts:
+            - name: public/android/geckoview-docs/geckoview-javadoc.jar
+              path: /builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/geckoview/libs/geckoview-javadoc.jar
+              type: file
+        max-run-time: 36000
+    run:
+        using: mozharness
+        actions: [get-secrets build]
+        config:
+            - builds/releng_base_android_64_builds.py
+            - disable_signing.py
+            - platform_supports_post_upload_to_latest.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: android-geckoview-docs
+        tooltool-downloads: internal
+    toolchains:
+        - android-gradle-dependencies
+        - android-sdk-linux
+        - proguard-jar
+    optimization:
+        skip-unless-changed:
+            - "mobile/android/**/*.java"
+            - "mobile/android/gradle.configure"
+            - "**/*.gradle"
--- a/taskcluster/docker/android-build/Dockerfile
+++ b/taskcluster/docker/android-build/Dockerfile
@@ -27,37 +27,34 @@ ENV HOME=/builds/worker \
     DEBIAN_FRONTEND=noninteractive
 
 # Set a default command useful for debugging.
 CMD ["/bin/bash", "--login"]
 
 # Set apt sources list to a snapshot.
 COPY sources.list /etc/apt/
 
-# We need i386 packages for the Android SDK.
-# Once https://bugzilla.mozilla.org/show_bug.cgi?id=1370119 is in-tree, we
-# will have 64-bit builds of everything, and we can then remove this and
-# the :i386 packages we install below.
-RUN dpkg --add-architecture i386
-
 # rsync is required for l10n single locale repacks.  less, screen, and
 # vim, help debugging interactive tasks in Task Cluster.
+# git and openssh-client are used to upload GeckoView javadoc to Github.
 RUN apt-get update -q && \
     apt-get install -yyq --no-install-recommends \
       autoconf2.13 \
       build-essential \
       base-files \
       ca-certificates \
       ccache \
       cmake \
       curl \
       file \
+      git \
       gnupg \
       less \
       make \
+      openssh-client \
       procps \
       python \
       python-cryptography \
       python-dev \
       python-pip \
       python-setuptools \
       python-virtualenv \
       rsync \
@@ -66,20 +63,16 @@ RUN apt-get update -q && \
       tar \
       unzip \
       uuid \
       vim \
       wget \
       xz-utils \
       yasm \
       zip \
-      libstdc++6:i386 \
-      libgcc1:i386 \
-      zlib1g:i386 \
-      libncurses5:i386 \
     && \
     apt-get clean
 
 # %include python/mozbuild/mozbuild/action/tooltool.py
 COPY topsrcdir/python/mozbuild/mozbuild/action/tooltool.py /setup/tooltool.py
 
 # %include testing/mozharness/external_tools/robustcheckout.py
 COPY topsrcdir/testing/mozharness/external_tools/robustcheckout.py /usr/local/mercurial/robustcheckout.py
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_geckoview_docs.py
@@ -0,0 +1,20 @@
+config = {
+    'base_name': 'Android GeckoView docs %(branch)s',
+    'stage_platform': 'android-geckoview-docs',
+    'build_type': 'api-16-opt',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-16-frontend/nightly',
+    'multi_locale_config_platform': 'android',
+    # geckoview-docs doesn't produce a package. So don't collect package metrics.
+    'disable_package_metrics': True,
+    'postflight_build_mach_commands': [
+        ['android',
+         'geckoview-docs',
+         '--archive',
+         '--upload', 'mozilla/geckoview',
+         '--upload-branch', 'gh-pages/javadoc/{project}',
+         '--upload-message', 'Update {project} javadoc to rev {revision}',
+        ],
+    ],
+    'artifact_flag_build_variant_in_try': None, # There's no artifact equivalent.
+    'max_build_output_timeout': 0,
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -440,16 +440,17 @@ class BuildOptionParser(object):
         'x86-old-id': 'builds/releng_sub_%s_configs/%s_x86_old_id.py',
         'x86-artifact': 'builds/releng_sub_%s_configs/%s_x86_artifact.py',
         'api-16-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_16_partner_sample1.py',
         'aarch64': 'builds/releng_sub_%s_configs/%s_aarch64.py',
         'android-test': 'builds/releng_sub_%s_configs/%s_test.py',
         'android-checkstyle': 'builds/releng_sub_%s_configs/%s_checkstyle.py',
         'android-lint': 'builds/releng_sub_%s_configs/%s_lint.py',
         'android-findbugs': 'builds/releng_sub_%s_configs/%s_findbugs.py',
+        'android-geckoview-docs': 'builds/releng_sub_%s_configs/%s_geckoview_docs.py',
         'valgrind' : 'builds/releng_sub_%s_configs/%s_valgrind.py',
         'artifact': 'builds/releng_sub_%s_configs/%s_artifact.py',
         'debug-artifact': 'builds/releng_sub_%s_configs/%s_debug_artifact.py',
         'devedition': 'builds/releng_sub_%s_configs/%s_devedition.py',
         'dmd': 'builds/releng_sub_%s_configs/%s_dmd.py',
     }
     build_pool_cfg_file = 'builds/build_pool_specifics.py'
     branch_cfg_file = 'builds/branch_specifics.py'