Bug 1411654 - Pre: Update toolchain documents for Android toolchain jobs. r=maliu
authorNick Alexander <nalexander@mozilla.com>
Wed, 15 Nov 2017 13:42:53 -0800
changeset 453610 e7b0cc801cf1406a46f576106f014c74a90d9534
parent 453609 901b304603d9d4816856d560c61387501efceadc
child 453611 d0d513d1c3791cbb7ae24b22699f0663e45943d9
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [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.