diff --git a/devel/tinderbox/buildbot/master/OOCompile.py b/devel/tinderbox/buildbot/master/OOCompile.py new file mode 100644 index 000000000..9ba08af2a --- /dev/null +++ b/devel/tinderbox/buildbot/master/OOCompile.py @@ -0,0 +1,63 @@ +## +# ootermite - OpenOffice.org automated building/reporting system +# Copyright (C) ? +# Copyright (C) 2008 by Sun Microsystems, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +## + +import os +from buildbot.steps.shell import ShellCommand +from buildbot.slave.registry import registerSlaveCommand +from buildbot.process.buildstep import LoggedRemoteCommand +from buildbot.steps.transfer import FileUpload + +class OOCompile(ShellCommand): + def createSummary(self, log): + try: + logFileName = self.step_status.logs[0].getFilename() + + command = "egrep 'warning: |: warning ' "+ logFileName + log = os.popen(command).read() + + if log != "" : + self.addCompleteLog('warnings', log) + + + command = "egrep -B 10 'error: |: fatal error ' "+ logFileName + log = os.popen(command).read() + + if log != "": + self.addCompleteLog('errors', log) + + except: + print "cannot execute createSummary after OOCompile" + + def __init__(self, **kwargs): + OOShellCommand.__init__(self, **kwargs) # always upcall! + + def start(self): + ShellCommand.start(self) + + # Overwritten method to allow HTML-Log-Files + def setupLogfiles(self, cmd, logfiles): + print "setupLogfiles" + for logname,remotefilename in logfiles.items(): + if remotefilename.endswith(".html"): + # tell the BuildStepStatus to add a LogFile + newlog = self.addHTMLLog(logname) + # and tell the LoggedRemoteCommand to feed it + cmd.useLog(newlog, True) + diff --git a/devel/tinderbox/buildbot/master/agi_upload.py b/devel/tinderbox/buildbot/master/agi_upload.py new file mode 100644 index 000000000..f40998fd5 --- /dev/null +++ b/devel/tinderbox/buildbot/master/agi_upload.py @@ -0,0 +1,20 @@ +from buildbot.steps import transfer +from buildbot.steps.shell import WithProperties +from buildbot.process.buildstep import BuildStep + +class agi_upload(transfer.FileUpload): + def __init__(self, slavesrc, masterdest, workdir="build", maxsize=None, + blocksize=16*1024, mode=None, **buildstep_kwargs): + + transfer.FileUpload.__init__(self, slavesrc, masterdest, workdir, maxsize, blocksize, mode, **buildstep_kwargs) + + def start(self): + properties = self.build.getProperties() + masterdest = properties.render(self.masterdest) + self.addURL("dist-http", "http://ftp.aegisub.org/pub/" + masterdest) + self.addURL("dist-ftp", "ftp://ftp.aegisub.org/pub/" + masterdest) + + return transfer.FileUpload.start(self) + + def finish(self, result): + transfer.finished(self, result) diff --git a/devel/tinderbox/buildbot/master/dist_passwd.py b/devel/tinderbox/buildbot/master/dist_passwd.py new file mode 100644 index 000000000..0cead4ae3 --- /dev/null +++ b/devel/tinderbox/buildbot/master/dist_passwd.py @@ -0,0 +1,11 @@ +# Copy this to ./passwd.py and fill it in. + +passwd = { + 'mochi': '', + 'kokoro': '', + 'anpan': '', + 'tako': '', + 'nori': '', + 'mokona': '' +} + diff --git a/devel/tinderbox/buildbot/master/master.cfg b/devel/tinderbox/buildbot/master/master.cfg new file mode 100644 index 000000000..be103fb64 --- /dev/null +++ b/devel/tinderbox/buildbot/master/master.cfg @@ -0,0 +1,723 @@ +############### +# General Setup +############### +c = BuildmasterConfig = {} + +# Import our passwords +passwd_file = open('passwd.py') +exec passwd_file +passwd_file.close() + +# What port to listen on, used for try attempts as well. +c['slavePortnum'] = 9899 + +c['projectName'] = "Aegisub" +c['projectURL'] = "http://devel.aegisub.org/" +c['buildbotURL'] = "http://buildbot.aegisub.org/" + +# Used for accepting wchange notifications (svn-commit-hook) _and_ try attempts. +from buildbot.changes.pb import PBChangeSource +c['change_source'] = PBChangeSource() + +#################################### +# Check if a file is worth a rebuild +#################################### + +re_common = [ + '^trunk/aegisub/.*\.c$', + '^trunk/aegisub/.*\.cpp$', + '^trunk/aegisub/.*\.h$', + '^trunk/aegisub/FFmpegSource2/.*', + '^trunk/aegisub/src/libauto3/.*', + '^trunk/aegisub/src/include/aegisub/.*', + '^trunk/aegisub/src/boost/.*', + '^trunk/aegisub/src/bitmaps/.*', + '^trunk/aegisub/src/config/.*', + '^trunk/aegisub/universalchardet/.*', + '^trunk/aegisub/src/gl/.*', +] + +re_common_unix = [ + '^trunk/aegisub/configure.in$', + '^trunk/aegisub/libass/.*', + '^trunk/aegisub/.*Makefile.am$', + '^trunk/aegisub/m4macros/.*', + '^trunk/aegisub/scripts/unix-.*', + '^trunk/aegisub/src/libresrc/.*', + '^trunk/aegisub/po/.*', + '^trunk/aegisub/acinclude.m4$', + '^trunk/aegisub/desktop/.*' +] + +re_osx = [ + '^trunk/aegisub/src/libosxutil/.*', + '^trunk/aegisub/packages/osx_.*', + '^trunk/aegisub/scripts/osx-.*' +] + +re_windows = [ + '^trunk/aegisub/build/.*', + '^trunk/contrib/csri/.*', + '^trunk/contrib/lua50/.*', + '^trunk/contrib/lua51/.*', + '^trunk/contrib/hunspell/.*', + '^trunk/aegisub/packages/win_installer/.*', + '^trunk/aegisub/tinderbox/windows/.*', + '^trunk/aegisub/src/msvc/.*' +] + +import re, string +def check_changes(files, re_array): + re_compiled = re.compile(string.joinfields(re_array, "|"), re.I) + for changed_file in files: + if re.match(re_compiled, changed_file): + return True + return False + +def interested_windows(change): + return check_changes(change.files, re_common + re_windows) + +def interested_unix(change): + return check_changes(change.files, re_common + re_common_unix) + +def interested_osx(change): + return check_changes(change.files, re_common + re_common_unix + re_osx) + + + +############# +# BUILDSLAVES +############# + +from buildbot.buildslave import BuildSlave +c['slaves'] = [ + BuildSlave("mochi", passwd['mochi'], max_builds=1, properties={'os':'Debian', 'version':'5.0.1', 'osname':'Lenny'}), + BuildSlave("kokoro", passwd['kokoro'], max_builds=1, properties={'os':'OSX', 'version':'10.5.6', 'osname':'Leopard'}), + BuildSlave("anpan", passwd['anpan'], max_builds=1, properties={'os':'Windows', 'version':'SP2', 'osname':'Vista'}), + BuildSlave("tako", passwd['tako'], max_builds=1, properties={'os':'FreeBSD', 'version':'7.1', 'osname':'Stable'}), + BuildSlave("nori", passwd['nori'], max_builds=1, properties={'os':'Ubuntu', 'version':'9.04', 'osname':'Jaunty'}), + BuildSlave("mokona", passwd['mokona'], max_builds=1, properties={'os':'OSX', 'version': '10.4.11', 'osname':'Tiger'}) +] + + +########### +# FACTORIES +########### + +from buildbot.steps import source, shell +from buildbot.steps.shell import Configure, Compile, WithProperties +from buildbot.process import factory +from buildbot import locks +from agi_upload import agi_upload +from OOCompile import OOCompile + +# General settings +source_unix = "http://svn.aegisub.org/trunk/aegisub/" +source_windows = "http://svn.aegisub.org/branches/windows" +stub = factory.BuildFactory() + + +############## +# Factory +# General Unix +############## +flinux = factory.BuildFactory() +flinux.addStep(source.SVN(mode="clobber", svnurl=source_unix)) + +flinux.addStep(shell.ShellCommand( + command=["./autogen.sh", "--skip-configure"], + name = "autogen", + description = ["autogening"], + descriptionDone = ["autogen"], + haltOnFailure=True +)) + +flinux.addStep(shell.ShellCommand( + command=["./configure", + WithProperties("--with-build-credit=BuildBot: %s (%s)", "buildername", "slavename"), + "--disable-check-wx-stc", + "--disable-check-wx-opengl" + ], + env={ + 'CC': '/usr/lib/ccache/gcc', + 'CXX': '/usr/lib/ccache/g++', + 'CCACHE_PATH': '/usr/bin', + 'CCACHE_DIR': '/home/verm/.ccache', + 'LUA_CFLAGS': '-I/usr/include/lua5.1', + 'LUA_LDFLAGS': '-llua5.1', + 'LUA50_CFLAGS': '-I /usr/include/lua50', + 'LUA50_LDFLAGS': '-llua50 -llualib50' + }, + name = "configure", + description = ["configuring"], + descriptionDone = ["configure"], + logfiles={ + 'config.log': 'config.log', + 'config.status': 'config.status' + }, + haltOnFailure=True +)) + +flinux.addStep(OOCompile( + command=["make"], + env={ + 'CCACHE_PATH': '/usr/bin', + 'CCACHE_DIR': '/home/verm/.ccache' + }, + name = "build", + description = ["building"], + descriptionDone = ["build"], + haltOnFailure=True +)) + + +######### +# Factory +# FreeBSD +######### +ffbsd = factory.BuildFactory() +ffbsd.addStep(source.SVN(mode="clobber", svnurl=source_unix)) + +ffbsd.addStep(shell.ShellCommand( + name = "autogen", + description = "autogening", + descriptionDone = "autogen", + haltOnFailure=True, + + command=["./autogen.sh", "--skip-configure"], + env={ + 'ACLOCAL_FLAGS': '-I /usr/local/share/aclocal', + 'ACLOCAL': 'aclocal-1.9', + 'AUTOCONF': 'autoconf-2.62', + 'AUTOHEADER': 'autoheader-2.62', + 'AUTOMAKE': 'automake-1.9', + 'LIBTOOLIZE': 'libtoolize' + } +)) + +ffbsd.addStep(shell.ShellCommand( + command=["/usr/local/bin/bash", "./configure", + "--prefix=/usr/local", + WithProperties("--with-build-credit=BuildBot: %s (%s)", "buildername", "slavename"), + "--with-wx-config=/home/verm/build/wx/lib/wx/config/gtk2-unicode-debug-2.9", + "--enable-maintainer-mode", + "--disable-check-wx-opengl", + "--disable-check-wx-stc" + ], + env={ + 'CCACHE_PATH': '/usr/bin:/usr/local/bin', + 'CCACHE_DIR': '/usr/home/verm/.ccache', + 'CC': '/usr/local/libexec/ccache/gcc', + 'CXX': '/usr/local/libexec/ccache/g++', + 'CFLAGS': '-I/usr/local/include', + 'CXXFLAGS': '-I/usr/local/include', + 'LDFLAGS': '-L/usr/local/lib', + 'LUA50_CFLAGS': '-I/usr/local/include/lua50', + 'LUA50_LDFLAGS': '-L/usr/local/lib -llua-5.0 -llualib-5.0', + 'LUA_CFLAGS': '-I/usr/local/include/lua51', + 'LUA_LDFLAGS': '-L/usr/local/lib -llua-5.1' + }, + name = "configure", + description = ["configuring"], + descriptionDone = ["configure"], + logfiles={ + 'config.log': 'config.log', + 'config.status': 'config.status' + }, + haltOnFailure=True +)) + +ffbsd.addStep(OOCompile( + command=["gmake"], + name = "build", + description = ["building"], + descriptionDone = ["build"], + env={ + 'CCACHE_PATH': '/usr/bin:/usr/local/bin', + 'CCACHE_DIR': '/usr/home/verm/.ccache' + }, + haltOnFailure=True +)) + + +############### +# Factory +# Unix Snapshot +############### + +funix_dist = factory.BuildFactory() +funix_dist.addStep(source.SVN(mode="clobber", svnurl=source_unix)) +funix_dist.addStep(shell.ShellCommand( + name = "dist", + description = "disting", + descriptionDone = "dist", + command=[ + "sh", + "-x", + "tinderbox/unix/dist.sh", + WithProperties("%s", "got_revision"), + WithProperties("%s", "slavename"), + ], + haltOnFailure=True +)) + +funix_dist.addStep(agi_upload( + blocksize=640*1024, + slavesrc="dist.tar.bz2", + mode=0644, + masterdest=WithProperties("tinderbox/snapshot/aegisub-snap-r%s.tar.bz2", "got_revision")), + name = "upload", + description = ["uploading"], + descriptionDone = ["uploaded"], + haltOnFailure=False, + flunkOnFailure=False +) + + +############ +# Factory +# OS X Intel +############ + +fosx = factory.BuildFactory() +fosx.addStep(source.SVN(mode="clobber", svnurl=source_unix)) + +fosx.addStep(shell.ShellCommand( + name = "autogen", + description = "autogening", + descriptionDone = "autogen", + haltOnFailure=True, + command=["./autogen.sh", "--skip-configure"], + env={ + 'ACLOCAL_FLAGS': '-I /Users/verm/prefix/share/aclocal -I /Developer/usr/share/aclocal -I /opt/local/share/aclocal', + 'AUTOMAKE': '/Users/verm/prefix/bin/automake-1.9', + 'ACLOCAL': '/Users/verm/prefix/bin/aclocal-1.9', + 'AUTOCONF': '/Users/verm/prefix/bin/autoconf', + 'AUTOHEADER': '/Users/verm/prefix/bin/autoheader', + 'BIN_CONVERT': '/Users/verm/prefix/bin/convert' + } +)) + +fosx.addStep(shell.ShellCommand( + command=["./configure", + "--prefix=/Users/verm/prefix", + WithProperties("--with-build-credit=BuildBot: %s (%s)", "buildername", "slavename"), + "--with-apple-opengl-framework", + "--with-wx-config=/Users/verm/prefix/lib/wx/config/mac-unicode-debug-2.8", + "--enable-debug", + "--without-libass", + "--disable-check-wx-opengl", + "--disable-check-wx-stc" + ], + env={ + 'CCACHE_PATH': '/usr/bin', + 'CCACHE_DIR': '/Users/verm/.ccache', + 'CC': '/opt/local/libexec/ccache/gcc', + 'CXX': '/opt/local/libexec/ccache/g++', + 'PKG_CONFIG': '/Users/verm/prefix/bin/pkg-config', + 'PKG_CONFIG_PATH': '/Users/verm/prefix/lib/pkgconfig', + 'CXXFLAGS': '-I/Users/verm/prefix/include', + 'LDFLAGS': '-L/Users/verm/prefix/lib', + 'LUA50_CFLAGS': '-I/Users/verm/prefix/include/lua50', + 'LUA50_LDFLAGS': '-L/Users/verm/prefix/lib/lua50 -llua-5.0 -llualib-5.0', + 'LUA_CFLAGS': '-I/Users/verm/prefix/include/lua51', + 'LUA_LDFLAGS': '-L/Users/verm/prefix/lib/lua51 -llua', + 'OPENAL_CFLAGS': '-framework OpenAL', + 'OPENAL_LIBS': '-framework OpenAL', + 'CFLAGS': '-I/Developer/SDKs/MacOSX10.5.sdk/usr/include', + 'ICONV_LDFLAGS': '/usr/lib/libiconv.dylib', + 'PERL_CFLAGS': '-I/System/Library/Perl/5.8.8/darwin-thread-multi-2level/CORE -arch i386 -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement -I/usr/local/include', + 'PERL_LDFLAGS': '-arch i386 -L/usr/local/lib /System/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/DynaLoader/DynaLoader.a -L/System/Library/Perl/5.8.8/darwin-thread-multi-2level/CORE -lperl -ldl -lm -lutil -lc', + 'RUBY_CFLAGS': '-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 -arch i386 -Os -pipe -fno-common' + }, + name = "configure", + description = ["configuring"], + descriptionDone = ["configure"], + logfiles={ + 'config.log': 'config.log', + 'config.status': 'config.status' + }, + haltOnFailure=True +)) + +fosx.addStep(OOCompile( + command=["make"], + name = "build", + description = ["building"], + descriptionDone = ["build"], + env={ + 'CCACHE_PATH': '/usr/bin', + 'CCACHE_DIR': '/Users/verm/.ccache' + }, + haltOnFailure=True +)) + +fosx.addStep(shell.ShellCommand( + command=["make", "osx-tinderbox-bundle"], + env={ + 'T_BUNDLE': WithProperties("aegisub-%s-%s-%s-r%s", "buildername", "slavename", "buildnumber", "got_revision"), + }, + name = "bundle", + description = ["bundling"], + descriptionDone = ["bundle"], + haltOnFailure=True +)) + +fosx.addStep(shell.ShellCommand( + command=["make", "osx-tinderbox-dmg"], + env={ + 'T_BUNDLE': WithProperties("aegisub-%s-%s-%s-r%s", "buildername", "slavename", "buildnumber", "got_revision"), + 'T_DMG': WithProperties("aegisub-%s-%s-%s-r%s", "buildername", "slavename", "buildnumber", "got_revision"), + }, + name = "dmg", + description = ["dmging"], + descriptionDone = ["dmg"], + haltOnFailure=True +)) + +fosx.addStep(agi_upload( + blocksize=640*1024, + slavesrc="bundle.dmg", + mode=0644, + masterdest=WithProperties("tinderbox/osx/aegisub-%s-%s-%s-r%s.dmg", "buildername", "slavename", "buildnumber", "got_revision")), + name = "upload", + description = ["uploading"], + descriptionDone = ["uploaded"], + haltOnFailure=False, + flunkOnFailure=False +) + + +########## +# Factory +# OS X PPC +########## +fosx_ppc = factory.BuildFactory() +fosx_ppc.addStep(source.SVN(mode="clobber", svnurl=source_unix)) + +fosx_ppc.addStep(shell.ShellCommand( + name = "autogen", + description = "autogening", + descriptionDone = "autogen", + haltOnFailure=True, + command=["./autogen.sh", "--skip-configure"], + env={ + 'ACLOCAL_FLAGS': '-I /Users/verm/prefix/share/aclocal', + 'AUTOMAKE': '/Users/verm/prefix/bin/automake-1.9', + 'ACLOCAL': '/Users/verm/prefix/bin/aclocal-1.9', + 'AUTOCONF': '/Users/verm/prefix/bin/autoconf-2.61', + 'AUTOHEADER': '/Users/verm/prefix/bin/autoheader-2.61', + 'BIN_CONVERT': '/Users/verm/prefix/bin/convert' + } +)) + +fosx_ppc.addStep(shell.ShellCommand( + command=["./configure", + "--prefix=/Users/verm/prefix", + WithProperties("--with-build-credit=BuildBot: %s (%s)", "buildername", "slavename"), + "--with-apple-opengl-framework", + "--with-wx-config=/Users/verm/prefix/lib/wx/config/mac-unicode-debug-2.8", + "--enable-debug" + "--prefix=/Users/verm/i", + "--disable-check-wx-opengl", + "--disable-check-wx-stc", + ], + env={ + 'CCACHE_PATH': '/usr/bin', + 'CCACHE_DIR': '/Users/verm/.ccache', + 'CC': '/opt/local/libexec/ccache/gcc', + 'CXX': '/opt/local/libexec/ccache/g++', + 'PKG_CONFIG': '/Users/verm/prefix/bin/pkg-config', + 'PKG_CONFIG_PATH': '/Users/verm/prefix/lib/pkgconfig', + 'CXXFLAGS': '-I/Users/verm/prefix/include', + 'LDFLAGS': '-L/Users/verm/prefix/lib', + 'LUA50_CFLAGS': '-I/Users/verm/prefix/include/lua50', + 'LUA50_LDFLAGS': '-L/Users/verm/prefix/lib/lua50 -llua-5.0 -llualib-5.0', + 'LUA_CFLAGS': '-I/Users/verm/prefix/include/lua51', + 'LUA_LDFLAGS': '-L/Users/verm/prefix/lib/lua51 -llua', + 'OPENAL_CFLAGS': '-framework OpenAL', + 'OPENAL_LIBS': '-framework OpenAL', + 'CFLAGS': '-I/Developer/SDKs/MacOSX10.5.sdk/usr/include', + 'ICONV_LDFLAGS': '/usr/lib/libiconv.dylib', + 'PERL_CFLAGS': '-I/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include', + 'PERL_LDFLAGS': '-L/usr/local/lib /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/DynaLoader/DynaLoader.a -L/System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE -lperl -ldl -lm -lc', + 'RUBY_CFLAGS': '-I/usr/lib/ruby/1.8/powerpc-darwin8.0 -I/usr/lib/ruby/1.8/universal-darwin8.0 -g -Os -pipe -fno-common' + }, + name = "configure", + description = ["configuring"], + descriptionDone = ["configure"], + logfiles={ + 'config.log': 'config.log', + 'config.status': 'config.status' + }, + haltOnFailure=True +)) + +fosx_ppc.addStep(OOCompile( + command=["make"], + name = "build", + env={ + 'CCACHE_PATH': '/usr/bin', + 'CCACHE_DIR': '/Users/verm/.ccache' + }, + description = ["building"], + descriptionDone = ["build"], + haltOnFailure=True +)) + + +fosx_ppc.addStep(shell.ShellCommand( + command=["make", "osx-tinderbox-bundle"], + env={ + 'T_BUNDLE': WithProperties("aegisub-%s-%s-%s-r%s", "buildername", "slavename", "buildnumber", "got_revision"), + }, + name = "bundle", + description = ["bundling"], + descriptionDone = ["bundle"], + haltOnFailure=True +)) + +fosx_ppc.addStep(shell.ShellCommand( + command=["make", "osx-tinderbox-dmg"], + env={ + 'T_BUNDLE': WithProperties("aegisub-%s-%s-%s-r%s", "buildername", "slavename", "buildnumber", "got_revision"), + 'T_DMG': WithProperties("aegisub-%s-%s-%s-r%s", "buildername", "slavename", "buildnumber", "got_revision"), + }, + name = "dmg", + description = ["dmging"], + descriptionDone = ["dmg"], + haltOnFailure=True +)) + +fosx_ppc.addStep(agi_upload( + blocksize=640*1024, + slavesrc="bundle.dmg", + mode=0644, + masterdest=WithProperties("tinderbox/osx/aegisub-%s-%s-%s-r%s.dmg", "buildername", "slavename", "buildnumber", "got_revision")), + name = "upload", + description = ["uploading"], + descriptionDone = ["uploaded"], + haltOnFailure=False, + flunkOnFailure=False +) + + +######### +# Factory +# Windows +######### +fwin = factory.BuildFactory() +fwin.addStep(source.SVN(mode="clobber", svnurl=source_windows)) + +fwin.addStep(shell.ShellCommand( + command=["copy aegisub\\tinderbox\\windows\\config_windows.h aegisub\\src\\config\\config_windows.h"], + name = "configure", + description = ["configuring"], + descriptionDone = ["configure"], + haltOnFailure=True +)) + +fwin.addStep(OOCompile( + command=["aegisub\\tinderbox\\windows\\anpan.bat", "Release", "Win32"], + name = "build", + description = ["building"], + descriptionDone = ["build"], + haltOnFailure=True +)) + +fwin.addStep(shell.ShellCommand( + command=[WithProperties("aegisub\\tinderbox\\windows\\dist.bat %s %s %s %s", "buildername", "slavename", "buildnumber", "got_revision")], + name = "dist", + description = ["dist"], + descriptionDone = ["dist"], + haltOnFailure=True +)) + +fwin.addStep(agi_upload( + blocksize=640*1024, + slavesrc="dist.7z", + mode=0644, + masterdest=WithProperties("tinderbox/windows/aegisub-%s-%s-%s-r%s.7z", "buildername", "slavename", "buildnumber", "got_revision")), + name = "upload", + description = ["uploading"], + descriptionDone = ["uploaded"], + haltOnFailure=False, + flunkOnFailure=False +) + + +fwin64 = factory.BuildFactory() +fwin64.addStep(source.SVN(mode="clobber", svnurl=source_windows)) + +fwin64.addStep(shell.ShellCommand( + command=["copy aegisub\\tinderbox\\windows\\config_windows.h aegisub\\src\\config\\config_windows.h"], + name = "configure", + description = ["configuring"], + descriptionDone = ["configure"], + haltOnFailure=True +)) + +fwin64.addStep(OOCompile( + name = "build", + command=["aegisub\\tinderbox\\windows\\anpan.bat", "Release", "x64"], + description = ["building"], + descriptionDone = ["build"], + haltOnFailure=True +)) + +fwin64.addStep(shell.ShellCommand( + command=[WithProperties("aegisub\\tinderbox\\windows\\dist.bat %s %s %s %s", "buildername", "slavename", "buildnumber", "got_revision")], + name = "dist", + description = ["dist"], + descriptionDone = ["dist"], + haltOnFailure=True +)) + +fwin64.addStep(agi_upload( + blocksize=640*1024, + slavesrc="dist.7z", + mode=0644, + masterdest=WithProperties("tinderbox/windows/aegisub-%s-%s-%s-r%s.7z", "buildername", "slavename", "buildnumber", "got_revision")), + name = "upload", + description = ["uploading"], + descriptionDone = ["uploaded"], + haltOnFailure=False, + flunkOnFailure=False +) + +########## +# BUILDERS +########## + +slave_win = ["anpan"] +slave_freebsd = ["tako"] +slave_debian = ["mochi"] +slave_ubuntu = ["nori"] +slave_osx = ["kokoro"] +slave_osx_ppc = ["mokona"] + +#Ubuntux8632 = { 'name': "Ubuntu-x86_32", 'slavenames': slave_ubuntu, 'builddir': "full_Ubuntu-x86_32", 'factory': flinux } + +Windowsx8632 = { 'name': "Windows-x86_32", 'slavenames': slave_win, 'builddir': "full_Windows-x86_32", 'factory': fwin } +Windowsx8664 = { 'name': "Windows-x86_64", 'slavenames': slave_win, 'builddir': "full_Windows-x86_64", 'factory': fwin64 } +DarwinPPC = { 'name': "Darwin-PPC", 'slavenames': slave_osx_ppc, 'builddir': "full_Darwin-PPC", 'factory': fosx_ppc } +Darwinx8664 = { 'name': "Darwin-x86_64", 'slavenames': slave_osx, 'builddir': "full_Darwin-x86_64", 'factory': fosx } +#FreeBSDx8632 = { 'name': "FreeBSD-x86_32", 'slavenames': slave_freebsd, 'builddir': "full_FreeBSD-x86_32", 'factory': ffbsd } +FreeBSDx8664 = { 'name': "FreeBSD-x86_64", 'slavenames': slave_freebsd, 'builddir': "full_FreeBSD-x86_64", 'factory': ffbsd } +Ubuntux8664 = { 'name': "Ubuntu-x86_64", 'slavenames': slave_ubuntu, 'builddir': "full_Ubuntu-x86_64", 'factory': flinux } +Debianx8632 = { 'name': "Debian-x86_32", 'slavenames': slave_debian, 'builddir': "full_Debian-x86_32", 'factory': flinux } +#Debianx8664 = { 'name': "Debian-x86_64", 'slavenames': slave_debian, 'builddir': "full_Debian-x86_64", 'factory': flinux } + +UNIXDist = { 'name': "UNIX Dist", 'slavenames': slave_debian + slave_ubuntu + slave_freebsd, 'builddir': "UNIX_Dist", 'factory': funix_dist } + +#Ubuntux8632, + +c['builders'] = [ +Windowsx8632, +Windowsx8664, +DarwinPPC, +Darwinx8664, +FreeBSDx8664, +Ubuntux8664, +Debianx8632, +UNIXDist +] + +#FreeBSDx8632, +#Debianx8664 + +#"Ubuntu-x86_32", + + +builder_name_windows = [ +"Windows-x86_32", +"Windows-x86_64" +] + +builder_name_unix = [ +"FreeBSD-x86_64", +"Ubuntu-x86_64", +"Debian-x86_32" +] + +builder_name_darwin = [ +"Darwin-PPC", +"Darwin-x86_64" +] + +#"FreeBSD-x86_32", +#"Debian-x86_64" + + +############ +# SCHEDULERS +############ + +from buildbot.scheduler import Scheduler +from buildbot.scheduler import Dependent + +full_windows = Scheduler(name="full_windows", + branch=None, + treeStableTimer=901, + builderNames=builder_name_windows, + fileIsImportant=interested_windows) + +full_unix = Scheduler(name="full_unix", + branch=None, + treeStableTimer=901, + builderNames=builder_name_unix, + fileIsImportant=interested_unix) + +full_darwin = Scheduler(name="full_darwin", + branch=None, + treeStableTimer=901, + builderNames=builder_name_darwin, + fileIsImportant=interested_osx) + +unix_dist = Dependent("unix_dist", + full_unix, + builderNames=["UNIX Dist"]) + + + +from buildbot.scheduler import Try_Jobdir +try_job = Try_Jobdir("try", builder_name_windows + builder_name_unix + builder_name_darwin, jobdir="jobdir") + +c['schedulers'] = [full_windows, full_unix, full_darwin, unix_dist] + +from buildbot import scheduler + + + +################ +# STATUS TARGETS +################ + +c['status'] = [] + +# Website http://builder.aegisub.org/ +from buildbot.status import html +c['status'].append(html.WebStatus(http_port="tcp:8001:interface=127.0.0.1", allowForce=1)) + +# Send out status emails. +from buildbot.status import mail +c['status'].append(mail.MailNotifier(fromaddr="tinderbox@aegisub.org", + extraRecipients=["aegisub@darkbeer.org"], + sendToInterestedUsers=False)) + +# IRC! +from buildbot.status import words +c['status'].append(words.IRC( + host="irc.rizon.net", + nick="aegibuild", + channels=["#aegisub"], + notify_events={ + 'exception': 1, + 'successToFailure': 1, + 'failureToSuccess': 1 + } +)) + +# Realtime client +# from buildbot.status import client +# c['status'].append(client.PBListener(9988)) diff --git a/devel/tinderbox/buildbot/master/public_html/buildbot.css b/devel/tinderbox/buildbot/master/public_html/buildbot.css new file mode 100644 index 000000000..9398ce72d --- /dev/null +++ b/devel/tinderbox/buildbot/master/public_html/buildbot.css @@ -0,0 +1,64 @@ +* { + font-family: Garamond, Helvetica, Verdana, Cursor; + font-size: 12px; +} + +a:link,a:visited,a:active { + color: #000000; +} +a:hover { + background-color: #EEEEEE; +} + +.table { + border-spacing: 2px; +} + +td.Event, td.Activity, td.Change, td.Time, td.Builder { + color: #333333; + border: 1px solid #666666; + background-color: #CCCCCC; +} + +/* LastBuild, BuildStep states */ +.start { + color: #000000; + border: 1px solid #1111ff; + background-color: #66bbff; +} + +.success { + color: #000000; + border: 1px solid #2f8f0f; + background-color: #8fdf5f; +} + +.failure { + color: #FFFFFF; + border: 1px solid #8f3636; + background-color: #ff0000; +} + +.warnings { + color: #FFFFFF; + border: 1px solid #fc901f; + background-color: #ffc343; +} + +.skipped { + color: #000000; + border: 1px solid #777777; + background-color: #aaaaaa; +} + +.exception, td.offline { + color: #FFFFFF; + border: 1px solid #8000c0; + background-color: #e0b0ff; +} + +.running, td.building { + color: #666666; + border: 1px solid #bfbf00; + background-color: #fffc6c; +} diff --git a/devel/tinderbox/buildbot/master/public_html/index.html b/devel/tinderbox/buildbot/master/public_html/index.html new file mode 100644 index 000000000..23e6650f0 --- /dev/null +++ b/devel/tinderbox/buildbot/master/public_html/index.html @@ -0,0 +1,32 @@ + + + + +Welcome to the Buildbot + + + +

Welcome to the Buildbot!

+ + + + + diff --git a/devel/tinderbox/buildbot/master/public_html/robots.txt b/devel/tinderbox/buildbot/master/public_html/robots.txt new file mode 100644 index 000000000..47a9d27cf --- /dev/null +++ b/devel/tinderbox/buildbot/master/public_html/robots.txt @@ -0,0 +1,9 @@ +User-agent: * +Disallow: /waterfall +Disallow: /builders +Disallow: /changes +Disallow: /buildslaves +Disallow: /schedulers +Disallow: /one_line_per_build +Disallow: /one_box_per_builder +Disallow: /xmlrpc diff --git a/devel/tinderbox/buildbot/slave/anpan/info/admin b/devel/tinderbox/buildbot/slave/anpan/info/admin new file mode 100644 index 000000000..10ed4971c --- /dev/null +++ b/devel/tinderbox/buildbot/slave/anpan/info/admin @@ -0,0 +1 @@ +Amar Takhar (verm) diff --git a/devel/tinderbox/buildbot/slave/anpan/info/host b/devel/tinderbox/buildbot/slave/anpan/info/host new file mode 100644 index 000000000..31890097d --- /dev/null +++ b/devel/tinderbox/buildbot/slave/anpan/info/host @@ -0,0 +1,4 @@ +Windows Vista +CPU: x86_64 +Path: SP2 +Hosted by: Jernej Simončič (ender) diff --git a/devel/tinderbox/buildbot/slave/anpan/run.bat b/devel/tinderbox/buildbot/slave/anpan/run.bat new file mode 100644 index 000000000..ca0fb40d0 --- /dev/null +++ b/devel/tinderbox/buildbot/slave/anpan/run.bat @@ -0,0 +1 @@ +env -i Path="%Path%" SystemDrive="%SystemDrive%" PATHEXT="%PATHEXT%" ComSpec="%ComSpec%" c:\python25\python c:\python25\scripts\buildbot start . diff --git a/devel/tinderbox/buildbot/slave/mochi/info/admin b/devel/tinderbox/buildbot/slave/mochi/info/admin new file mode 100644 index 000000000..10ed4971c --- /dev/null +++ b/devel/tinderbox/buildbot/slave/mochi/info/admin @@ -0,0 +1 @@ +Amar Takhar (verm) diff --git a/devel/tinderbox/buildbot/slave/mochi/info/host b/devel/tinderbox/buildbot/slave/mochi/info/host new file mode 100644 index 000000000..eab5b5847 --- /dev/null +++ b/devel/tinderbox/buildbot/slave/mochi/info/host @@ -0,0 +1,4 @@ +Debian Lenny 5.0.1 +CPU: i686 +Linux kernel: 2.6.26-2-686 +Hosted by: Jernej Simončič (ender) diff --git a/devel/tinderbox/buildbot/slave/mochi/run.sh b/devel/tinderbox/buildbot/slave/mochi/run.sh new file mode 100755 index 000000000..d62ae32a6 --- /dev/null +++ b/devel/tinderbox/buildbot/slave/mochi/run.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd /home/verm/buildslave +exec env -i PATH="$PATH" buildbot start . diff --git a/devel/tinderbox/buildbot/slave/mokona/LaunchAgents/net.buildbot.buildbot.slave.mokona.plist b/devel/tinderbox/buildbot/slave/mokona/LaunchAgents/net.buildbot.buildbot.slave.mokona.plist new file mode 100644 index 000000000..fd3c2a92e --- /dev/null +++ b/devel/tinderbox/buildbot/slave/mokona/LaunchAgents/net.buildbot.buildbot.slave.mokona.plist @@ -0,0 +1,37 @@ + + + + + StandardOutPath + twistd.log + StandardErrorPath + twistd-err.log + EnvironmentVariables + + PATH + /Users/verm/python/bin:/Users/verm/prefix/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Developer/Tools + PYTHONPATH + /Users/verm/python/lib/python2.5/site-packages + + KeepAlive + + SuccessfulExit + + + Label + net.buildbot.buildbot.slave.mokona + ProgramArguments + + /Users/verm/python/bin/twistd + -no + -y + ./buildbot.tac + + RunAtLoad + + UserName + verm + WorkingDirectory + /Users/verm/buildslave + + diff --git a/devel/tinderbox/buildbot/slave/mokona/info/admin b/devel/tinderbox/buildbot/slave/mokona/info/admin new file mode 100644 index 000000000..10ed4971c --- /dev/null +++ b/devel/tinderbox/buildbot/slave/mokona/info/admin @@ -0,0 +1 @@ +Amar Takhar (verm) diff --git a/devel/tinderbox/buildbot/slave/mokona/info/host b/devel/tinderbox/buildbot/slave/mokona/info/host new file mode 100644 index 000000000..20a0a05be --- /dev/null +++ b/devel/tinderbox/buildbot/slave/mokona/info/host @@ -0,0 +1,4 @@ +OSX Tiger 10.4.11 +CPU: powerpc +XNU kerne: xnu-792.24.17~1/RELEASE_PPC +Hosted by: Niels Martin Hansen (jfs) diff --git a/devel/tinderbox/buildbot/slave/nori/info/admin b/devel/tinderbox/buildbot/slave/nori/info/admin new file mode 100644 index 000000000..10ed4971c --- /dev/null +++ b/devel/tinderbox/buildbot/slave/nori/info/admin @@ -0,0 +1 @@ +Amar Takhar (verm) diff --git a/devel/tinderbox/buildbot/slave/nori/info/host b/devel/tinderbox/buildbot/slave/nori/info/host new file mode 100644 index 000000000..a42748d59 --- /dev/null +++ b/devel/tinderbox/buildbot/slave/nori/info/host @@ -0,0 +1,4 @@ +Ubuntu Jaunty 9.0.4 +CPU: x86_64 +Linux kernel: 2.6.28-11-generic +Hosted by: Fruit diff --git a/devel/tinderbox/buildbot/slave/nori/run.sh b/devel/tinderbox/buildbot/slave/nori/run.sh new file mode 100755 index 000000000..d62ae32a6 --- /dev/null +++ b/devel/tinderbox/buildbot/slave/nori/run.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd /home/verm/buildslave +exec env -i PATH="$PATH" buildbot start . diff --git a/devel/tinderbox/buildbot/slave/tako/info/admin b/devel/tinderbox/buildbot/slave/tako/info/admin new file mode 100644 index 000000000..10ed4971c --- /dev/null +++ b/devel/tinderbox/buildbot/slave/tako/info/admin @@ -0,0 +1 @@ +Amar Takhar (verm) diff --git a/devel/tinderbox/buildbot/slave/tako/info/host b/devel/tinderbox/buildbot/slave/tako/info/host new file mode 100644 index 000000000..651347faa --- /dev/null +++ b/devel/tinderbox/buildbot/slave/tako/info/host @@ -0,0 +1,3 @@ +OSX Leopard 10.5.6 +CPU: amd64 +Hosted by: Amar Takhar diff --git a/devel/tinderbox/buildbot/slave/tako/run.sh b/devel/tinderbox/buildbot/slave/tako/run.sh new file mode 100755 index 000000000..8866e232f --- /dev/null +++ b/devel/tinderbox/buildbot/slave/tako/run.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd /usr/home/verm/buildslave +exec env -i PATH="$PATH" buildbot start .