[SCM] Samba Shared Repository - branch v4-0-test updated
Stefan Metzmacher
metze at samba.org
Sat Sep 22 18:51:02 MDT 2012
The branch, v4-0-test has been updated
via 949c37c script/autobuild.py: add --log-base option
via e08d4f0 script/autobuild.py: add log_base variable to avoid hardcoded values
via a12e5ca script/autobuild.py: add --branch option
via fb2229c script/autobuild.py: use some variables for push_remote and push_branch
via 5732784 script/autobuild.py: use some variables for rebase_remote and rebase_branch
from 2050b48 VERSION: Release Samba 4.0.0rc1
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test
- Log -----------------------------------------------------------------
commit 949c37cc2d862c5e00c3b69e17dc95f60c6e4fdb
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 22 02:40:19 2012 +0200
script/autobuild.py: add --log-base option
metze
Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(master): Sat Sep 22 23:21:59 CEST 2012 on sn-devel-104
(cherry picked from commit f339c1fd91baaff1d727cda1a30b0963423dcb5b)
Autobuild-User(v4-0-test): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(v4-0-test): Sun Sep 23 02:21:00 CEST 2012 on sn-devel-104
commit e08d4f0731ea9e68997e486a1ea01cfbe40f9d3a
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 22 02:34:38 2012 +0200
script/autobuild.py: add log_base variable to avoid hardcoded values
metze
(cherry picked from commit 1362bb548c9cb6d3e688ab102bd1d8166d73d95f)
commit a12e5caf4aee87341893bf739d0c82d0db4b86a2
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 22 02:26:10 2012 +0200
script/autobuild.py: add --branch option
metze
(cherry picked from commit 23dbf63e2d1bf3a30a2b6563fc9bafde4ca157fb)
commit fb2229cf1bc0f424197cef9956dc907600d29488
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 22 02:18:11 2012 +0200
script/autobuild.py: use some variables for push_remote and push_branch
metze
(cherry picked from commit ce22882df7e00b22a735539791806264424033a7)
commit 57327842741e34a4a3910a864b081b11e7e9ec7c
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Sep 22 00:23:21 2012 +0200
script/autobuild.py: use some variables for rebase_remote and rebase_branch
metze
(cherry picked from commit a68ab0e97e8dedc8298ca6502b1efc6ca2e32d66)
-----------------------------------------------------------------------
Summary of changes:
script/autobuild.py | 134 +++++++++++++++++++++++++++++++++------------------
1 files changed, 87 insertions(+), 47 deletions(-)
Changeset truncated at 500 lines:
diff --git a/script/autobuild.py b/script/autobuild.py
index ae58fcd..9fdea3b 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -184,19 +184,6 @@ tasks = {
'fail' : [ ("fail", 'echo failing && /bin/false', "text/plain") ]
}
-retry_task = [ ( "retry",
- '''set -e
- git remote add -t master master %s
- git fetch master
- while :; do
- sleep 60
- git describe master/master > old_master.desc
- git fetch master
- git describe master/master > master.desc
- diff old_master.desc master.desc
- done
- ''' % samba_master, "test/plain" ) ]
-
def run_cmd(cmd, dir=".", show=None, output=False, checkfail=True):
if show is None:
show = options.verbose
@@ -262,7 +249,7 @@ class builder(object):
class buildlist(object):
'''handle build of multiple directories'''
- def __init__(self, tasklist, tasknames):
+ def __init__(self, tasklist, tasknames, rebase_url, rebase_branch="master"):
global tasks
self.tlist = []
self.tail_proc = None
@@ -273,6 +260,27 @@ class buildlist(object):
b = builder(n, tasks[n])
self.tlist.append(b)
if options.retry:
+ rebase_remote = "rebaseon"
+ retry_task = [ ("retry",
+ '''set -e
+ git remote add -t %s %s %s
+ git fetch %s
+ while :; do
+ sleep 60
+ git describe %s/%s > old_remote_branch.desc
+ git fetch %s
+ git describe %s/%s > remote_branch.desc
+ diff old_remote_branch.desc remote_branch.desc
+ done
+ ''' % (
+ rebase_branch, rebase_remote, rebase_url,
+ rebase_remote,
+ rebase_remote, rebase_branch,
+ rebase_remote,
+ rebase_remote, rebase_branch
+ ),
+ "test/plain" ) ]
+
self.retry = builder('retry', retry_task)
self.need_retry = False
@@ -400,32 +408,51 @@ def write_pidfile(fname):
f.close()
-def rebase_tree(url):
- print("Rebasing on %s" % url)
+def rebase_tree(rebase_url, rebase_branch = "master"):
+ rebase_remote = "rebaseon"
+ print("Rebasing on %s" % rebase_url)
run_cmd("git describe HEAD", show=True, dir=test_master)
- run_cmd("git remote add -t master master %s" % url, show=True, dir=test_master)
- run_cmd("git fetch master", show=True, dir=test_master)
+ run_cmd("git remote add -t %s %s %s" %
+ (rebase_branch, rebase_remote, rebase_url),
+ show=True, dir=test_master)
+ run_cmd("git fetch %s" % rebase_remote, show=True, dir=test_master)
if options.fix_whitespace:
- run_cmd("git rebase --whitespace=fix master/master", show=True, dir=test_master)
+ run_cmd("git rebase --whitespace=fix %s/%s" %
+ (rebase_remote, rebase_branch),
+ show=True, dir=test_master)
else:
- run_cmd("git rebase master/master", show=True, dir=test_master)
- diff = run_cmd("git --no-pager diff HEAD master/master", dir=test_master, output=True)
+ run_cmd("git rebase %s/%s" %
+ (rebase_remote, rebase_branch),
+ show=True, dir=test_master)
+ diff = run_cmd("git --no-pager diff HEAD %s/%s" %
+ (rebase_remote, rebase_branch),
+ dir=test_master, output=True)
if diff == '':
- print("No differences between HEAD and master/master - exiting")
+ print("No differences between HEAD and %s/%s - exiting" %
+ (rebase_remote, rebase_branch))
sys.exit(0)
- run_cmd("git describe master/master", show=True, dir=test_master)
+ run_cmd("git describe %s/%s" %
+ (rebase_remote, rebase_branch),
+ show=True, dir=test_master)
run_cmd("git describe HEAD", show=True, dir=test_master)
- run_cmd("git --no-pager diff --stat HEAD master/master", show=True, dir=test_master)
+ run_cmd("git --no-pager diff --stat HEAD %s/%s" %
+ (rebase_remote, rebase_branch),
+ show=True, dir=test_master)
-def push_to(url):
- print("Pushing to %s" % url)
+def push_to(push_url, push_branch = "master"):
+ push_remote = "pushto"
+ print("Pushing to %s" % push_url)
if options.mark:
run_cmd("git config --replace-all core.editor script/commit_mark.sh", dir=test_master)
run_cmd("git commit --amend -c HEAD", dir=test_master)
# the notes method doesn't work yet, as metze hasn't allowed refs/notes/* in master
# run_cmd("EDITOR=script/commit_mark.sh git notes edit HEAD", dir=test_master)
- run_cmd("git remote add -t master pushto %s" % url, show=True, dir=test_master)
- run_cmd("git push pushto +HEAD:master", show=True, dir=test_master)
+ run_cmd("git remote add -t %s %s %s" %
+ (push_branch, push_remote, push_url),
+ show=True, dir=test_master)
+ run_cmd("git push %s +HEAD:%s" %
+ (push_remote, push_branch),
+ show=True, dir=test_master)
def_testbase = os.getenv("AUTOBUILD_TESTBASE", "/memdisk/%s" % os.getenv('USER'))
@@ -458,11 +485,16 @@ parser.add_option("", "--always-email", help="always send email, even on success
action="store_true")
parser.add_option("", "--daemon", help="daemonize after initial setup",
action="store_true")
+parser.add_option("", "--branch", help="the branch to work on (default=master)",
+ default="master", type='str')
+parser.add_option("", "--log-base", help="location where the logs can be found (default=cwd)",
+ default=None, type='str')
-
-def email_failure(status, failed_task, failed_stage, failed_tag, errstr):
+def email_failure(status, failed_task, failed_stage, failed_tag, errstr, log_base=None):
'''send an email to options.email about the failure'''
user = os.getenv("USER")
+ if log_base is None:
+ log_base = "http://git.samba.org/%s/samba-autobuild" % user
text = '''
Dear Developer,
@@ -473,25 +505,25 @@ the autobuild has been abandoned. Please fix the error and resubmit.
A summary of the autobuild process is here:
- http://git.samba.org/%s/samba-autobuild/autobuild.log
-''' % (failed_task, errstr, user)
+ %s/autobuild.log
+''' % (failed_task, errstr, log_base)
if failed_task != 'rebase':
text += '''
You can see logs of the failed task here:
- http://git.samba.org/%s/samba-autobuild/%s.stdout
- http://git.samba.org/%s/samba-autobuild/%s.stderr
+ %s/%s.stdout
+ %s/%s.stderr
or you can get full logs of all tasks in this job here:
- http://git.samba.org/%s/samba-autobuild/logs.tar.gz
+ %s/logs.tar.gz
The top commit for the tree that was built was:
%s
-''' % (user, failed_tag, user, failed_tag, user, top_commit_msg)
+''' % (log_base, failed_tag, log_base, failed_tag, log_base, top_commit_msg)
msg = MIMEText(text)
msg['Subject'] = 'autobuild failure for task %s during %s' % (failed_task, failed_stage)
msg['From'] = 'autobuild at samba.org'
@@ -502,9 +534,11 @@ The top commit for the tree that was built was:
s.sendmail(msg['From'], [msg['To']], msg.as_string())
s.quit()
-def email_success():
+def email_success(log_base=None):
'''send an email to options.email about a successful build'''
user = os.getenv("USER")
+ if log_base is None:
+ log_base = "http://git.samba.org/%s/samba-autobuild" % user
text = '''
Dear Developer,
@@ -517,9 +551,9 @@ Your autobuild has succeeded.
you can get full logs of all tasks in this job here:
- http://git.samba.org/%s/samba-autobuild/logs.tar.gz
+ %s/logs.tar.gz
-''' % user
+''' % log_base
text += '''
The top commit for the tree that was built was:
@@ -579,15 +613,21 @@ while True:
try:
try:
if options.rebase is not None:
- rebase_tree(options.rebase)
+ rebase_url = options.rebase
elif options.rebase_master:
- rebase_tree(samba_master)
+ rebase_url = samba_master
+ else:
+ rebase_url = None
+ if rebase_url is not None:
+ rebase_tree(rebase_url, rebase_branch=options.branch)
except Exception:
cleanup_list.append(gitroot + "/autobuild.pid")
cleanup()
- email_failure(-1, 'rebase', 'rebase', 'rebase', 'rebase on master failed')
+ email_failure(-1, 'rebase', 'rebase', 'rebase',
+ 'rebase on %s failed' % options.branch,
+ log_base=options.log_base)
sys.exit(1)
- blist = buildlist(tasks, args)
+ blist = buildlist(tasks, args, rebase_url, rebase_branch=options.branch)
if options.tail:
blist.start_tail()
(status, failed_task, failed_stage, failed_tag, errstr) = blist.run()
@@ -611,14 +651,14 @@ if status == 0:
print("Running passcmd: %s" % options.passcmd)
run_cmd(options.passcmd, dir=test_master)
if options.pushto is not None:
- push_to(options.pushto)
+ push_to(options.pushto, push_branch=options.branch)
elif options.push_master:
- push_to(samba_master_ssh)
+ push_to(samba_master_ssh, push_branch=options.branch)
if options.keeplogs:
blist.tarlogs("logs.tar.gz")
print("Logs in logs.tar.gz")
if options.always_email:
- email_success()
+ email_success(log_base=options.log_base)
blist.remove_logs()
cleanup()
print(errstr)
@@ -628,7 +668,7 @@ if status == 0:
blist.tarlogs("logs.tar.gz")
if options.email is not None:
- email_failure(status, failed_task, failed_stage, failed_tag, errstr)
+ email_failure(status, failed_task, failed_stage, failed_tag, errstr, log_base=options.log_base)
cleanup()
print(errstr)
--
Samba Shared Repository
More information about the samba-cvs
mailing list