зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
19ee6ebe3b
Коммит
0363e0cffb
|
@ -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
|
Загрузка…
Ссылка в новой задаче