Changeset 5024

Show
Ignore:
Timestamp:
07/23/08 13:52:09 (6 months ago)
Author:
StevenMohr
Message:

added new buildtask tg_ng_setup
added test of build eggs
fixed UploadEggs?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • build/buildmaster/master.cfg

    r5008 r5024  
    7474#c['schedulers'].append(Periodic('TG',["TG1-full","TG11-full","TG2-full"],60*90)) 
    7575c['schedulers'].append(Periodic("core", 
    76                 ["TG1-full","TG11-full","TG2-full"],60*30)) 
     76                ["TG1-full","TG11-full","TG2-full","TG_NG_SETUP"],60*5)) 
    7777 
    7878c['schedulers'].append(Periodic("dependencies", 
    79                 ["Cheetah","RuleDispatch","PyProtocol","SimpleJSON","cElementTree"],60*60*12)) 
     79                ["Cheetah","RuleDispatch","PyProtocol","SimpleJSON","cElementTree"],60*5)) 
    8080 
    8181 
     
    107107ftg2   = tg2builder("bin:lib") 
    108108 
     109ftg_ng = tg_ng_setupbuilder("bin:lib") 
     110 
    109111############# RuleDispatch ############### 
    110112fruledispatch = dependencybuildersvn("svn://svn.eby-sarna.com/svnroot/RuleDispatch","bin:lib","RuleDispatch",["PyProtocols"]) 
     
    183185      } 
    184186c['builders'].append(b8) 
     187 
     188b9 = {'name': "TG_NG_SETUP", 
     189      'slavenames': py24list+py25list, 
     190      'builddir': "tgng", 
     191      'factory': ftg_ng 
     192      } 
     193c['builders'].append(b9) 
    185194####### STATUS TARGETS 
    186195 
     
    192201 
    193202from buildbot.status import html 
    194 c['status'].append(html.WebStatus(http_port=8010)) 
     203c['status'].append(html.WebStatus(http_port=8010,allowForce=True)) 
    195204 
    196205# from buildbot.status import mail 
  • build/buildmaster/tgbuilder.py

    r5011 r5024  
    1717    ftg1 = factory.BuildFactory() 
    1818    ftg1.addStep(source.SVN(mode='clobber',svnurl='http://svn.turbogears.org/branches/1.0')) 
    19     ftg1.addStep(FileDownload,mastersrc="autobuildQuickstarts.py",slavedest="autobuildQuickstarts.py") 
    20     ftg1.addStep(VirtualEnv,env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
     19    ftg1.addStep(FileDownload,mastersrc="autobuild_quickstarts.py",slavedest="autobuild_quickstarts.py") 
     20    ftg1.addStep(FileDownload,mastersrc="upload_script.py",slavedest="upload_script.py") 
     21    ftg1.addStep(VirtualEnv, env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    2122    ftg1.addStep(InterOSShellCommand,command=["cp","python2.3","python"],description="Rename python23", 
    2223                 workdir="build/bin",flunkOnFailure=False) 
     
    3132    ftg1.addStep(Nose,verbose=True,testdir="turbogears/tests",description="Running nosetest TG", 
    3233                 env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    33     ftg1.addStep(Python,script="autobuildQuickstarts.py",description="Creating quickstart projects", 
     34    ftg1.addStep(Python,script="autobuild_quickstarts.py",description="Creating quickstart projects", 
    3435                 env={'PYTHONPATH':pythonpath}) 
    3536    ftg1.addStep(Nose,description="Running nosetest Quickstart", 
    3637                 env={'PYTHONPATH':pythonpath},testdir="build") 
    37     ftg1.addStep(BuildEgg,description="Building TG1 egg",env={'PYTHONPATH':pythonpath},upload=True) 
     38    ftg1.addStep(BuildEgg,description="Building TG1 egg",env={'PYTHONPATH':pythonpath}) 
     39    ftg1.addStep(EasyInstall,env={'PYTHONPATH':pythonpath}, localinstall = True, haltOnFailure = True) 
     40    ftg1.addStep(UploadEgg,env={'PYTHONPATH':pythonpath},package=["TurboGears 1"]) 
    3841    return ftg1 
    3942 
     
    4851 
    4952    ftg11.addStep(source.SVN(mode='clobber',svnurl='http://svn.turbogears.org/branches/1.1')) 
    50     ftg11.addStep(FileDownload,mastersrc="autobuildQuickstarts.py",slavedest="autobuildQuickstarts.py") 
     53    ftg11.addStep(FileDownload,mastersrc="autobuild_quickstarts.py",slavedest="autobuild_quickstarts.py") 
    5154    ftg11.addStep(VirtualEnv,env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    52     ftg11.addStep(FileDownload,mastersrc="updateSetupCfg.py",slavedest="updateSetupCfg.py") 
     55    ftg11.addStep(FileDownload,mastersrc="upload_script.py",slavedest="upload_script.py") 
    5356 
    5457    ftg11.addStep(InterOSShellCommand,command=["cp","python2.3","python"],description="Rename python23", 
     
    6568    ftg11.addStep(Nose,testdir="turbogears/tests",verbose=True,description="Running nosetest TG", 
    6669                  env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    67     ftg11.addStep(Python,script="autobuildQuickstarts.py",description="Creating quickstart projects", 
     70    ftg11.addStep(Python,script="autobuild_quickstarts.py",description="Creating quickstart projects", 
    6871                  env={'PYTHONPATH':pythonpath}) 
    6972    ftg11.addStep(Nose,description="Running nosetest Quickstart",env={'PYTHONPATH':pythonpath}) 
    7073 
    71     ftg11.addStep(BuildEgg,description="Building TG11 egg",env={'PYTHONPATH':pythonpath},upload=True) 
     74    ftg11.addStep(BuildEgg,description="Building TG11 egg",env={'PYTHONPATH':pythonpath}) 
     75    ftg11.addStep(EasyInstall,env={'PYTHONPATH':pythonpath}, localinstall = True, haltOnFailure = True) 
     76    ftg11.addStep(UploadEgg,env={'PYTHONPATH':pythonpath},package=["TurboGears 1.1"]) 
    7277    return ftg11 
    7378 
     
    8388    ftg2.addStep(source.SVN(mode='clobber',svnurl='http://svn.turbogears.org/projects/tgrepozewho/trunk',workdir='build/tgreoz')) 
    8489    ftg2.addStep(source.Mercurial(repourl="https://www.knowledgetap.com/hg/webhelpers",mode='clobber',workdir="build/webhelpers")) 
    85  
     90    ftg2.addStep(FileDownload,mastersrc="upload_script.py",slavedest="upload_script.py") 
     91    ftg2.addStep(FileDownload,mastersrc="autobuild_quickstarts.py",slavedest="autobuild_quickstarts.py") 
    8692    ftg2.addStep(VirtualEnv,env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    8793 
     
    104110                 env={'PYTHONPATH':newppath},workdir="build/tgdev") 
    105111 
    106     ftg2.addStep(Python,script="autobuildQuickstarts.py",script_args=["TG2"],env={'PYTHONPATH':pythonpath}, 
     112    ftg2.addStep(Python,script="autobuild_quickstarts.py",script_args=["TG2"],env={'PYTHONPATH':pythonpath}, 
    107113                 description="Creating quickstart projects",workdir="build") 
    108114 
    109     ftg2.addStep(Paver,mode="bdist_egg",description="Building TG2 egg",upload=True, 
     115    ftg2.addStep(Paver,mode="bdist_egg",description="Building TG2 egg", 
    110116                 env={'PYTHONPATH':pythonpath}) 
     117    ftg2.addStep(EasyInstall,env={'PYTHONPATH':pythonpath}, localinstall = True, haltOnFailure = True) 
     118    ftg2.addStep(UploadEgg,env={'PYTHONPATH':pythonpath},package=["TurboGears 2"]) 
    111119    return ftg2 
    112120 
     
    117125    f = factory.BuildFactory() 
    118126    f.addStep(source.SVN(svnurl=svn_url,mode='clobber')) 
     127    f.addStep(FileDownload,mastersrc="upload_script.py",slavedest="upload_script.py") 
    119128    f.addStep(VirtualEnv,env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    120129    f.addStep(EasyInstall,package=["nose"],env={'PYTHONPATH':pythonpath}) 
     
    125134    f.addStep(RunSetup,description="Installing "+name,env={'PYTHONPATH':pythonpath}) 
    126135    f.addStep(Python,script="setup.py",script_args=["test"],description="Testing "+name, env={'PYTHONPATH':pythonpath},workdir="build",haltOnFailure=True) 
    127     f.addStep(BuildEgg,upload=True,env={'PYTHONPATH':pythonpath}) 
     136    f.addStep(BuildEgg,env={'PYTHONPATH':pythonpath}) 
     137    f.addStep(EasyInstall,env={'PYTHONPATH':pythonpath}, localinstall = True, haltOnFailure = True) 
     138    f.addStep(UploadEgg,env={'PYTHONPATH':pythonpath},package=[name]) 
    128139    return f 
    129140 
     
    131142    """dependencybuilderee creates a build factory which downloads the source of the dependency via easy_install and builds the egg.""" 
    132143    f = factory.BuildFactory() 
    133     #f.addStep(CleanDir) 
     144    f.addStep(CleanDir) 
     145    f.addStep(FileDownload,mastersrc="upload_script.py",slavedest="upload_script.py") 
    134146    f.addStep(VirtualEnv,env={'PYTHONPATH':pythonpath},haltOnFailure=True) 
    135147    f.addStep(EasyInstall,package=["Nose"]) 
    136     #f.addStep(DownloadSourceEE,package=name,env={'PYTHONPATH':pythonpath}) 
    137     #f.addStep(BuildEgg,upload=True,workdir="build/"+name[0],env={'PYTHONPATH':modifyppath(pythonpath,"..")}) 
    138148    f.addStep(BuildEggEE,package=name, env={'PYTHONPATH':pythonpath}) 
     149    f.addStep(EasyInstall,env={'PYTHONPATH':pythonpath}, localinstall = True, haltOnFailure = True) 
     150    f.addStep(UploadEgg,env={'PYTHONPATH':pythonpath},package=name) 
     151    return f 
     152 
     153def tg_ng_setupbuilder(pythonpath): 
     154    f = factory.BuildFactory() 
     155    f.addStep(CleanDir) 
     156    f.addStep(FileDownload,mastersrc="create-tgsetupng.py",slavedest="create-tgsetupng.py") 
     157    f.addStep(Python,script="create-tgsetupng.py",haltOnFailure=True) 
     158    f.addStep(Python,script="tgsetupng.py",script_args=["tg"],haltOnFailure=True) 
    139159    return f 
    140160 
  • build/buildmaster/tg_mbuildsteps.py

    r5009 r5024  
    5353                  
    5454class EasyInstall(BaseStep): 
    55     parms = BaseStep.parms + ['package','URL']     
     55    parms = BaseStep.parms + ['package','URL','localinstall']     
    5656    def __init__(self, *args, **kwargs): 
    5757        BaseStep.__init__(self,  slave_name="EasyInstall", *args, **kwargs)    
     
    6363 
    6464class BuildEgg(BaseStep): 
    65     parms = BaseStep.parms + ['upload']  
     65    parms = BaseStep.parms 
    6666    def __init__(self, *args, **kwargs): 
    6767        BaseStep.__init__(self,  slave_name="BuildEgg", *args, **kwargs) 
     
    7373         
    7474class BuildEggEE(BaseStep): 
    75     parms = BaseStep.parms + ['upload','package']  
     75    parms = BaseStep.parms + ['package']  
    7676    def __init__(self, *args, **kwargs): 
    7777        BaseStep.__init__(self, slave_name="BuildEggEE", *args, **kwargs) 
     
    8888 
    8989class Paver(BaseStep): 
    90     parms = BaseStep.parms + ['mode','upload']  
     90    parms = BaseStep.parms + ['mode']  
    9191    def __init__(self, *args, **kwargs): 
    9292        BaseStep.__init__(self,  slave_name="Paver", *args, **kwargs) 
     
    101101    def __init__(self, *args, **kwargs): 
    102102        BaseStep.__init__(self, slave_name="CleanDir", *args, **kwargs) 
     103         
     104class UploadEgg(BaseStep): 
     105    parms = BaseStep.parms +['package'] 
     106    def __init__(self, *args, **kwargs): 
     107        BaseStep.__init__(self, slave_name="UploadEgg", *args, **kwargs) 
  • build/buildmaster/tg_sbuildsteps.py

    r5010 r5024  
    1515    def start(self): 
    1616        args = self.args 
    17         assert args['package'] is not None 
     17        #assert (args['package'] is not None) or (args['localinstall'] is not None)   
    1818         
    1919        env = args['env'] 
     
    3333        newworkdir = correctseperator(args['workdir']) 
    3434        workdir = os.path.join(self.builder.basedir,newworkdir) 
     35         
     36        if 'localinstall' in args and args['localinstall']: 
     37            if os.path.exists(os.path.join(workdir,'dist')): 
     38                workdir = os.path.join(workdir,'dist') 
     39            dir_content = os.listdir(workdir) 
     40            for element in dir_content: 
     41                if ".egg" in element and os.path.isfile(os.path.join(workdir,element)): 
     42                        args['package'] = [os.path.join(workdir,element)] 
     43                 
    3544 
    3645        if 'URL' in args: 
     
    3847        else: 
    3948            commandline = ["easy_install"]+ args['package'] 
    40         #commandline.remove(None) 
     49         
    4150 
    4251        c = ShellCommand(self.builder, commandline, 
     
    280289         
    281290        if 'PATH' in env: 
    282             env['PATH'] = correctseperator(env['PATH'])  
     291            env['PATH'] = correctseperator(env['PATH']) 
    283292         
    284293        if os.path.sep == '\\': 
     
    358367        env = args.get('env') 
    359368         
    360         if 'PATH' in env: 
    361             env['PATH'] = correctseperator(env['PATH'])  
     369        newworkdir = correctseperator(args['workdir']) 
     370         
     371         
     372        
    362373         
    363374        if os.path.sep == '\\': 
     375            env['PATH'] = correctpathdepth(newworkdir) + 'scripts' + os.path.pathsep + os.getenv("PATH") 
     376        else: 
     377            env['PATH'] = correctpathdepth(newworkdir) + 'bin' + os.path.pathsep + os.getenv("PATH") 
     378         
     379         
     380        if 'PYTHONPATH' in env: 
     381            env['PYTHONPATH'] = correctseperator(env['PYTHONPATH']) 
     382 
     383 
     384 
     385        workdir = os.path.join(self.builder.basedir, newworkdir) 
     386        commandline = ["paver",args['mode']] 
     387 
     388        c = ShellCommand(self.builder, commandline, 
     389                         workdir, env, 
     390                         timeout=args.get('timeout', None), 
     391                         sendStdout=args.get('want_stdout', True), 
     392                         sendStderr=args.get('want_stderr', True), 
     393                         sendRC=True, 
     394                         initialStdin=args.get('initial_stdin'), 
     395                         keepStdinOpen=args.get('keep_stdin_open'), 
     396                         logfiles=args.get('logfiles', {}), 
     397                         ) 
     398        self.command = c 
     399        d = self.command.start() 
     400        return d 
     401registerSlaveCommand("Paver", SlavePaver, command_version) 
     402 
     403class SlaveDownloadSourceEE(SlaveShellCommand): 
     404    def start(self): 
     405        args = self.args 
     406        assert 'package' in args 
     407 
     408        env = args.get('env') 
     409         
     410         
     411        if 'PATH' in env: 
     412            env['PATH'] = correctseperator(env['PATH'])  
     413        if os.sep == '\\': 
    364414            env['PATH'] = 'scripts' + os.path.pathsep + os.getenv("PATH") 
    365415        else: 
     
    368418        if 'PYTHONPATH' in env: 
    369419            env['PYTHONPATH'] = correctseperator(env['PYTHONPATH']) 
    370  
    371         newworkdir = correctseperator(args['workdir']) 
    372         workdir = os.path.join(self.builder.basedir, newworkdir) 
    373  
    374         commandline = ["paver",args['mode']] 
    375  
    376         c = ShellCommand(self.builder, commandline, 
    377                          workdir, env, 
    378                          timeout=args.get('timeout', None), 
    379                          sendStdout=args.get('want_stdout', True), 
    380                          sendStderr=args.get('want_stderr', True), 
    381                          sendRC=True, 
    382                          initialStdin=args.get('initial_stdin'), 
    383                          keepStdinOpen=args.get('keep_stdin_open'), 
    384                          logfiles=args.get('logfiles', {}), 
    385                          ) 
    386         self.command = c 
    387         d = self.command.start() 
    388         return d 
    389 registerSlaveCommand("Paver", SlavePaver, command_version) 
    390  
    391 class SlaveDownloadSourceEE(SlaveShellCommand): 
    392     def start(self): 
    393         args = self.args 
    394         assert 'package' in args 
    395  
    396         env = args.get('env') 
    397          
    398          
    399         if 'PATH' in env: 
    400             env['PATH'] = correctseperator(env['PATH'])  
    401         if os.sep == '\\': 
    402             env['PATH'] = 'scripts' + os.path.pathsep + os.getenv("PATH") 
    403         else: 
    404             env['PATH'] = 'bin' + os.path.pathsep + os.getenv("PATH") 
    405          
    406         if 'PYTHONPATH' in env: 
    407             env['PYTHONPATH'] = correctseperator(env['PYTHONPATH']) 
    408420        newworkdir = correctseperator(args['workdir']) 
    409421 
     
    432444    def start(self): 
    433445        args = self.args 
    434         assert 'package' in args 
     446 
    435447 
    436448        env = {} 
     
    439451        workdir = os.path.join(self.builder.basedir, newworkdir) 
    440452         
    441         commandline = ["rm","-rf","*"] + args['package'] 
     453        commandline = ["rm","-rf","*"] 
    442454 
    443455        c = ShellCommand(self.builder, commandline, 
     
    455467        return d 
    456468registerSlaveCommand("CleanDir", SlaveCleanDir, command_version) 
     469 
     470class SlaveUploadEgg(SlaveShellCommand): 
     471    def start(self): 
     472        args = self.args 
     473        env = {} 
     474        newworkdir = correctseperator(args['workdir']) 
     475        workdir = os.path.join(self.builder.basedir, newworkdir) 
     476        searchdir = workdir 
     477        if os.path.exists(os.path.join(workdir,'dist')): 
     478                searchdir = os.path.join(workdir,'dist') 
     479        dir_content = os.listdir(searchdir) 
     480        for element in dir_content: 
     481            if ".egg" in element and os.path.isfile(os.path.join(searchdir,element)): 
     482                name = os.path.join(searchdir,element) 
     483         
     484        commandline = ["python","upload_script.py"] + args['package'] + [name]  
     485 
     486        c = ShellCommand(self.builder, commandline, 
     487                         workdir, environ=env, 
     488                         timeout=args.get('timeout', None), 
     489                         sendStdout=args.get('want_stdout', True), 
     490                         sendStderr=args.get('want_stderr', True), 
     491                         sendRC=True, 
     492                         initialStdin=args.get('initial_stdin'), 
     493                         keepStdinOpen=args.get('keep_stdin_open'), 
     494                         logfiles=args.get('logfiles', {}), 
     495                         ) 
     496        self.command = c 
     497        d = self.command.start() 
     498        return d 
     499registerSlaveCommand("UploadEgg", SlaveUploadEgg, command_version)