diff --git a/testing/docker/builder/Dockerfile b/testing/docker/builder/Dockerfile index 77c9ce6f9b2..56bd625e91c 100644 --- a/testing/docker/builder/Dockerfile +++ b/testing/docker/builder/Dockerfile @@ -21,7 +21,7 @@ RUN git config --global user.email "mozilla@example.com" && \ git config --global user.name "mozilla" # VCS Tools -RUN npm install -g taskcluster-vcs@2.3.4 +RUN npm install -g taskcluster-vcs@2.3.5 # TODO enable worker # TODO volume mount permissions will be an issue diff --git a/testing/docker/phone-builder/Dockerfile b/testing/docker/phone-builder/Dockerfile index bff90e9ec1e..e82cbbea9c6 100644 --- a/testing/docker/phone-builder/Dockerfile +++ b/testing/docker/phone-builder/Dockerfile @@ -4,9 +4,10 @@ MAINTAINER Wander Lairson Costa # Add utilities and configuration ADD bin /home/worker/bin ADD config /home/worker/.aws/config -ADD system-setup.sh /tmp/system-setup.sh -RUN /tmp/system-setup.sh +RUN yum install -y bc lzop +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/VERSION b/testing/docker/phone-builder/VERSION index 8cbf02c396d..43b29618309 100644 --- a/testing/docker/phone-builder/VERSION +++ b/testing/docker/phone-builder/VERSION @@ -1 +1 @@ -0.0.12 +0.0.13 diff --git a/testing/docker/phone-builder/system-setup.sh b/testing/docker/phone-builder/system-setup.sh deleted file mode 100755 index e21f16d1627..00000000000 --- a/testing/docker/phone-builder/system-setup.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -pip install awscli - -# Necessary for dolhin kernel building -yum install -y bc - -# Remove ourselves -rm -f $0 diff --git a/testing/taskcluster/scripts/phone-builder/build-lightsaber-nightly.sh b/testing/taskcluster/scripts/phone-builder/build-lightsaber-nightly.sh new file mode 100755 index 00000000000..57e25a99b9d --- /dev/null +++ b/testing/taskcluster/scripts/phone-builder/build-lightsaber-nightly.sh @@ -0,0 +1,49 @@ +#! /bin/bash -vex + +. pre-build.sh + +if [ 0$B2G_DEBUG -ne 0 ]; then + DEBUG_SUFFIX=-debug +fi + +if [ $TARGET == "aries" -o $TARGET == "shinano" ]; then + # caching objects might be dangerous for some devices (aka aries) + rm -rf $WORKSPACE/B2G/objdir* + rm -rf $WORKSPACE/B2G/out +fi + +aws s3 cp s3://b2g-nightly-credentials/balrog_credentials . +mar_file=b2g-${TARGET%%-*}-gecko-update.mar + +./mozharness/scripts/b2g_lightsaber.py \ + --config b2g/taskcluster-lightsaber-nightly.py \ + --config balrog/staging.py \ + "$debug_flag" \ + --disable-mock \ + --variant=$VARIANT \ + --work-dir=$WORKSPACE/B2G \ + --gaia-languages-file locales/languages_all.json \ + --log-level=debug \ + --target=$TARGET \ + --b2g-config-dir=$TARGET \ + --checkout-revision=$GECKO_HEAD_REV \ + --base-repo=$GECKO_BASE_REPOSITORY \ + --repo=$GECKO_HEAD_REPOSITORY \ + --platform $TARGET \ + --complete-mar-url https://queue.taskcluster.net/v1/task/$TASK_ID/runs/$RUN_ID/artifacts/public/build/$mar_file \ + +# Don't cache backups +rm -rf $WORKSPACE/B2G/backup-* +rm -f balrog_credentials + +mkdir -p $HOME/artifacts +mkdir -p $HOME/artifacts-public + +mv $WORKSPACE/B2G/upload-public/$mar_file $HOME/artifacts-public/ +mv $WORKSPACE/B2G/upload/sources.xml $HOME/artifacts/sources.xml +#mv $WORKSPACE/B2G/upload/b2g-*.crashreporter-symbols.zip $HOME/artifacts/b2g-crashreporter-symbols.zip +mv $WORKSPACE/B2G/upload/b2g-*.android-arm.tar.gz $HOME/artifacts/b2g-android-arm.tar.gz +mv $WORKSPACE/B2G/upload/${TARGET}.zip $HOME/artifacts/${TARGET}.zip +mv $WORKSPACE/B2G/upload/gaia.zip $HOME/artifacts/gaia.zip +ccache -s + diff --git a/testing/taskcluster/scripts/phone-builder/build-phone-nightly.sh b/testing/taskcluster/scripts/phone-builder/build-phone-nightly.sh index 8a3af888465..b9ececab7dd 100755 --- a/testing/taskcluster/scripts/phone-builder/build-phone-nightly.sh +++ b/testing/taskcluster/scripts/phone-builder/build-phone-nightly.sh @@ -11,7 +11,6 @@ if [ ! -d $HOME/.ssh ]; then fi aws s3 cp s3://b2g-nightly-credentials/balrog_credentials . -aws s3 cp s3://b2g-nightly-credentials/b2g-rsa $HOME/.ssh/ ./mozharness/scripts/b2g_build.py \ --config b2g/taskcluster-phone-nightly.py \ @@ -28,12 +27,11 @@ aws s3 cp s3://b2g-nightly-credentials/b2g-rsa $HOME/.ssh/ --base-repo=$GECKO_BASE_REPOSITORY \ --repo=$GECKO_HEAD_REPOSITORY \ --platform $TARGET \ - --complete-mar-url https://queue.taskcluster.net/v1/task/$TASK_ID/runs/0/artifacts/public/build/b2g-${TARGET%%-*}-gecko-update.mar \ + --complete-mar-url https://queue.taskcluster.net/v1/task/$TASK_ID/runs/$RUN_ID/artifacts/public/build/b2g-${TARGET%%-*}-gecko-update.mar \ # Don't cache backups rm -rf $WORKSPACE/B2G/backup-* rm -f balrog_credentials -rm -f $HOME/.ssh/b2g-rsa mkdir -p $HOME/artifacts mkdir -p $HOME/artifacts-public diff --git a/testing/taskcluster/scripts/phone-builder/pre-build.sh b/testing/taskcluster/scripts/phone-builder/pre-build.sh index cce46cd77d4..8699953a649 100755 --- a/testing/taskcluster/scripts/phone-builder/pre-build.sh +++ b/testing/taskcluster/scripts/phone-builder/pre-build.sh @@ -19,14 +19,7 @@ test $VARIANT . ../builder/setup-ccache.sh -# First check if the mozharness directory is available. This is intended to be -# used locally in development to test mozharness changes: -# -# $ docker -v your_mozharness:/home/worker/mozharness ... -# -if [ ! -d mozharness ]; then - tc-vcs checkout mozharness $MOZHARNESS_REPOSITORY $MOZHARNESS_REPOSITORY $MOZHARNESS_REV $MOZHARNESS_REF -fi +tc-vcs checkout mozharness $MOZHARNESS_REPOSITORY $MOZHARNESS_REPOSITORY $MOZHARNESS_REV $MOZHARNESS_REF # Figure out where the remote manifest is so we can use caches for it. MANIFEST=$(repository-url.py $GECKO_HEAD_REPOSITORY $GECKO_HEAD_REV b2g/config/$TARGET/sources.xml) diff --git a/testing/taskcluster/tasks/branches/base_job_flags.yml b/testing/taskcluster/tasks/branches/base_job_flags.yml index adc5506de85..91b11673b85 100644 --- a/testing/taskcluster/tasks/branches/base_job_flags.yml +++ b/testing/taskcluster/tasks/branches/base_job_flags.yml @@ -22,6 +22,7 @@ flags: - dolphin-eng - dolphin-512 - dolphin-512-eng + - aries-nightly tests: - cppunit diff --git a/testing/taskcluster/tasks/branches/cypress/job_flags.yml b/testing/taskcluster/tasks/branches/cypress/job_flags.yml index 30d08855f2a..1820ee53386 100644 --- a/testing/taskcluster/tasks/branches/cypress/job_flags.yml +++ b/testing/taskcluster/tasks/branches/cypress/job_flags.yml @@ -18,6 +18,12 @@ builds: types: opt: task: tasks/builds/b2g_flame_kk_eng.yml + aries-nightly: + platforms: + - b2g + types: + opt: + task: tasks/builds/b2g_aries_lightsaber_nightly.yml tests: gaia-build: diff --git a/testing/taskcluster/tasks/builds/b2g_aries_lightsaber_nightly.yml b/testing/taskcluster/tasks/builds/b2g_aries_lightsaber_nightly.yml new file mode 100644 index 00000000000..345b9a097cb --- /dev/null +++ b/testing/taskcluster/tasks/builds/b2g_aries_lightsaber_nightly.yml @@ -0,0 +1,35 @@ +$inherits: + from: 'tasks/builds/b2g_phone_base.yml' + variables: + build_name: 'aries' + build_type: 'nightly' +task: + workerType: flame-kk + scopes: + - 'docker-worker:cache:build-aries-lightsaber-nightly' + metadata: + name: '[TC] B2G Aries Nightly' + + payload: + cache: + build-aries-lightsaber-nightly: /home/worker/workspace + env: + TARGET: 'aries' + DEBUG: 0 + command: + - > + checkout-gecko workspace && + cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder && + buildbot_step 'Build' ./build-lightsaber-nightly.sh $HOME/workspace + + extra: + treeherder: + symbol: B + groupSymbol: Aries + groupName: Aries Device Image + machine: + platform: b2g-device-image + locations: + img: 'private/build/aries.zip' + mar: 'public/build/b2g-aries-gecko-update.mar' +