diff --git a/b2g/config/aries/config.json b/b2g/config/aries/config.json index a963a62a97dd..1902a3000145 100644 --- a/b2g/config/aries/config.json +++ b/b2g/config/aries/config.json @@ -45,7 +45,7 @@ "gecko_l10n_root": "https://hg.mozilla.org/l10n-central", "gaia": { "l10n": { - "vcs": "hgtool", + "vcs": "hg", "root": "https://hg.mozilla.org/gaia-l10n" } } diff --git a/b2g/config/aries/releng-aries.manifest b/b2g/config/aries/releng-aries.manifest index 7179957e1181..a1276ffe34a6 100644 --- a/b2g/config/aries/releng-aries.manifest +++ b/b2g/config/aries/releng-aries.manifest @@ -1,5 +1,22 @@ [ { +"version": "Android NDK r11b for B2G", +"algorithm": "sha512", +"visibility": "internal", +"filename": "android-ndk-b2g.tar.xz", +"unpack": true, +"digest": "bc37c6b2e38f4ff19e3326786312d8f893600e155d35dfba45163bd909e022db852b9c6920863cb498bbe7da8b86a6a387fa024bc9444ce3a8d1715cf2c24b21", +"size": 292442020 +}, +{ +"algorithm": "sha512", +"visibility": "internal", +"filename": "backup-aries_23.0.1.A.5.77.tar.xz", +"unpack": true, +"digest": "79c8e390e88cc4765ff7f5f29f3d5337c9037b7eb9414006947d38d34acefdbcf7090c18a366948c682b1c2c9d9ef51012e7be44daa28fdde7b837ade647c257", +"size": 227555180 +}, +{ "version": "gcc 4.8.5 + PR64905", "size": 80160264, "digest": "c1a9dc9da289b8528874d16300b9d13a997cec99195bb0bc46ff665216d8535d6d6cb5af6b4b1f2749af6815dab12e703fdb3849014e5c23a70eff351a0baf4e", diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index e0f83fc2406d..c003106bc369 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -6,23 +6,21 @@ - - + - - + - - + + diff --git a/b2g/config/nexus-5-l/config.json b/b2g/config/nexus-5-l/config.json index 21fc9361f67a..7b8bada40221 100644 --- a/b2g/config/nexus-5-l/config.json +++ b/b2g/config/nexus-5-l/config.json @@ -48,7 +48,7 @@ "gecko_l10n_root": "https://hg.mozilla.org/l10n-central", "gaia": { "l10n": { - "vcs": "hgtool", + "vcs": "hg", "root": "https://hg.mozilla.org/gaia-l10n" } } diff --git a/b2g/config/nexus-5-l/releng-nexus5.manifest b/b2g/config/nexus-5-l/releng-nexus5.manifest index 40720bbe9227..f7851b4e3724 100644 --- a/b2g/config/nexus-5-l/releng-nexus5.manifest +++ b/b2g/config/nexus-5-l/releng-nexus5.manifest @@ -1,8 +1,19 @@ -[{ +[ +{ +"version": "Android NDK r11b for B2G", +"algorithm": "sha512", +"visibility": "internal", +"filename": "android-ndk-b2g.tar.xz", +"unpack": true, +"digest": "bc37c6b2e38f4ff19e3326786312d8f893600e155d35dfba45163bd909e022db852b9c6920863cb498bbe7da8b86a6a387fa024bc9444ce3a8d1715cf2c24b21", +"size": 292442020 +}, +{ "version": "gcc 4.8.5 + PR64905", "size": 80160264, "digest": "c1a9dc9da289b8528874d16300b9d13a997cec99195bb0bc46ff665216d8535d6d6cb5af6b4b1f2749af6815dab12e703fdb3849014e5c23a70eff351a0baf4e", "algorithm": "sha512", "filename": "gcc.tar.xz", "unpack": "True" -}] +} +] diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index c381b7cfb235..03a11da9df38 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -6,23 +6,21 @@ - - + - - + - - + + diff --git a/taskcluster/ci/docker-image/kind.yml b/taskcluster/ci/docker-image/kind.yml index 2c05054bb3fb..7ca6ab5a1ba7 100644 --- a/taskcluster/ci/docker-image/kind.yml +++ b/taskcluster/ci/docker-image/kind.yml @@ -17,3 +17,4 @@ images: - tester - lint - android-gradle-build + - phone-builder diff --git a/taskcluster/ci/legacy/tasks/builds/b2g_aries_eng.yml b/taskcluster/ci/legacy/tasks/builds/b2g_aries_eng.yml index 05a6ec28f94d..c1b66b5dd0bc 100644 --- a/taskcluster/ci/legacy/tasks/builds/b2g_aries_eng.yml +++ b/taskcluster/ci/legacy/tasks/builds/b2g_aries_eng.yml @@ -7,6 +7,8 @@ task: scopes: - 'docker-worker:cache:level-{{level}}-{{project}}-build-aries-eng' - 'docker-worker:cache:level-{{level}}-{{project}}-build-aries-eng-objdir-gecko' + - 'docker-worker:relengapi-proxy:tooltool.download.internal' + - 'docker-worker:relengapi-proxy:tooltool.download.public' metadata: name: '[TC] B2G Aries Eng' @@ -14,9 +16,10 @@ task: cache: level-{{level}}-{{project}}-build-aries-eng: /home/worker/workspace level-{{level}}-{{project}}-build-aries-eng-objdir-gecko: /home/worker/objdir-gecko + features: + relengAPIProxy: true env: TARGET: 'aries' - MOZHARNESS_CONFIG: b2g/taskcluster-phone-eng.py extra: treeherderEnv: - production diff --git a/taskcluster/ci/legacy/tasks/builds/b2g_nexus_5l_eng.yml b/taskcluster/ci/legacy/tasks/builds/b2g_nexus_5l_eng.yml index cf5e4e2d24d5..2d5b50cc3208 100644 --- a/taskcluster/ci/legacy/tasks/builds/b2g_nexus_5l_eng.yml +++ b/taskcluster/ci/legacy/tasks/builds/b2g_nexus_5l_eng.yml @@ -8,20 +8,18 @@ task: scopes: - 'docker-worker:cache:level-{{level}}-{{project}}-build-nexus-5-l-eng' - 'docker-worker:cache:level-{{level}}-{{project}}-build-nexus-5-l-eng-objdir-gecko' + - 'docker-worker:relengapi-proxy:tooltool.download.internal' + - 'docker-worker:relengapi-proxy:tooltool.download.public' metadata: name: '[TC] B2G Nexus 5-L Eng' payload: cache: level-{{level}}-{{project}}-build-nexus-5-l-eng: /home/worker/object-folder level-{{level}}-{{project}}-build-nexus-5-l-eng-objdir-gecko: /home/worker/objdir-gecko + features: + relengAPIProxy: true env: TARGET: 'nexus-5-l' - DEBUG: 0 - command: - - > - checkout-gecko workspace && - cd ./workspace/gecko/taskcluster/scripts/phone-builder && - buildbot_step 'Build' ./build-phone.sh $HOME/workspace extra: treeherderEnv: - production diff --git a/taskcluster/ci/legacy/tasks/builds/b2g_phone_eng_base.yml b/taskcluster/ci/legacy/tasks/builds/b2g_phone_eng_base.yml index 310a14f8019d..d9a2f5f6aaa1 100644 --- a/taskcluster/ci/legacy/tasks/builds/b2g_phone_eng_base.yml +++ b/taskcluster/ci/legacy/tasks/builds/b2g_phone_eng_base.yml @@ -13,6 +13,7 @@ task: MOZ_CRASHREPORTER_NO_REPORT: '1' GAIA_KEYBOARD_LAYOUTS: 'en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,zh-Hant-Zhuyin,en-Dvorak' B2G_UPDATE_CHANNEL: 'default' + MOZHARNESS_CONFIG: b2g/taskcluster-phone-eng.py command: - > checkout-gecko workspace && diff --git a/taskcluster/ci/legacy/tasks/phone_build.yml b/taskcluster/ci/legacy/tasks/phone_build.yml index 1f6cb95e325c..0d0c83cb1b63 100644 --- a/taskcluster/ci/legacy/tasks/phone_build.yml +++ b/taskcluster/ci/legacy/tasks/phone_build.yml @@ -2,7 +2,7 @@ # provide. --- taskId: {{build_slugid}} - +docker-image: phone-builder task: created: '{{now}}' deadline: '{{#from_now}}24 hours{{/from_now}}' @@ -25,10 +25,13 @@ task: # Nearly all of our build tasks use tc-vcs so just include the scope across # the board. - 'docker-worker:cache:level-{{level}}-{{project}}-tc-vcs' - - 'docker-worker:image:{{#docker_image}}phone-builder{{/docker_image}}' payload: - image: '{{#docker_image}}phone-builder{{/docker_image}}' + image: + type: 'task-image' + path: 'public/image.tar' + taskId: + task-reference: "" # One hour is a good value for most builds maxRunTime: 3600 diff --git a/taskcluster/scripts/phone-builder/pre-build.sh b/taskcluster/scripts/phone-builder/pre-build.sh index 000e7ef444b6..fea9eae2a859 100755 --- a/taskcluster/scripts/phone-builder/pre-build.sh +++ b/taskcluster/scripts/phone-builder/pre-build.sh @@ -31,16 +31,3 @@ if [ 0$B2G_DEBUG -ne 0 ]; then debug_flag='--debug' fi -if ! aws --output=text s3 ls s3://b2g-phone-backups/; then - echo "[aws:error] Failed to connect to AWS! Are the AWS credentials ok?" - exit 1 -fi - -backup_file=$(aws --output=text s3 ls s3://b2g-phone-backups/$TARGET/ | tail -1 | awk '{print $NF}') - -if echo $backup_file | grep '\.tar\.bz2'; then - aws s3 cp s3://b2g-phone-backups/$TARGET/$backup_file . - tar -xjf $backup_file -C $WORKSPACE/B2G - rm -f $backup_file -fi - diff --git a/testing/docker/phone-builder/Dockerfile b/testing/docker/phone-builder/Dockerfile index 82f3bfc10e63..c45c3dbcc049 100644 --- a/testing/docker/phone-builder/Dockerfile +++ b/testing/docker/phone-builder/Dockerfile @@ -1,17 +1,14 @@ FROM taskcluster/builder:0.5.13 MAINTAINER Wander Lairson Costa -ENV SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE /home/worker/socorro.token - # Add utilities and configuration ADD bin /home/worker/bin -ADD config /home/worker/.aws/config -ADD socorro.token /home/worker/socorro.token + +# Builds need the share module enabled +ADD hgrc /home/worker/.hgrc +RUN chown -R worker:worker /home/worker/.hgrc RUN yum install -y bc lzop java-1.7.0-openjdk RUN pip install awscli RUN npm install -g bower gulp apm grunt-cli -# Set a default command useful for debugging -ENTRYPOINT ["validate_task.py"] - diff --git a/testing/docker/phone-builder/REGISTRY b/testing/docker/phone-builder/REGISTRY deleted file mode 100644 index fc410bd6571b..000000000000 --- a/testing/docker/phone-builder/REGISTRY +++ /dev/null @@ -1 +0,0 @@ -taskclusterprivate diff --git a/testing/docker/phone-builder/VERSION b/testing/docker/phone-builder/VERSION deleted file mode 100644 index c4475d3bb782..000000000000 --- a/testing/docker/phone-builder/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.0.26 diff --git a/testing/docker/phone-builder/build.sh b/testing/docker/phone-builder/build.sh deleted file mode 100755 index 8a5e598a887f..000000000000 --- a/testing/docker/phone-builder/build.sh +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/bash -e - -while getopts "t:i:k:s:" arg; do - case $arg in - t) - TAG=$OPTARG - ;; - i) - AWS_ACCESS_KEY_ID=$OPTARG - ;; - k) - AWS_SECRET_ACCESS_KEY=$OPTARG - ;; - s) - SOCORRO_TOKEN=$OPTARG - ;; - esac -done - -pushd $(dirname $0) - -test $TAG -test $AWS_ACCESS_KEY_ID -test $AWS_SECRET_ACCESS_KEY -test $SOCORRO_TOKEN - -(echo '[default]' -echo "aws_access_key_id = $AWS_ACCESS_KEY_ID" -echo "aws_secret_access_key = $AWS_SECRET_ACCESS_KEY") > config - -echo $SOCORRO_TOKEN > socorro.token - -docker build -t $TAG . -rm -f config -rm -f socorro.token - -popd diff --git a/testing/docker/phone-builder/hgrc b/testing/docker/phone-builder/hgrc new file mode 100644 index 000000000000..8ba4cf6680a2 --- /dev/null +++ b/testing/docker/phone-builder/hgrc @@ -0,0 +1,4 @@ +[extensions] +share = +[ui] +username = TaskCluster diff --git a/testing/mozharness/configs/b2g/taskcluster-phone-eng.py b/testing/mozharness/configs/b2g/taskcluster-phone-eng.py index 578e8b50e1f9..1829f358831c 100644 --- a/testing/mozharness/configs/b2g/taskcluster-phone-eng.py +++ b/testing/mozharness/configs/b2g/taskcluster-phone-eng.py @@ -1,11 +1,15 @@ #!/usr/bin/env python + +HG_SHARE_BASE_DIR = "/builds/hg-shared" + config = { + # mozharness script options + "vcs_share_base": HG_SHARE_BASE_DIR, "default_vcs": "tc-vcs", "default_actions": [ 'checkout-sources', 'get-blobs', 'build', - 'build-symbols', 'prep-upload' ], "upload": { @@ -19,6 +23,9 @@ config = { "B2G_PATH": "%(work_dir)s", "BOWER_FLAGS": "--allow-root", "WGET_OPTS": "-c -q", + "HG_SHARE_BASE_DIR": HG_SHARE_BASE_DIR, + "B2G_ANDROID_NDK_PATH": "%(b2g_repo)s/android-ndk", + "ANDROIDFS_DIR": "%(b2g_repo)s/backup-%(b2g_target)s", }, "is_automation": True, "repo_remote_mappings": { @@ -32,4 +39,5 @@ config = { 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace', }, "download_tooltool": True, + "tooltool_servers": ['http://relengapi/tooltool/'], } diff --git a/testing/mozharness/mozharness/mozilla/building/buildb2gbase.py b/testing/mozharness/mozharness/mozilla/building/buildb2gbase.py index c6adc57b5513..468edb5fabe3 100644 --- a/testing/mozharness/mozharness/mozilla/building/buildb2gbase.py +++ b/testing/mozharness/mozharness/mozilla/building/buildb2gbase.py @@ -161,6 +161,8 @@ class B2GBuildBaseScript(BuildbotMixin, MockMixin, 'work_dir': abs_dirs['abs_work_dir'], 'b2g_src': abs_dirs['abs_work_dir'], 'abs_tools_dir': os.path.join(abs_dirs['abs_work_dir'], 'build-tools'), + 'b2g_repo': self.config['repo'], + 'b2g_target': self.config['target'], } abs_dirs.update(dirs) diff --git a/testing/mozharness/scripts/b2g_build.py b/testing/mozharness/scripts/b2g_build.py index 01c144df400a..fcd3364d6f30 100755 --- a/testing/mozharness/scripts/b2g_build.py +++ b/testing/mozharness/scripts/b2g_build.py @@ -438,7 +438,7 @@ class B2GBuild(LocalesMixin, PurgeMixin, repo = self.config['compare_locales_repo'] rev = self.config['compare_locales_rev'] vcs = self.config['compare_locales_vcs'] - abs_rev = self.vcs_checkout(repo=repo, dest=dest, revision=rev, vcs=vcs) + abs_rev = self.vcs_checkout(repo=repo, dest=dest, branch=rev, vcs=vcs) self.set_buildbot_property('compare_locales_revision', abs_rev, write_to_file=True) def query_do_translate_hg_to_git(self, gecko_config_key=None):