This container formerly defined a special Gradle project for fetching
dependencies. This patch lays the ground-work to use the in-tree
Gradle project instead. Using the in-tree project looks like first
starting a local Nexus repository to collect downloaded dependencies
(before.sh); then running a build which populates that repository; and
then packaging up the downloaded dependencies (after.sh). The patch
after this will define the build which populates the repository.
Sadly there's no easy way to *inherit* from desktop-build, so this is
a copy-paste-modify clone.
MozReview-Commit-ID: Dd5Hj8hkJVk
--HG--
extra : rebase_source : dcfe245b23eb28e99b1506eebe053142c9e242b3
extra : histedit_source : f21014636de958c5ddf27ca2a1eb156e3c88bd78
We can't run Docker-in-Docker, so this is a clone of
https://hub.docker.com/r/sonatype/nexus, modified to run additional
commands. Sonatype Nexus officially supports the Oracle JDK but the
OpenJDK appears to work as well, so we use it.
This bakes a build.sh and Gradle-specific dependencies into the docker
image. This makes sense in a future where the dependencies this
fetches are baked into the image used to build Fennec. It makes less
sense right now, when the dependencies are uploaded to tooltool and
subsequently consumed. It's not critical that we get this right
immediately.
The actual build.sh script runs the Gradle wrapper for a special
dependency project. The wrapper installs Gradle itself, downloads a
large number of Gradle dependencies, and uses Jake Wharton's
https://github.com/JakeWharton/sdk-manager-plugin/ to download and
install the Android SDK. (We could use |mach bootstrap|, but that
doesn't (yet) support non-interactive use, and I want to try to use
the SDK Manager more generally.) These outputs are then packaged for
further use: right now, they're exposed as artifacts, but eventually
we'll upload them directly to tooltool.
MozReview-Commit-ID: 7upsk1ANuxN
--HG--
rename : testing/docker/desktop-build/Dockerfile => testing/docker/android-gradle-build/Dockerfile
extra : source : 123c802d928a9a02040cc3316988d9b59db0ea45
On a CLOSED TREE.
Backed out changeset 2b079941a33c (bug 1247170)
Backed out changeset 123c802d928a (bug 1247170)
MozReview-Commit-ID: Bt504gHC8iP
--HG--
extra : rebase_source : 806755099be27b0b14ecdc9bda8957b04a36bd4f
We can't run Docker-in-Docker, so this is a clone of
https://hub.docker.com/r/sonatype/nexus, modified to run additional
commands. Sonatype Nexus officially supports the Oracle JDK but the
OpenJDK appears to work as well, so we use it.
This bakes a build.sh and Gradle-specific dependencies into the docker
image. This makes sense in a future where the dependencies this
fetches are baked into the image used to build Fennec. It makes less
sense right now, when the dependencies are uploaded to tooltool and
subsequently consumed. It's not critical that we get this right
immediately.
The actual build.sh script runs the Gradle wrapper for a special
dependency project. The wrapper installs Gradle itself, downloads a
large number of Gradle dependencies, and uses Jake Wharton's
https://github.com/JakeWharton/sdk-manager-plugin/ to download and
install the Android SDK. (We could use |mach bootstrap|, but that
doesn't (yet) support non-interactive use, and I want to try to use
the SDK Manager more generally.) These outputs are then packaged for
further use: right now, they're exposed as artifacts, but eventually
we'll upload them directly to tooltool.
MozReview-Commit-ID: 7upsk1ANuxN
--HG--
rename : testing/docker/desktop-build/Dockerfile => testing/docker/android-gradle-build/Dockerfile
extra : rebase_source : 816a220579f8cd04699e95cfd1f77b046474d717
extra : histedit_source : 715f17c6eb43084adf88f823d59af80d12a68958