Mercurial > mozilla > hg > sendchanges
changeset 0:f1dd1069f53d
initial packaging of sendchanges script
author | cltbld@localhost.localdomain |
---|---|
date | Wed, 13 Oct 2010 09:21:30 -0700 |
parents | |
children | f915c612df49 |
files | sendchanges/__init__.py sendchanges/sendchanges.py setup.py |
diffstat | 3 files changed, 166 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sendchanges/__init__.py Wed Oct 13 09:21:30 2010 -0700 @@ -0,0 +1,1 @@ +#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sendchanges/sendchanges.py Wed Oct 13 09:21:30 2010 -0700 @@ -0,0 +1,103 @@ +#!/usr/bin/env python + +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Mozilla.org. +# Portions created by the Initial Developer are Copyright (C) 2010 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Jeff Hammel <jhammel@mozilla.com> (Original author) +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** + +""" +forces sendchanges to test mozilla-central builds for all platforms +usage +sendchange master_port_number +author: Alice Nodelman <anodelman@mozilla.com> +""" + +# globals +platforms = ['win32', 'linux', 'linux64', 'macosx64'] +branches = ['talos', 'opt-unittest', 'debug-unittest'] +ports = ['9010', '9012'] + +# parse options +from optparse import OptionParser +parser = OptionParser(description=__doc__) +parser.add_option('-p', '--port', dest='port', + choices=ports, type='choice', + help='buildbot masteir port number to push sendchanges to (choices: %s)' % ports) +parser.add_option('--branch', dest='branch', + choices=branches, type='choice', + help='which branch to push (choices: %s)' % branches) +parser.add_option('-u', '--url', dest='url', + default=None, + help='base url where the builds live') +parser.add_option('--platform', dest='platforms', action='append', + help='which platforms to run on, all by default (choices: %s)' % platforms) + +options, args = parser.parse_args() + +if not options.platforms: + options.platforms = platforms + +if not options.port: + parser.error("Error - please specify a buildbot master port number to push sendchanges to (9010 or 9012)") + +if not options.branch: + parser.error("Error - please specify your branch") + +# get the changes +from getlatesttinderbox import GetLatestTinderbox +changes = {} +for platform in options.platforms: + if args: + changes[platform] = args + continue + latest = GetLatestTinderbox(platform=platform) + _changes = [ latest.latest_build_url(options.url) ] + if options.branch != 'talos': + _changes.append(latest.latest_tests_url(options.url)) + _changes.append(latest.latest_symbols_url(options.url)) + if None in _changes: + raise AssertionError("You mess something up! %s %s %s" % (platform, options.url, _changes)) + changes[platform] = _changes + +# send the changes +from subprocess import check_call +USERNAME="sendchange_script" +for platform in options.platforms: + check_call(['buildbot', 'sendchange', + '--user', USERNAME, + '--master', 'localhost:%d' % int(options.port), + '--branch', 'mozilla-central-%s-%s' % (platform, options.branch)] + + changes[platform]) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/setup.py Wed Oct 13 09:21:30 2010 -0700 @@ -0,0 +1,62 @@ +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1/GPL 2.0/LGPL 2.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Mozilla.org. +# Portions created by the Initial Developer are Copyright (C) 2010 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Jeff Hammel <jhammel@mozilla.com> (Original author) +# +# Alternatively, the contents of this file may be used under the terms of +# either of the GNU General Public License Version 2 or later (the "GPL"), +# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +# in which case the provisions of the GPL or the LGPL are applicable instead +# of those above. If you wish to allow use of your version of this file only +# under the terms of either the GPL or the LGPL, and not to allow others to +# use your version of this file under the terms of the MPL, indicate your +# decision by deleting the provisions above and replace them with the notice +# and other provisions required by the GPL or the LGPL. If you do not delete +# the provisions above, a recipient may use your version of this file under +# the terms of any one of the MPL, the GPL or the LGPL. +# +# ***** END LICENSE BLOCK ***** +from setuptools import setup, find_packages +import sys, os + +version = '0.0' + +setup(name='sendchanges', + version=version, + description="sendchanges script for Mozilla buildbot", + long_description="""\ +""", + classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers + keywords='mozilla buildbot', + author='Jeff Hammel', + author_email='jhammel@mozilla.com', + url='http://k0s.org/mozilla/', + license='MPL', + packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), + include_package_data=True, + zip_safe=False, + install_requires=[ + # -*- Extra requirements: -*- + ], + entry_points=""" + # -*- Entry points: -*- + """, + )