Bug 1412006 - part 3 - add an Android NDK repackaging task; r=dustin,nalexander; f=glandium

We'd like to install the NDK through the Android SDK manager.  But we
can't pin versions of the NDK with the SDK manager, and so Google
can silently upgrade the NDK on us.  Since that is undesirable, this is
the next best thing.

With the toolchain task in hand, we can make all the relevant tasks
depend on the toolchain task and remove the download of the NDK from
tooltool as well.
This commit is contained in:
Nathan Froyd 2018-02-01 09:59:23 -05:00
Родитель a65d0b5a21
Коммит 38a5bb5c84
5 изменённых файлов: 55 добавлений и 18 удалений

Просмотреть файл

@ -1,13 +1,4 @@
[ [
{
"version": "Android NDK r15c + LLVM",
"size": 403602514,
"visibility": "internal",
"digest": "8515b8f615935e9ee81c1ada55ec46a9ebd46ca095b33bf2bf34d794b7737ffa8f32b4e3f410d3f63e2f2510fef7a5836a72c34b942a0687af8ca5a5d50efdb6",
"algorithm": "sha512",
"filename": "android-ndk.tar.bz2",
"unpack": true
},
{ {
"size": 6856444, "size": 6856444,
"visibility": "public", "visibility": "public",

Просмотреть файл

@ -1,13 +1,4 @@
[ [
{
"version": "Android NDK r15c + LLVM",
"size": 403602514,
"visibility": "internal",
"digest": "8515b8f615935e9ee81c1ada55ec46a9ebd46ca095b33bf2bf34d794b7737ffa8f32b4e3f410d3f63e2f2510fef7a5836a72c34b942a0687af8ca5a5d50efdb6",
"algorithm": "sha512",
"filename": "android-ndk.tar.bz2",
"unpack": true
},
{ {
"size": 6856444, "size": 6856444,
"visibility": "public", "visibility": "public",

Просмотреть файл

@ -39,6 +39,7 @@ android-api-16/debug:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -91,6 +92,7 @@ android-x86/opt:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -149,6 +151,7 @@ android-x86-nightly/opt:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -196,6 +199,7 @@ android-api-16/opt:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -298,6 +302,7 @@ android-api-16-nightly/opt:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -351,6 +356,7 @@ android-x86-old-id/opt:
run-on-projects: ['mozilla-central'] run-on-projects: ['mozilla-central']
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -408,6 +414,7 @@ android-x86-old-id-nightly/opt:
run-on-projects: ['mozilla-central'] run-on-projects: ['mozilla-central']
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -456,6 +463,7 @@ android-api-16-old-id/opt:
run-on-projects: ['mozilla-central'] run-on-projects: ['mozilla-central']
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -508,6 +516,7 @@ android-api-16-old-id-nightly/opt:
run-on-projects: ['mozilla-central'] run-on-projects: ['mozilla-central']
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -554,6 +563,7 @@ android-api-16-gradle/opt:
custom-build-variant-cfg: api-16-gradle custom-build-variant-cfg: api-16-gradle
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -601,6 +611,7 @@ android-aarch64/opt:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android
@ -654,6 +665,7 @@ android-aarch64-nightly/opt:
tooltool-downloads: internal tooltool-downloads: internal
toolchains: toolchains:
- android-gradle-dependencies - android-gradle-dependencies
- android-ndk-linux
- android-sdk-linux - android-sdk-linux
- linux64-clang - linux64-clang
- linux64-rust-android - linux64-rust-android

Просмотреть файл

@ -301,6 +301,29 @@ linux64-android-sdk-linux-repack:
toolchain-artifact: project/gecko/android-sdk/android-sdk-linux.tar.xz toolchain-artifact: project/gecko/android-sdk/android-sdk-linux.tar.xz
toolchain-alias: android-sdk-linux toolchain-alias: android-sdk-linux
linux64-android-ndk-linux-repack:
description: "Android NDK (Linux) repack toolchain build"
treeherder:
kind: build
platform: toolchains/opt
symbol: TL(android-ndk-linux)
tier: 1
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: android-build}
max-run-time: 1800
artifacts:
- name: project/gecko/android-ndk
path: /builds/worker/project/gecko/android-ndk/
type: directory
run:
using: toolchain-script
script: repack-android-ndk-linux.sh
resources:
- 'python/mozboot/**/*android*'
toolchain-artifact: project/gecko/android-ndk/android-ndk.tar.xz
toolchain-alias: android-ndk-linux
linux64-android-gradle-dependencies: linux64-android-gradle-dependencies:
description: "Android Gradle dependencies toolchain task" description: "Android Gradle dependencies toolchain task"
treeherder: treeherder:

Просмотреть файл

@ -0,0 +1,20 @@
#!/bin/bash
set -x -e -v
# This script is for fetching and repacking the Android NDK (for
# Linux), the tools required to produce native Android programs.
WORKSPACE=$HOME/workspace
UPLOAD_DIR=$HOME/project/gecko/android-ndk
mkdir -p $HOME/artifacts $UPLOAD_DIR
# Populate /builds/worker/.mozbuild/android-ndk-$VER.
cd /builds/worker/workspace/build/src
./mach python python/mozboot/mozboot/android.py --ndk-only --no-interactive
# Don't generate a tarball with a versioned NDK directory.
mv $HOME/.mozbuild/android-ndk-* $HOME/.mozbuild/android-ndk
tar cf - -C /builds/worker/.mozbuild android-ndk | xz > $UPLOAD_DIR/android-ndk.tar.xz
ls -al $UPLOAD_DIR