Bug 1306641 - Remove TaskCluster automation related to b2g; r=dustin

This definitely isn't all of it. But I got the obvious chunks. Still
need to clean up mozharness.

MozReview-Commit-ID: JTZBydP3i2r

--HG--
extra : rebase_source : 782401359036751896ef6c153a81a06cb14031bb
This commit is contained in:
Gregory Szorc 2016-09-30 09:21:09 -07:00
Родитель 19ee6ebe3b
Коммит 0363e0cffb
42 изменённых файлов: 1 добавлений и 1620 удалений

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

@ -1,97 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
implementation: taskgraph.task.transform:TransformTask
transforms:
- taskgraph.transforms.build_attrs:transforms
- taskgraph.transforms.job:transforms
- taskgraph.transforms.task:transforms
job-defaults:
worker-type: aws-provisioner-v1/flame-kk
worker:
implementation: docker-worker
docker-image: {in-tree: phone-builder}
max-run-time: 14400
env:
MOZILLA_OFFICIAL: '1'
ENABLE_DEFAULT_BOOTANIMATION: 'true'
B2G_UPDATER: '1'
REPO_TRACE: '1'
DEBUG: '0'
VARIANT: eng
GAIA_OPTIMIZE: '1'
B2G_SYSTEM_APPS: '1'
MOZ_TELEMETRY_REPORTING: '1'
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'
treeherder:
kind: build
tier: 3
run-on-projects:
- try
- mozilla-central
- integration
- pine
index:
# despite being tier-3, these jobs should be inserted into the index ranked by pushdate
rank: pushdate
jobs:
aries-eng/opt:
description: "B2G Aries Opt"
index:
product: b2g
job-name:
gecko-v2: aries-eng-opt
treeherder:
platform: b2g-device-image/opt
symbol: Aries(Be)
run:
using: phone-builder
target: aries
aries-eng/debug:
description: "B2G Aries Debug"
index:
product: b2g
job-name:
gecko-v2: aries-debug
treeherder:
platform: b2g-device-image/debug
symbol: Aries(Bd)
run:
using: phone-builder
target: aries
debug: true
nexus-5l-eng/opt:
description: "B2G Nexus 5-L Opt"
index:
product: b2g
job-name:
gecko-v2: nexus-5-l-eng-opt
treeherder:
platform: b2g-device-image/opt
symbol: Nexus 5-L(Be)
run:
using: phone-builder
target: nexus-5-l
nexus-5l-eng/debug:
description: "B2G Nexus 5-L Debug"
index:
product: b2g
job-name:
gecko-v2: nexus-5-l-eng-debug
treeherder:
platform: b2g-device-image/debug
symbol: Nexus 5-L(Bd)
run:
using: phone-builder
target: nexus-5-l
debug: true

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

@ -14,5 +14,4 @@ jobs-from:
- android.yml
- linux.yml
- macosx.yml
- mulet.yml
- windows.yml

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

@ -1,45 +0,0 @@
linux64-mulet/debug:
description: "Linux64 Mulet Debug"
index:
product: b2g
job-name:
buildbot: linux64-mulet
gecko-v2: mulet-dbg
# despite being tier-3, these jobs should be inserted into the index ranked by pushdate
rank: pushdate
treeherder:
platform: mulet-linux64/debug # See bug 1286086
symbol: B
tier: 3
worker-type: aws-provisioner-v1/mulet-debug
worker:
implementation: docker-worker
max-run-time: 3600
run:
using: mach-via-build-mulet-linux.sh
mozconfig: b2g/dev/config/mozconfigs/linux64/mulet_dbg
tooltool-manifest: b2g/dev/config/tooltool-manifests/linux64/releng.manifest
linux64-mulet/opt:
description: "Linux64 Mulet Opt"
index:
product: b2g
job-name:
buildbot: linux64-mulet
gecko-v2: mulet-opt
# despite being tier-3, these jobs should be inserted into the index ranked by pushdate
rank: pushdate
treeherder:
platform: mulet-linux64/opt # ?!?%
symbol: B
tier: 3
worker-type: aws-provisioner-v1/mulet-opt
worker:
implementation: docker-worker
max-run-time: 3600
run:
using: mach-via-build-mulet-linux.sh
mozconfig: b2g/dev/config/mozconfigs/linux64/mulet
tooltool-manifest: b2g/dev/config/tooltool-manifests/linux64/releng.manifest

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

@ -14,8 +14,6 @@ images:
- desktop-test
- desktop1604-test
- desktop-build
- builder
- tester
- lint
- android-gradle-build
- phone-builder

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

@ -58,26 +58,3 @@ jobs:
tc-vcs checkout workspace/gecko "$GECKO_BASE_REPOSITORY" "$GECKO_HEAD_REPOSITORY" "$GECKO_HEAD_REV" "$GECKO_HEAD_REF"
&& cd ./workspace/gecko/taskcluster/scripts/builder
&& ./build-haz-linux.sh --project browser $HOME/workspace
linux64-mulet-haz/debug:
description: "Mulet Hazard Analysis Linux"
index:
product: b2g
job-name:
buildbot: linux64-haz-mulet
gecko-v2: mulet-haz-debug
treeherder:
platform: mulet-linux64/opt
symbol: tc(H)
tier: 3
# don't run anywhere by default, but still available via try: -b d -p linux64-mulet-haz
run-on-projects: []
worker:
docker-image: {in-tree: builder}
run:
using: hazard
tooltool-manifest: "gecko/b2g/dev/config/tooltool-manifests/linux64/hazard.manifest"
mozconfig: "b2g/dev/config/mozconfigs/linux64/mulet-hazards"
command: >
checkout-gecko workspace && cd ./workspace/gecko/taskcluster/scripts/builder
&& buildbot_step 'Build' ./build-mulet-haz-linux.sh $HOME/workspace

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

@ -70,13 +70,6 @@ spidermonkey
Spidermonkey tasks check out the full gecko source tree, then compile only the
spidermonkey portion. Each task runs specific tests after the build.
b2g-device
----------
B2G device builds produce binaries targetted to specific devices. These
involve some device-specific binaries which are not redistributable, so the
inputs to and outputs from these tasks are restricted.
marionette-harness
------------------

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

@ -1,68 +0,0 @@
#! /bin/bash -vex
# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH
WORKSPACE=$1
### Check that require variables are defined
test -d $WORKSPACE
test $GECKO_HEAD_REPOSITORY # Should be an hg repository url to pull from
test $GECKO_BASE_REPOSITORY # Should be an hg repository url to clone from
test $GECKO_HEAD_REV # Should be an hg revision to pull down
test $TARGET
. setup-ccache.sh
# Figure out where the remote manifest is so we can use caches for it.
MANIFEST=${MANIFEST:="$WORKSPACE/gecko/b2g/config/$TARGET/sources.xml"}
tc-vcs repo-checkout $WORKSPACE/B2G https://github.com/mozilla-b2g/B2G $MANIFEST
# Ensure symlink has been created to gecko...
rm -f $WORKSPACE/B2G/gecko
ln -s $WORKSPACE/gecko $WORKSPACE/B2G/gecko
### Install package dependencies
install-packages.sh $WORKSPACE/gecko
debug_flag=""
if [ 0$B2G_DEBUG -ne 0 ]; then
debug_flag='--debug'
fi
rm -rf $WORKSPACE/B2G/out/target/product/generic_x86/tests/
gecko_objdir=/home/worker/objdir-gecko/objdir
$WORKSPACE/gecko/testing/mozharness/scripts/b2g_build.py \
--config b2g/taskcluster-emulator.py \
"$debug_flag" \
--disable-mock \
--work-dir=$WORKSPACE/B2G \
--log-level=debug \
--target=$TARGET \
--b2g-config-dir=$TARGET \
--checkout-revision=$GECKO_HEAD_REV \
--repo=$WORKSPACE/gecko \
--gecko-objdir=$gecko_objdir
# Move files into artifact locations!
mkdir -p $HOME/artifacts
ls -lah $WORKSPACE/B2G/out
ls -lah $gecko_objdir/dist/
mv $WORKSPACE/B2G/sources.xml $HOME/artifacts/sources.xml
mv $WORKSPACE/B2G/out/target/product/generic_x86/tests/gaia-tests.zip $HOME/artifacts/gaia-tests.zip
for name in common cppunittest reftest mochitest xpcshell web-platform; do
mv $gecko_objdir/dist/*.$name.tests.zip $HOME/artifacts/target.$name.tests.zip ;
done
mv $gecko_objdir/dist/b2g-*.test_packages.json $HOME/artifacts/target.test_packages.json
mv $WORKSPACE/B2G/out/emulator.tar.gz $HOME/artifacts/emulator.tar.gz
mv $gecko_objdir/dist/b2g-*.crashreporter-symbols.zip $HOME/artifacts/b2g-crashreporter-symbols.zip
mv $gecko_objdir/dist/mozharness.zip $HOME/artifacts/mozharness.zip
ccache -s

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

@ -1,70 +0,0 @@
#! /bin/bash -vex
# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH
WORKSPACE=$1
### Check that require variables are defined
test -d $WORKSPACE
test $GECKO_HEAD_REPOSITORY # Should be an hg repository url to pull from
test $GECKO_BASE_REPOSITORY # Should be an hg repository url to clone from
test $GECKO_HEAD_REV # Should be an hg revision to pull down
test $TARGET
. setup-ccache.sh
# Figure out where the remote manifest is so we can use caches for it.
if [ -z "$MANIFEST" ]; then
MANIFEST="$WORKSPACE/gecko/b2g/config/$TARGET/sources.xml"
fi
tc-vcs repo-checkout $WORKSPACE/B2G https://github.com/mozilla-b2g/B2G $MANIFEST
# Ensure symlink has been created to gecko...
rm -f $WORKSPACE/B2G/gecko
ln -s $WORKSPACE/gecko $WORKSPACE/B2G/gecko
### Install package dependencies
install-packages.sh $WORKSPACE/gecko
debug_flag=""
if [ 0$B2G_DEBUG -ne 0 ]; then
debug_flag='--debug'
fi
rm -rf $WORKSPACE/B2G/out/target/product/generic/tests/
gecko_objdir=/home/worker/objdir-gecko/objdir
$WORKSPACE/gecko/testing/mozharness/scripts/b2g_build.py \
--config b2g/taskcluster-emulator.py \
"$debug_flag" \
--disable-mock \
--work-dir=$WORKSPACE/B2G \
--log-level=debug \
--target=$TARGET \
--b2g-config-dir=$TARGET \
--checkout-revision=$GECKO_HEAD_REV \
--repo=$WORKSPACE/gecko \
--gecko-objdir=$gecko_objdir
# Move files into artifact locations!
mkdir -p $HOME/artifacts
ls -lah $WORKSPACE/B2G/out
ls -lah $gecko_objdir/dist/
mv $WORKSPACE/B2G/sources.xml $HOME/artifacts/sources.xml
mv $WORKSPACE/B2G/out/target/product/generic/tests/gaia-tests.zip $HOME/artifacts/gaia-tests.zip
for name in common cppunittest reftest mochitest xpcshell web-platform; do
mv $gecko_objdir/dist/*.$name.tests.zip $HOME/artifacts/target.$name.tests.zip ;
done
mv $gecko_objdir/dist/b2g-*.test_packages.json $HOME/artifacts/target.test_packages.json
mv $WORKSPACE/B2G/out/emulator.tar.gz $HOME/artifacts/emulator.tar.gz
mv $gecko_objdir/dist/b2g-*.crashreporter-symbols.zip $HOME/artifacts/b2g-crashreporter-symbols.zip
mv $gecko_objdir/dist/mozharness.zip $HOME/artifacts/mozharness.zip
ccache -s

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

@ -1,24 +0,0 @@
#!/bin/bash -ex
################################### build-mulet-haz-linux.sh ###################################
# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH
WORKSPACE=$( cd "$1" && pwd )
export TOOLTOOL_DIR="$WORKSPACE"
. desktop-setup.sh
. hazard-analysis.sh
build_js_shell
configure_analysis "$WORKSPACE/analysis"
run_analysis "$WORKSPACE/analysis" b2g
# Artifacts folder is outside of the cache.
mkdir -p $HOME/artifacts/ || true
grab_artifacts "$WORKSPACE/analysis" "$HOME/artifacts"
check_hazards "$WORKSPACE/analysis"
################################### script end ###################################

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

@ -1,37 +0,0 @@
#!/bin/bash -ex
################################### build-mulet-linux.sh ###################################
# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH
. desktop-setup.sh
# use "simple" package names so that they can be hard-coded in the task's
# extras.locations
export MOZ_SIMPLE_PACKAGE_NAME=target
cd $GECKO_DIR
./mach build;
### Make package
cd $MOZ_OBJDIR;
make package package-tests buildsymbols;
### Extract artifacts
# Navigate to dist/ folder
cd $MOZ_OBJDIR/dist;
ls -lah $MOZ_OBJDIR/dist/
# Artifacts folder is outside of the cache.
mkdir -p $HOME/artifacts/
# Discard version numbers from packaged files, they just make it hard to write
# the right filename in the task payload where artifacts are declared
mv target.* $HOME/artifacts
mv mozharness.zip $HOME/artifacts/mozharness.zip
ccache -s
################################### build.sh ###################################

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

@ -1,196 +0,0 @@
#!/bin/bash
usage() {
echo "Usage: $0 GECKO_DIR GAIA_DIR MULET_TARBALL_URL [--release]"
echo " --release"
echo " use xpi name with version and platform"
}
if [ "$#" -lt 3 ]; then
usage
exit
fi
if [ -z $1 ] || [ ! -d $1 ]; then
usage
echo "First argument should be path to a gecko checkout"
exit
fi
GECKO_DIR=$1
if [ -z $2 ] || [ ! -d $2 ]; then
usage
echo "Second argument should be path to a gaia checkout"
exit
fi
GAIA_DIR=$2
url_re='^(http|https|ftp)://.*(tar.bz2|zip|dmg)'
if [ -z $3 ] || ! [[ $3 =~ $url_re ]] && ! [ -f $3 ] ; then
usage
echo "Third argument should be URL or a path to mulet tarball"
exit
fi
MULET=$3
RELEASE=
if [ "$4" == "--release" ]; then
RELEASE=1
fi
if [[ $MULET =~ 'linux-x86_64' ]] ; then
PLATFORM=linux64
elif [[ $MULET =~ 'linux' ]] ; then
PLATFORM=linux
elif [[ $MULET =~ 'win32' ]] ; then
PLATFORM=win32
elif [[ $MULET =~ 'mac' ]] ; then
PLATFORM=mac64
fi
if [ -z $PLATFORM ]; then
echo "Unable to compute platform out of mulet package filename: $MULET"
exit
fi
echo "PLATFORM: $PLATFORM"
VERSION=$(sed -nE "s/MOZ_B2G_VERSION=([0-9]+\.[0-9]+).*prerelease/\1/p" $GECKO_DIR/b2g/confvars.sh)
re='^[0-9]\.[0-9]$'
if ! [[ $VERSION =~ $re ]] ; then
echo "Invalid b2g version: $VERSION"
exit
fi
echo "B2G VERSION: $VERSION"
set -ex
WORK_DIR=simulator
rm -rf $WORK_DIR/
mkdir -p $WORK_DIR
# If mulet isn't a file, that's an URL and needs to be downloaded first
if [ ! -f $MULET ]; then
URL=$MULET
MULET=$WORK_DIR/$(basename $URL)
wget -O $MULET $URL
fi
# Compute absolute path for all path variables
realpath() {
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
}
MULET=$(realpath $MULET)
WORK_DIR=$(realpath $WORK_DIR)
GAIA_DIR=$(realpath $GAIA_DIR)
GECKO_DIR=$(realpath $GECKO_DIR)
SIM_DIR=$(realpath $GECKO_DIR/b2g/simulator)
ADDON_DIR=$(realpath $WORK_DIR/addon)
mkdir -p $ADDON_DIR
# Uncompress the Mulet package
if [[ $MULET =~ .dmg$ ]]; then
mkdir -p $WORK_DIR/dmg
if [ "$(uname)" == "Darwin" ]; then
hdiutil attach -verbose -noautoopen -mountpoint $WORK_DIR/dmg "$MULET"
# Wait for files to show up
# hdiutil uses a helper process, diskimages-helper, which isn't always done its
# work by the time hdiutil exits. So we wait until something shows up in the
# mnt directory. Due to the async nature of diskimages-helper, the best thing
# we can do is to make sure the glob() rsync is making can find files.
i=0
TIMEOUT=900
while [ "$(echo $WORK_DIR/dmg/*)" == "$WORK_DIR/dmg/*" ]; do
if [ $i -gt $TIMEOUT ]; then
echo "Unable to mount dmg file."
exit 1
fi
sleep 1
i=$(expr $i + 1)
done
# Now we can copy everything out of the $MOUNTPOINT directory into the target directory
mkdir -p $ADDON_DIR/firefox
# Try builds are not branded as Firefox
if [ -d $WORK_DIR/dmg/Nightly.app ]; then
cp -r $WORK_DIR/dmg/Nightly.app $ADDON_DIR/firefox/FirefoxNightly.app
else
cp -r $WORK_DIR/dmg/FirefoxNightly.app $ADDON_DIR/firefox/
fi
hdiutil detach $WORK_DIR/DMG
else
7z x -o$WORK_DIR/dmg $MULET
mkdir -p $WORK_DIR/dmg/hfs
sudo mount -o loop,ro -t hfsplus $WORK_DIR/dmg/2.hfs $WORK_DIR/dmg/hfs
mkdir -p $ADDON_DIR/firefox
# Try builds are not branded as Firefox
if [ -d $WORK_DIR/dmg/hfs/Nightly.app ]; then
cp -r $WORK_DIR/dmg/hfs/Nightly.app $ADDON_DIR/firefox/FirefoxNightly.app
else
cp -r $WORK_DIR/dmg/hfs/FirefoxNightly.app $ADDON_DIR/firefox/
fi
sudo umount $WORK_DIR/dmg/hfs
fi
rm -rf $WORK_DIR/dmg
elif [[ $MULET =~ .zip$ ]]; then
unzip $MULET -d $ADDON_DIR/
elif [[ $MULET =~ .tar.bz2 ]]; then
(cd $ADDON_DIR/ && tar jxvf $MULET)
else
echo "Unsupported file extension for $MULET"
exit
fi
# Build a gaia profile specific to the simulator in order to:
# - disable the FTU
# - set custom prefs to enable devtools debugger server
# - set custom settings to disable lockscreen and screen timeout
# - only ship production apps
NOFTU=1 GAIA_APP_TARGET=production SETTINGS_PATH=$SIM_DIR/custom-settings.json make -j1 -C $GAIA_DIR profile
mv $GAIA_DIR/profile $ADDON_DIR/
cat $SIM_DIR/custom-prefs.js >> $ADDON_DIR/profile/user.js
if [ -f $ADDON_DIR/firefox/application.ini ]; then
APPLICATION_INI=$ADDON_DIR/firefox/application.ini
elif [ -f $ADDON_DIR/firefox/FirefoxNightly.app/Contents/Resources/application.ini ]; then
APPLICATION_INI=$ADDON_DIR/firefox/FirefoxNightly.app/Contents/Resources/application.ini
else
echo "Unable to find application.ini file"
exit
fi
MOZ_BUILDID=$(sed -n "s/BuildID=\([0-9]\{8\}\)/\1/p" $APPLICATION_INI)
echo "BUILDID $MOZ_BUILDID -- VERSION $VERSION"
XPI_NAME=fxos-simulator-$VERSION.$MOZ_BUILDID-$PLATFORM.xpi
ADDON_ID=fxos_$(echo $VERSION | sed "s/\./_/")_simulator@mozilla.org
ADDON_VERSION=$VERSION.$MOZ_BUILDID
ADDON_NAME="Firefox OS $VERSION Simulator"
ADDON_DESCRIPTION="a Firefox OS $VERSION Simulator"
echo "ADDON_ID: $ADDON_ID"
echo "ADDON_VERSION: $ADDON_VERSION"
FTP_ROOT_PATH=/pub/mozilla.org/labs/fxos-simulator
UPDATE_PATH=$VERSION/$PLATFORM
UPDATE_LINK=https://ftp.mozilla.org$FTP_ROOT_PATH/$UPDATE_PATH/$XPI_NAME
UPDATE_URL=https://ftp.mozilla.org$FTP_ROOT_PATH/$UPDATE_PATH/update.rdf
# Replace all template string in install.rdf
sed -e "s/@ADDON_VERSION@/$ADDON_VERSION/" \
-e "s/@ADDON_ID@/$ADDON_ID/" \
-e "s#@ADDON_UPDATE_URL@#$UPDATE_URL#" \
-e "s/@ADDON_NAME@/$ADDON_NAME/" \
-e "s/@ADDON_DESCRIPTION@/$ADDON_DESCRIPTION/" \
$SIM_DIR/install.rdf.in > $ADDON_DIR/install.rdf
# copy all useful addon file
cp $SIM_DIR/icon.png $ADDON_DIR/
cp $SIM_DIR/icon64.png $ADDON_DIR/
# Create the final zip .xpi file
mkdir -p artifacts
FILE_NAME=fxos-simulator.xpi
if [ "$RELEASE" ]; then
FILE_NAME=$XPI_NAME
fi
(cd $ADDON_DIR && zip -r - .) > artifacts/$FILE_NAME

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

@ -1,41 +0,0 @@
#! /usr/bin/env python2.7
'''
Command line interface to fetch details from the b2g/config/gaia.json properties
file used to link a particular version of gaia to gecko.
'''
import argparse
import os
import json
import sys
import urlparse
parser = argparse.ArgumentParser(
description='Get various information about gaia version tied to particular \
gecko')
parser.add_argument('gecko', metavar="GECKO_DIR", help="Path to gecko revision")
parser.add_argument('prop', help="Property type",
choices=['repository', 'revision'])
args = parser.parse_args()
if not os.path.isdir(args.gecko):
print >> sys.stderr, 'Given gecko path is not a directory'
sys.exit(1)
props_path = os.path.join(args.gecko, 'b2g/config/gaia.json')
if not os.path.isfile(props_path):
print >> sys.stderr, \
'Gecko directory does not contain b2g/config/gaia.json'
sys.exit(1)
props = json.load(open(props_path))
if args.prop == 'revision':
print(props['revision'])
if args.prop == 'repository':
print(urlparse.urljoin('https://hg.mozilla.org', props['repo_path']))

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

@ -1,14 +0,0 @@
#! /bin/bash -e
# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH
gecko_dir=$1
target=$2
gaia_props=$3
gaia_repo=$($gaia_props $gecko_dir repository)
gaia_rev=$($gaia_props $gecko_dir revision)
tc-vcs checkout $target $gaia_repo $gaia_repo $gaia_rev

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

@ -1,36 +0,0 @@
#! /bin/bash -vex
. pre-build.sh
debug_flag=""
if [ 0$B2G_DEBUG -ne 0 ]; then
debug_flag='--debug'
fi
$WORKSPACE/gecko/testing/mozharness/scripts/b2g_build.py \
--config b2g/taskcluster-phone.py \
"$debug_flag" \
--disable-mock \
--variant=$VARIANT \
--work-dir=$WORKSPACE/B2G \
--gaia-languages-file $WORKSPACE/B2G/device/sprd/scx15/languages.json \
--log-level=debug \
--target=$TARGET \
--b2g-config-dir=$TARGET \
--checkout-revision=$GECKO_HEAD_REV \
--base-repo=$GECKO_BASE_REPOSITORY \
--repo=$GECKO_HEAD_REPOSITORY
# Don't cache backups
rm -rf $WORKSPACE/B2G/backup-*
# Move files into artifact locations!
mkdir -p $HOME/artifacts
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

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

@ -1,42 +0,0 @@
#! /bin/bash -vex
. pre-build.sh
if [ $TARGET == "aries" -o $TARGET == "shinano" ]; then
# caching objects might be dangerous for some devices (aka aries)
rm -rf $gecko_objdir
rm -rf $WORKSPACE/B2G/out
fi
PLATFORM=${TARGET%%-*}
# We need different platform names for each variant (user, userdebug and
# eng). We do not append variant suffix for "user" to keep compability with
# verions already installed in the phones.
if [ 0$DOGFOOD -ne 1 -a $VARIANT != "user" ]; then
PLATFORM=$PLATFORM-$VARIANT
fi
MOZHARNESS_CONFIG=${MOZHARNESS_CONFIG:=b2g/taskcluster-phone-ota.py}
rm -rf $WORKSPACE/B2G/upload-public/
rm -rf $WORKSPACE/B2G/upload/
$WORKSPACE/gecko/testing/mozharness/scripts/b2g_build.py \
--config $MOZHARNESS_CONFIG \
"$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 \
--repo=$WORKSPACE/gecko \
--platform $PLATFORM \
--gecko-objdir=$gecko_objdir \
--branch=$(basename $GECKO_HEAD_REPOSITORY) \
--complete-mar-url https://queue.taskcluster.net/v1/task/$TASK_ID/runs/$RUN_ID/artifacts/public/build/
. post-build.sh

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

@ -1,29 +0,0 @@
#! /bin/bash -vex
. pre-build.sh
if [ $TARGET == "aries" -o $TARGET == "shinano" ]; then
# caching objects might be dangerous for some devices (aka aries)
rm -rf $gecko_objdir
rm -rf $WORKSPACE/B2G/out
fi
MOZHARNESS_CONFIG=${MOZHARNESS_CONFIG:=b2g/taskcluster-phone.py}
rm -rf $WORKSPACE/B2G/upload/
$WORKSPACE/gecko/testing/mozharness/scripts/b2g_build.py \
--config $MOZHARNESS_CONFIG \
"$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 \
--repo=$WORKSPACE/gecko \
--gecko-objdir=$gecko_objdir
. post-build.sh

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

@ -1,49 +0,0 @@
#! /bin/bash -vex
# Don't cache backups
rm -rf $WORKSPACE/B2G/backup-*
if [ -f balrog_credentials ]; then
rm -f balrog_credentials
fi
mkdir -p $HOME/artifacts
mkdir -p $HOME/artifacts-public
DEVICE=${TARGET%%-*}
mv $WORKSPACE/B2G/upload/sources.xml $HOME/artifacts/sources.xml
mv $WORKSPACE/B2G/upload/b2g-*.linux-androideabi-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
# Upload public images as public artifacts for Nexus 5 L
if [ "${TARGET}" = "nexus-5-l" ]; then
mv $HOME/artifacts/${TARGET}.zip $HOME/artifacts-public/
fi
if [ -f $WORKSPACE/B2G/upload/b2g-*.crashreporter-symbols.zip ]; then
mv $WORKSPACE/B2G/upload/b2g-*.crashreporter-symbols.zip $HOME/artifacts/b2g-crashreporter-symbols.zip
fi
if [ -f $WORKSPACE/B2G/upload-public/*.blobfree-dist.zip ]; then
mv $WORKSPACE/B2G/upload-public/*.blobfree-dist.zip $HOME/artifacts-public/
fi
# FOTA full and fullimg might contain blobs
if [ -f $WORKSPACE/B2G/upload/fota-*-update-*.mar ]; then
mv $WORKSPACE/B2G/upload/fota-*-update-*.mar $HOME/artifacts/
fi
# Gecko/Gaia OTA is clean
if [ -f $WORKSPACE/B2G/upload-public/b2g-*-gecko-update.mar ]; then
mv $WORKSPACE/B2G/upload-public/b2g-*-gecko-update.mar $HOME/artifacts-public/
fi
# Gecko/Gaia FOTA is clean
if [ -f $WORKSPACE/B2G/upload-public/fota-*-update.mar ]; then
mv $WORKSPACE/B2G/upload-public/fota-*-update.mar $HOME/artifacts-public/
fi
ccache -s

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

@ -1,33 +0,0 @@
#!/bin/bash -vex
# Ensure all the scripts in this dir are on the path....
DIRNAME=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PATH=$DIRNAME:$PATH
WORKSPACE=$1
gecko_objdir=/home/worker/objdir-gecko/objdir
### Check that require variables are defined
test -d $WORKSPACE
test $GECKO_HEAD_REPOSITORY # Should be an hg repository url to pull from
test $GECKO_BASE_REPOSITORY # Should be an hg repository url to clone from
test $GECKO_HEAD_REV # Should be an hg revision to pull down
test $TARGET
test $VARIANT
. ../builder/setup-ccache.sh
# 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)
tc-vcs repo-checkout $WORKSPACE/B2G https://github.com/mozilla-b2g/B2G $MANIFEST
# Ensure symlink has been created to gecko...
rm -f $WORKSPACE/B2G/gecko
ln -s $WORKSPACE/gecko $WORKSPACE/B2G/gecko
debug_flag=""
if [ 0$B2G_DEBUG -ne 0 ]; then
debug_flag='--debug'
fi

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

@ -45,9 +45,6 @@ JOB_NAME_WHITELIST = set([
'macosx64-debug',
'macosx64-opt',
'macosx64-st-an-opt',
'mulet-dbg',
'mulet-haz-debug',
'mulet-opt',
'nexus-5-l-eng-debug',
'nexus-5-l-eng-opt',
'shell-haz-debug',

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

@ -1,105 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
"""
Support for running mulet tasks via build-mulet-linux.sh
"""
from __future__ import absolute_import, print_function, unicode_literals
import time
from voluptuous import Schema, Required
from taskgraph.transforms.job import run_job_using
from taskgraph.transforms.job.common import (
docker_worker_add_workspace_cache,
docker_worker_add_tc_vcs_cache,
docker_worker_add_gecko_vcs_env_vars,
docker_worker_add_public_artifacts
)
COALESCE_KEY = 'builds.{project}.{name}'
build_mulet_linux_schema = Schema({
Required('using'): 'mach-via-build-mulet-linux.sh',
# The pathname of the mozconfig to use
Required('mozconfig'): basestring,
# The tooltool manifest to use
Required('tooltool-manifest'): basestring,
})
@run_job_using("docker-worker", "mach-via-build-mulet-linux.sh", schema=build_mulet_linux_schema)
def docker_worker_make_via_build_mulet_linux_sh(config, job, taskdesc):
run = job['run']
worker = taskdesc.get('worker')
# assumes the builder image (which contains the gecko checkout command)
taskdesc['worker']['docker-image'] = {"in-tree": "builder"}
worker['taskcluster-proxy'] = False
docker_worker_add_public_artifacts(config, job, taskdesc)
docker_worker_add_tc_vcs_cache(config, job, taskdesc)
docker_worker_add_workspace_cache(config, job, taskdesc)
docker_worker_add_gecko_vcs_env_vars(config, job, taskdesc)
env = worker.setdefault('env', {})
env.update({
'MOZ_BUILD_DATE': time.strftime("%Y%m%d%H%M%S", time.gmtime(config.params['pushdate'])),
'MOZ_SCM_LEVEL': config.params['level'],
})
env['MOZCONFIG'] = run['mozconfig']
# tooltool downloads (not via relengapi proxy)
worker['caches'].append({
'type': 'persistent',
'name': 'tooltool-cache',
'mount-point': '/home/worker/tooltool-cache',
})
env['TOOLTOOL_CACHE'] = '/home/worker/tooltool-cache'
env['TOOLTOOL_MANIFEST'] = run['tooltool-manifest']
env['TOOLTOOL_REPO'] = 'https://github.com/mozilla/build-tooltool'
env['TOOLTOOL_REV'] = 'master'
worker['command'] = [
"/bin/bash",
"-c",
"checkout-gecko workspace"
" && cd ./workspace/gecko/taskcluster/scripts/builder"
" && buildbot_step 'Build' ./build-mulet-linux.sh $HOME/workspace",
]
mulet_simulator_schema = Schema({
Required('using'): 'mulet-simulator',
# The shell command to run with `bash -exc`. This will have parameters
# substituted for {..} and will be enclosed in a {task-reference: ..} block
# so it can refer to the parent task as <build>
Required('shell-command'): basestring,
})
@run_job_using("docker-worker", "mulet-simulator", schema=mulet_simulator_schema)
def docker_worker_mulet_simulator(config, job, taskdesc):
run = job['run']
worker = taskdesc.get('worker')
# assumes the builder image (which contains the gecko checkout command)
taskdesc['worker']['docker-image'] = {"in-tree": "builder"}
worker['taskcluster-proxy'] = False
docker_worker_add_public_artifacts(config, job, taskdesc)
docker_worker_add_gecko_vcs_env_vars(config, job, taskdesc)
shell_command = run['shell-command'].format(**config.params)
worker['command'] = [
"/bin/bash",
"-exc",
{'task-reference': shell_command},
]

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

@ -1,88 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
"""
Support for running phone-builder tasks via the phone-builder script.
"""
from __future__ import absolute_import, print_function, unicode_literals
import time
from voluptuous import Schema, Required
from taskgraph.transforms.job import run_job_using
from taskgraph.transforms.job.common import (
docker_worker_add_gecko_vcs_env_vars,
docker_worker_add_tc_vcs_cache
)
phone_builder_linux_schema = Schema({
Required('using'): 'phone-builder',
# if true, this is a debug run
Required('debug', default=False): bool,
# the TARGET to run
Required('target'): basestring,
})
@run_job_using("docker-worker", "phone-builder", schema=phone_builder_linux_schema)
def docker_worker_phone_builder(config, job, taskdesc):
run = job['run']
worker = taskdesc.get('worker')
worker['artifacts'] = [{
'name': 'private/build',
'path': '/home/worker/artifacts/',
'type': 'directory',
}, {
'name': 'public/build',
'path': '/home/worker/artifacts-public/',
'type': 'directory',
}]
docker_worker_add_tc_vcs_cache(config, job, taskdesc)
docker_worker_add_gecko_vcs_env_vars(config, job, taskdesc)
if config.params['project'] != 'try':
taskdesc['worker']['caches'].append({
'type': 'persistent',
'name': 'level-{}-{}-build-{}-{}'.format(
config.params['level'], config.params['project'],
taskdesc['attributes']['build_platform'],
taskdesc['attributes']['build_type'],),
'mount-point': "/home/worker/workspace",
})
taskdesc['worker']['caches'].append({
'type': 'persistent', 'name':
'level-{}-{}-build-{}-{}-objdir-gecko'.format(
config.params['level'], config.params['project'],
taskdesc['attributes']['build_platform'],
taskdesc['attributes']['build_type'],),
'mount-point': "/home/worker/objdir-gecko",
})
env = worker.setdefault('env', {})
env.update({
'MOZHARNESS_CONFIG': 'b2g/taskcluster-phone-eng.py',
'MOZ_BUILD_DATE': time.strftime("%Y%m%d%H%M%S", time.gmtime(config.params['pushdate'])),
'TARGET': run['target'],
})
if run['debug']:
env['B2G_DEBUG'] = '1'
# tooltool downloads
worker['relengapi-proxy'] = True
taskdesc['scopes'].extend([
'docker-worker:relengapi-proxy:tooltool.download.internal',
'docker-worker:relengapi-proxy:tooltool.download.public',
])
worker['command'] = [
"/bin/bash",
"-c",
"checkout-gecko workspace"
" && cd ./workspace/gecko/taskcluster/scripts/phone-builder"
" && buildbot_step 'Build' ./build-phone.sh $HOME/workspace",
]

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

@ -86,7 +86,7 @@ task_description_schema = Schema({
# if omitted, the build will not be indexed.
Optional('index'): {
# the name of the product this build produces
'product': Any('firefox', 'mobile', 'b2g'),
'product': Any('firefox', 'mobile'),
# the names to use for this job in the TaskCluster index
'job-name': Any(
@ -267,7 +267,6 @@ GROUP_NAMES = {
'tc-W-e10s': 'Web platform tests executed by TaskCluster with e10s',
'tc-X': 'Xpcshell tests executed by TaskCluster',
'tc-X-e10s': 'Xpcshell tests executed by TaskCluster with e10s',
'tc-Sim': 'Mulet simulator runs',
'Aries': 'Aries Device Image',
'Nexus 5-L': 'Nexus 5-L Device Image',
'Cc': 'Toolchain builds',

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

@ -31,7 +31,6 @@ BUILD_KINDS = set([
'valgrind',
'static-analysis',
'spidermonkey',
'b2g-device',
])
# anything in this list is governed by -j

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

@ -1,147 +0,0 @@
FROM centos:centos6
MAINTAINER Dustin J. Mitchell <dustin@mozilla.com>
# Run majority of yum installs here so we cache them!
COPY releng.repo /etc/yum.repos.d/releng.repo
RUN yum install -y epel-release && \
yum update -y && \
yum makecache && \
yum install -y wget
# Install updated curl libraries
RUN cd /tmp && \
wget https://s3-us-west-2.amazonaws.com/test-caching/libcurl-7.29.0-19.el6.x86_64.rpm && \
wget https://s3-us-west-2.amazonaws.com/test-caching/libcurl-devel-7.29.0-19.el6.x86_64.rpm && \
wget https://s3-us-west-2.amazonaws.com/test-caching/curl-7.29.0-19.el6.x86_64.rpm && \
yum install -y libcurl-7.29.0-19.el6.x86_64.rpm libcurl-devel-7.29.0-19.el6.x86_64.rpm curl-7.29.0-19.el6.x86_64.rpm && \
rm -f libcurl-7.29.0-19.el6.x86_64.rpm libcurl-devel-7.29.0-19.el6.x86_64.rpm curl-7.29.0-19.el6.x86_64.rpm && \
cd -
RUN yum install -y \
# From Building B2G docs
# cmake \
# cmake: is disabled intentionally to work around: bug 1141417
GConf2-devel \
alsa-lib-devel \
autoconf213 \
bc \
bison \
bzip2 \
ccache \
dbus-devel \
dbus-glib-devel \
dbus-glib-devel \
dbus-python \
expat-devel \
file \
flex \
gawk \
gcc473_0moz1 \
gettext-devel \
glibc-devel \
glibc-devel.i686 \
glibc-static \
gstreamer-devel \
gstreamer-plugins-base-devel \
gtk2-devel \
install \
iw \
libX11-devel \
libX11-devel.i686 \
libXrandr.i686 \
libXt-devel \
libnotify-devel \
libstdc++-static \
libstdc++-static \
libstdc++.i686 \
make \
mesa-libGL-devel \
mesa-libGL-devel.i686 \
mozilla-python27 \
mpfr-devel.x86_64 \
ncurses-devel.i686 \
ncurses:-devel \
openssh-clients \
openssl-devel \
openssl-devel \
patch \
perl-DBI \
perl-Digest-SHA \
perl-ExtUtils-MakeMaker \
pulseaudio-libs-devel \
readline-devel.i686 \
rsync \
screen \
subversion-perl \
tar \
tcl \
tk \
unzip \
uuid \
vim \
wireless-tools-devel \
xorg-x11-server-Xvfb \
xorg-x11-server-utils \
xz \
yasm \
zip \
zlib-devel \
zlib-devel.i686 && \
# Remove cached packages. Cached package takes up a lot of space and
# distributing them to workers is wasteful.
yum clean all
RUN mkdir -p /home/worker/bin
COPY bin/repository-url.py /home/worker/bin/repository-url.py
ENV GCC_PATH /home/worker/workspace/gecko/gcc
# Default to mozilla specific python, etc...
ENV PATH /tools/python27-mercurial/bin:/tools/python27/bin:$PATH
ENV PATH /tools/tools/buildfarm/utils:$PATH:/home/worker/bin/
ENV PATH $GCC_PATH/bin:/tools/gcc-4.7.3-0moz1/bin:$PATH
# Use the libstd++ we installed over all others...
env LD_LIBRARY_PATH=$GCC_PATH/lib64:$GCC_PATH/lib:/tools/gcc-4.7.3-0moz1/lib64:/tools/gcc-4.7.3-0moz1/lib
RUN useradd -d /home/worker -s /bin/bash -m worker
# Terrible symlink hacks so cc points to the gcc version we intend to use...
RUN ls -lah /tools/gcc-4.7.3-0moz1/bin && ln -s /tools/gcc-4.7.3-0moz1/bin/gcc /tools/gcc-4.7.3-0moz1/bin/cc
# Terrible Hack to correctly install git-2.4.1
RUN mkdir -p /tmp/git && cd /tmp/git && \
curl -L https://s3-us-west-2.amazonaws.com/test-caching/git-2.4.1.tar.gz | tar -xz && \
cd git* && \
make prefix=/usr/local/ all -j10 && \
make prefix=/usr/local/ install && \
rm -Rf /tmp/git
# Install node from node's own dist...
ENV NODE_VERSION v0.10.36
RUN cd /usr/local/ && \
curl https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-linux-x64.tar.gz | tar -xz --strip-components 1 && \
node -v
RUN wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz && \
tar -xvf setuptools-1.4.2.tar.gz && \
cd setuptools-1.4.2 && python setup.py install && \
cd - && rm -rf setuptools-1.4.2* && \
curl https://bootstrap.pypa.io/get-pip.py | python - && \
pip install virtualenv mercurial
# Generate machine uuid file
RUN dbus-uuidgen --ensure=/var/lib/dbus/machine-id
# Set variable normally configured at login, by the shells parent process, these
# are taken from GNU su manual
ENV HOME /home/worker
ENV SHELL /bin/bash
ENV USER worker
ENV LOGNAME worker
# Declare default working folder
WORKDIR /home/worker
# Set a default command useful for debugging
CMD ["/bin/bash", "--login"]

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

@ -1 +0,0 @@
0.2.11

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

@ -1,28 +0,0 @@
#! /usr/bin/env python
import argparse
def repo_url(remote, revision, path):
'''
Construct a url pointing to the _raw_ file in the given remote this function
will handle url construction for both hg and github.
'''
# Ensure remote always ends in a slash...
if remote[-1] != '/':
remote = remote + '/'
if 'hg.mozilla.org' in remote:
return '{}raw-file/{}/{}'.format(remote, revision, path);
else:
return '{}raw/{}/{}'.format(remote, revision, path);
parser = argparse.ArgumentParser(
description='Get url for raw file in remote repository'
)
parser.add_argument('remote', help='URL for remote repository')
parser.add_argument('revision', help='Revision in remote repository')
parser.add_argument('path', help='Path to file in remote repository')
args = parser.parse_args()
print(repo_url(args.remote, args.revision, args.path))

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

@ -1,6 +0,0 @@
[releng]
name=releng
descr=releng-specific packages from mockbuild-repos
baseurl=http://mockbuild-repos.pub.build.mozilla.org/releng/public/CentOS/6/x86_64
enabled=1
gpgcheck=0

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

@ -1,32 +0,0 @@
FROM quay.io/mozilla/b2g-build:0.2.11
MAINTAINER Dustin J. Mitchell <dustin@mozilla.com>
ENV VERSION 1.2
ENV PYTHONPATH /tools/tools/lib/python:$PYTHONPATH
ENV TOOLTOOL_CACHE /home/worker/tools/tooltool-cache
ADD https://raw.githubusercontent.com/taskcluster/buildbot-step/19219c470bd95b390ed0b31d4bf455169bf12fca/buildbot_step.js /home/worker/bin/buildbot_step
# Add utilities and configuration
RUN mkdir -p /home/worker/bin /home/worker/tools
# Add bin tools last as they are most likely to change
RUN chown -R worker:worker /home/worker/* /home/worker/.*
# Instal build tools
RUN hg clone http://hg.mozilla.org/build/tools/ /tools/tools && \
cd /tools/tools && \
python setup.py install
# Initialize git (makes repo happy)
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.17
# TODO enable worker
# TODO volume mount permissions will be an issue
# USER worker
COPY bin /home/worker/bin
RUN chmod a+x /home/worker/bin/*

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

@ -1 +0,0 @@
taskcluster

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

@ -1 +0,0 @@
0.5.13

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

@ -1,16 +0,0 @@
#! /bin/bash -ex
# Ensure we have at least enough to check gecko out...
test $GECKO_BASE_REPOSITORY
# Workspace to checkout gecko into...
WORKSPACE=$1
mkdir -p $WORKSPACE
# Note that tc-vcs requires only the first two arguments so others are optional.
# This is intended to make it easier to clone local directories.
buildbot_step "Clone gecko" tc-vcs checkout $WORKSPACE/gecko \
$GECKO_BASE_REPOSITORY \
$GECKO_HEAD_REPOSITORY \
$GECKO_HEAD_REV \
$GECKO_HEAD_REF

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

@ -1,6 +0,0 @@
GECKO_BASE_REPOSITORY=https://github.com/mozilla/gecko-dev
GECKO_HEAD_REPOSITORY=https://github.com/mozilla/gecko-dev
GECKO_HEAD_REF=master
GECKO_HEAD_REV=master
MOZHARNESS_REPOSITORY=http://hg.mozilla.org/build/mozharness
MOZHARNESS_REV=tip

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

@ -1,7 +0,0 @@
GECKO_BASE_REPOSITORY=https://github.com/mozilla/gecko-dev
GECKO_HEAD_REPOSITORY=https://github.com/mozilla/gecko-dev
GECKO_HEAD_REF=master
GECKO_HEAD_REV=master
MOZHARNESS_REPOSITORY=http://hg.mozilla.org/build/mozharness
MOZHARNESS_REV=tip
MOZCONFIG=b2g/dev/config/mozconfigs/linux64/mulet

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

@ -1,17 +0,0 @@
FROM taskcluster/builder:0.5.13
MAINTAINER Wander Lairson Costa <wcosta@mozilla.com>
# Add utilities and configuration
ADD bin /home/worker/bin
# Builds need the share module enabled
ADD hgrc /home/worker/.hgrc
RUN chown -R worker:worker /home/worker/.hgrc
# Make sure we use our own config
COPY tc-vcs-config.yml /etc/taskcluster-vcs.yml
RUN yum install -y bc lzop java-1.7.0-openjdk
RUN pip install awscli
RUN npm install -g bower gulp apm grunt-cli

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

@ -1,67 +0,0 @@
#!/usr/bin/env python
from __future__ import print_function
import os
import os.path
import json
import urllib2
import sys
import re
import subprocess
repo_matcher = re.compile(r'[a-z]+://(hg|git)\.mozilla\.org')
def get_task(taskid):
return json.load(urllib2.urlopen('https://queue.taskcluster.net/v1/task/' + taskid))
def check_task(task):
payload = task['payload']
if 'GECKO_HEAD_REPOSITORY' not in payload['env']:
print('Task has no head gecko repository', file=sys.stderr)
return -1
repo = payload['env']['GECKO_HEAD_REPOSITORY']
# if it is not a mozilla repository, fail
if not repo_matcher.match(repo):
print('Invalid head repository', repo, file=sys.stderr)
return -1
if 'GECKO_BASE_REPOSITORY' not in payload['env']:
print('Task has no base gecko repository', file=sys.stderr)
return -1
repo = payload['env']['GECKO_BASE_REPOSITORY']
if not repo_matcher.match(repo):
print('Invalid base repository', repo, file=sys.stderr)
return -1
locations = task["extra"]["locations"]
if "img" in locations:
img = locations["img"]
if img.startswith("public"):
print('Cannot upload images to public', file=sys.stderr)
return -1
return 0
def main():
taskid = os.getenv('TASK_ID')
# If the task id is None, we assume we are running docker locally
if taskid is not None:
task = get_task(taskid)
ret = check_task(task)
if ret != 0:
return ret
if len(sys.argv) > 1:
try:
return subprocess.call(sys.argv[1:], shell=True)
except subprocess.CalledProcessError as e:
return e.returncode
return 0
if __name__ == '__main__':
sys.exit(main())

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

@ -1,4 +0,0 @@
[extensions]
share =
[ui]
username = TaskCluster <nobody@mozilla.org>

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

@ -1,40 +0,0 @@
# Default configuration used by the tc-vs tools these can be overridden by
# passing the config you wish to use over the command line...
git: git
hg: hg
repoCache:
# Repo url to clone when running repo init..
repoUrl: https://gerrit.googlesource.com/git-repo.git
# Version of repo to utilize...
repoRevision: master
# The root where all downloaded cache files are stored on the local machine...
cacheDir: '{{env.HOME}}/.tc-vcs-repo/'
# Name/prefixed used as part of the base url.
cacheName: sources/{{name}}.tar.gz
# Command used to upload the tarball
uploadTar: "curl --retry 5 --fail --header 'Content-Type: application/x-tar' --header 'Content-Encoding: gzip' -X PUT --data-binary @'{{source}}' '{{url}}'"
# Large http get requests are often slower using nodes built in http layer so
# we utilize a subprocess which is responsible for fetching...
get: curl --retry 5 --fail -L -o {{dest}} {{url}}
# Used to create clone tarball
compress: tar -czf {{dest}} {{source}}
# All cache urls use tar + gz this is the command used to extract those files
# downloaded by the "get" command.
extract: tar -x -z -C {{dest}} -f {{source}}
cloneCache:
# The root where all downloaded cache files are stored on the local machine...
cacheDir: '{{env.HOME}}/.tc-vcs/'
# Command used to upload the tarball
uploadTar: "curl --retry 5 --fail --header 'Content-Type: application/x-tar' --header 'Content-Encoding: gzip' -X PUT --data-binary @'{{source}}' '{{url}}'"
# Large http get requests are often slower using nodes built in http layer so
# we utilize a subprocess which is responsible for fetching...
get: curl --retry 5 --fail -L -o {{dest}} {{url}}
# Used to create clone tarball
compress: tar -czf {{dest}} {{source}}
# All cache urls use tar + gz this is the command used to extract those files
# downloaded by the "get" command.
extract: tar -x -z --strip-components 1 -C {{dest}} -f {{source}}
# Name/prefixed used as part of the base url.
cacheName: clones/{{name}}.tar.gz

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

@ -1,50 +0,0 @@
taskId: 1
task:
metadata:
source: http://todo.com/soon
owner: user@domain.com
name: B2G Emulator
description: B2G Emulator
workerType: b2gbuild
provisionerId: aws-provisioner
scopes:
- 'docker-worker:cache:build-emulator-objects'
- 'docker-worker:image:quay.io/mozilla/phone-builder:0.0.1'
payload:
cache:
build-emulator-objects: '/home/worker/object-folder-flame-kk-1'
env:
TARGET: 'flame-kk'
B2G_DEBUG: '1'
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
REVISION: 'tip'
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
GECKO_BASE_REPOSITORY: 'git@github.com:mozilla/gecko-dev.git'
image: 'quay.io/mozilla/phone-builder:0.0.1'
maxRunTime: 14400
command:
- build-phone.sh
artifacts:
'private/build':
type: directory
path: '/home/worker/artifacts/'
extra:
# Rather then enforcing particular conventions we require that all build
# tasks provide the "build" extra field to specify where the build and tests
# files are located.
locations:
build: 'private/build/emulator.tar.gz'
tests: 'private/build/b2g-tests.zip'
symbols: 'private/build/b2g-crashreporter-symbols.zip'
sources: 'private/build/sources.xml'
treeherder:
symbol: B

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

@ -1,50 +0,0 @@
taskId: 1
task:
metadata:
source: http://todo.com/soon
owner: user@domain.com
name: B2G Emulator
description: B2G Emulator
workerType: b2gbuild
provisionerId: aws-provisioner
scopes:
- 'docker-worker:cache:build-emulator-objects'
- 'docker-worker:image:quay.io/mozilla/phone-builder:0.0.1'
payload:
cache:
build-emulator-objects: '/home/worker/object-folder-flame-kk-1'
env:
TARGET: 'flame-kk'
B2G_DEBUG: '1'
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
REVISION: 'tip'
GECKO_HEAD_REPOSITORY: 'git@github.com:mozilla/gecko-dev.git'
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
image: 'quay.io/mozilla/phone-builder:0.0.1'
maxRunTime: 14400
command:
- build-phone.sh
artifacts:
'private/build':
type: directory
path: '/home/worker/artifacts/'
extra:
# Rather then enforcing particular conventions we require that all build
# tasks provide the "build" extra field to specify where the build and tests
# files are located.
locations:
build: 'private/build/emulator.tar.gz'
tests: 'private/build/b2g-tests.zip'
symbols: 'private/build/b2g-crashreporter-symbols.zip'
sources: 'private/build/sources.xml'
treeherder:
symbol: B

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

@ -1,50 +0,0 @@
taskId: 1
task:
metadata:
source: http://todo.com/soon
owner: user@domain.com
name: B2G Emulator
description: B2G Emulator
workerType: b2gbuild
provisionerId: aws-provisioner
scopes:
- 'docker-worker:cache:build-emulator-objects'
- 'docker-worker:image:quay.io/mozilla/phone-builder:0.0.1'
payload:
cache:
build-emulator-objects: '/home/worker/object-folder-flame-kk-1'
env:
TARGET: 'flame-kk'
B2G_DEBUG: '1'
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
REVISION: 'tip'
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
image: 'quay.io/mozilla/phone-builder:0.0.1'
maxRunTime: 14400
command:
- build-phone.sh
artifacts:
'public/build':
type: directory
path: '/home/worker/artifacts/'
extra:
# Rather then enforcing particular conventions we require that all build
# tasks provide the "build" extra field to specify where the build and tests
# files are located.
locations:
build: 'public/build/emulator.tar.gz'
tests: 'public/build/b2g-tests.zip'
symbols: 'public/build/b2g-crashreporter-symbols.zip'
sources: 'public/build/sources.xml'
treeherder:
symbol: B

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

@ -1,31 +0,0 @@
#!/usr/bin/env python
import unittest
import sys
import yaml
sys.path.append('../bin')
from validate_task import check_task
def load_task(task_file):
content = open(task_file, 'r')
return yaml.load(content)['task']
class TaskValidationTest(unittest.TestCase):
def test_valid_task(self):
task = load_task('valid.yml')
self.assertEquals(check_task(task), 0)
def test_invalid_base_repo(self):
task = load_task('invalid_base_repo.yml')
self.assertEquals(check_task(task), -1)
def test_invalid_head_repo(self):
task = load_task('invalid_head_repo.yml')
self.assertEquals(check_task(task), -1)
def test_public_artifact(self):
task = load_task('public.yml')
self.assertEquals(check_task(task), -1)
if __name__ == '__main__':
unittest.main()

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

@ -1,53 +0,0 @@
taskId: 1
task:
metadata:
source: http://todo.com/soon
owner: user@domain.com
name: B2G flame-kk opt
description: B2G flame-kk opt
workerType: b2gbuild
provisionerId: aws-provisioner
scopes:
- 'docker-worker:cache:build-phone-objects'
- 'docker-worker:image:{{#docker_image}}phone-builder{{/docker_image}}'
payload:
cache:
build-phone-objects: '/home/worker/object-folder-flame-kk-1'
env:
TARGET: 'flame-kk'
B2G_DEBUG: '1'
# revision/project params defined originally here https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
REVISION: 'tip'
GECKO_HEAD_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
GECKO_BASE_REPOSITORY: 'http://hg.mozilla.org/mozilla-central'
image: '{{#docker_image}}phone-builder{{/docker_image}}'
maxRunTime: 14400
command:
- build-phone.sh
artifacts:
'private/build':
type: directory
path: '/home/worker/artifacts/'
expires:
relative-datestamp: '1 year'
extra:
# Rather then enforcing particular conventions we require that all build
# tasks provide the "build" extra field to specify where the build and tests
# files are located.
locations:
build: 'private/build/b2g-android-arm.tar.gz'
img: 'private/build/flame-kk.zip'
tests: 'private/build/gaia.zip'
symbols: 'private/build/b2g-crashreporter-symbols.zip'
sources: 'private/build/sources.xml'
treeherder:
symbol: B