Bug 1411654 - Pre: Update toolchain documents for Android toolchain jobs. r=maliu
☠☠ backed out by 64f824603458 ☠ ☠
authorNick Alexander <nalexander@mozilla.com>
Wed, 15 Nov 2017 13:42:53 -0800
changeset 450890 43787f4089c39d64bd0955a54d469f374ebd4494
parent 450889 9141bbdfd13bc14c8781ebfe0eeb9044f441b716
child 450891 bffb6a5b78d13240ee3201d273a72a67a56270f5
push id8543
push userryanvm@gmail.com
push dateTue, 16 Jan 2018 14:33:22 +0000
treeherdermozilla-beta@a6525ed16a32 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmaliu
bugs1411654
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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.