Bug 1411654 - Pre: Update toolchain documents for Android toolchain jobs. r=maliu draft
authorNick Alexander <nalexander@mozilla.com>
Wed, 15 Nov 2017 13:42:53 -0800
changeset 749689 59db336b0fb2e97f3ecc57039d341facd9ada7d6
parent 749688 0bf39a7d8daddc9a5c74182cf266f5d01d17acc8
child 749690 433e263827a38994b5d7e4151366767dc5d04819
push id97470
push usernalexander@mozilla.com
push dateWed, 31 Jan 2018 21:14:34 +0000
reviewersmaliu
bugs1411654
milestone60.0a1
Bug 1411654 - Pre: Update toolchain documents for Android toolchain jobs. r=maliu MozReview-Commit-ID: 9h0imqIYyaZ
build/docs/toolchains.rst
--- a/build/docs/toolchains.rst
+++ b/build/docs/toolchains.rst
@@ -65,47 +65,43 @@ an internal Mozilla server.  The build a
 verify, and extract these archive before building.  These archives
 provide a self-contained Gradle and Maven repository so that machines
 don't need to fetch additional Maven dependencies at build time.
 (Gradle and the downloaded Maven dependencies can be both
 redistributed publicly.)
 
 Archiving the Gradle executable is straight-forward, but archiving a
 local Maven repository is not.  Therefore a special Task Cluster
-Docker image and job exist for producing the required archives.  The
-Docker image definition is rooted in
-``taskcluster/docker/android-build``.  The Task Cluster job
-definition is in
-``testing/taskcluster/tasks/builds/android_api_16_gradle_dependencies.yml``.
-The job runs in a container based on the custom Docker image and
-spawns a Sonatype Nexus proxying Maven repository process in the
-background.  The job builds Firefox for Android using Gradle and the
-in-tree Gradle configuration rooted at ``build.gradle``.  The spawned
-proxying Maven repository downloads external dependencies and collects
-them.  After the Gradle build completes, the job archives the Gradle
-version used to build, and the downloaded Maven repository, and
-exposes them as Task Cluster artifacts.
-
-Here is `an example try job fetching these dependencies
-<https://treeherder.mozilla.org/#/jobs?repo=try&revision=75bc98935147&selectedJob=17793653>`_.
-The resulting task produced a `Gradle archive
-<https://queue.taskcluster.net/v1/task/CeYMgAP3Q-KF8h37nMhJjg/runs/0/artifacts/public%2Fbuild%2Fgradle.tar.xz>`_
-and a `Maven repository archive
-<https://queue.taskcluster.net/v1/task/CeYMgAP3Q-KF8h37nMhJjg/runs/0/artifacts/public%2Fbuild%2Fjcentral.tar.xz>`_.
-These archives were then uploaded (manually) to Mozilla automation
-using tooltool for consumption in Gradle builds.
+Docker image and toolchain job exist for producing the required
+archives.  The Docker image definition is rooted in
+``taskcluster/docker/android-build``.  The Task Cluster toolchain job
+is named `android-gradle-dependencies`.  The job runs in a container
+based on the custom Docker image and spawns a Sonatype Nexus proxying
+Maven repository process in the background.  The job builds Firefox
+for Android using Gradle and the in-tree Gradle configuration rooted
+at ``build.gradle``.  The spawned proxying Maven repository downloads
+external dependencies and collects them.  After the Gradle build
+completes, the job archives the Gradle version used to build, and the
+downloaded Maven repository, and exposes them as Task Cluster
+artifacts.
 
 To update the version of Gradle in the archive produced, update
 ``gradle/wrapper/gradle-wrapper.properties``.  Be sure to also update
 the SHA256 checksum to prevent poisoning the build machines!
 
 To update the versions of Gradle dependencies used, update
 ``dependencies`` sections in the in-tree Gradle configuration rooted
 at ``build.gradle``.  Once you are confident your changes build
-locally, push a fresh try build with an invocation like::
+locally, push a fresh build to try.  The `android-gradle-dependencies`
+toolchain should run automatically, fetching your new dependencies and
+wiring them into the appropriate try build jobs.
 
-   $ hg push-to-try -m "try: -b o -p android-api-16-gradle-dependencies"
+To update the version of Sonatype Nexus, update `NEXUS_VERSION` in the
+`android-build` Docker image.
 
-Then `upload your archives to tooltool
-<https://wiki.mozilla.org/ReleaseEngineering/Applications/Tooltool#How_To_Upload_To_Tooltool>`_,
-update the in-tree manifests in
-``mobile/android/config/tooltool-manifests``, and push a fresh try
-build.
+To modify the Sonatype Nexus configuration, typically to proxy a new
+remote Maven repository, modify
+`taskcluster/scripts/misc/android-gradle-dependencies/nexus.xml`.
+
+There is also a toolchain job that fetches the Android SDK and related
+packages.  To update the versions of packaged fetched, modify
+`python/mozboot/mozboot/android-packages.txt` and update the various
+in-tree versions accordingly.