Changeset 614 for branches/testScripts/nightlyBuild.py
- Timestamp:
- Oct 15, 2007 9:31:10 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/testScripts/nightlyBuild.py
r613 r614 7 7 import re 8 8 import time 9 10 import NBuserConfig 11 import NBprojectConfig 9 12 10 13 # TODO: … … 21 24 # to test on in an email dated 10/12/2007 12:01pm 22 25 23 #----------------------------------------------------------------------24 # NIGHTLY_BUILD_ROOT_DIR:25 # directory where code will be checked out and builds26 # done. If the directory does not exist, it will be created.27 #----------------------------------------------------------------------28 NIGHTLY_BUILD_ROOT_DIR = '/home/jp/COIN'29 30 #----------------------------------------------------------------------31 # Values for sending mail:32 # SMTP_SERVER_NAME: name of smtp server. For gmail server33 # this is smtp.gmail.com34 # SMTP_SERVER_PORT: port number of the smtp server. This is typically 25,35 # but for gmail server it is 587.36 # SMTP_SSL_SERVER: 0 or 1. If 1 then SMTP uses SSL (sometimes called startltls).37 # For gmail this is 1.38 # SMTP_USER_NAME: name of authorized user on server. If using gmail server39 # this is gmail_userid@gmail.com which is coded as40 # 'gmail_userid _AT_ gmail _DOT_ com.41 # SMTP_PASSWORD_FILENAME: name of file containing smtp user's password42 # SENDER_EMAIL_ADDR: email sent by this script will be from this address43 # MY_EMAIL_ADDR: All problems detected by the script will be sent to44 # this email address. The intention is for this to be45 # the email address of the person running this script46 # SEND_MAIL_TO_PROJECT_MANAGER: 0 or 1. If 1 then any problems47 # detected are sent to MY_EMAIL_ADDRESS and the48 # project manager.49 #----------------------------------------------------------------------50 #SMTP_SERVER_NAME = 'outgoing.verizon.net'51 #SMTP_SERVER_PORT = 2552 #SMTP_SSL_SERVER = 053 #SMTP_USER_NAME = 'jpfasano'54 55 SMTP_SERVER_NAME = 'smtp.gmail.com'56 SMTP_SERVER_PORT = 58757 SMTP_SSL_SERVER = 158 SMTP_USER_NAME = 'jpfasano _AT_ gmail _DOT_ com'59 SMTP_PASSWORD_FILENAME = '/home/jp/bin/smtpPwFile'60 61 SENDER_EMAIL_ADDR='jpfasano _AT_ verizon _DOT_ net'62 MY_EMAIL_ADDR='jpfasano _AT_ us _DOT_ ibm _DOT_ com'63 SEND_MAIL_TO_PROJECT_MANAGER=064 #SMTP_SERVER_NAME = 'gsbims.chicagogsb.edu'65 66 67 #----------------------------------------------------------------------68 # List of Projects to be processed by script69 #----------------------------------------------------------------------70 PROJECTS = ['CoinUtils','DyLP','Clp','SYMPHONY','Vol','Osi','Cgl','Cbc','Ipopt','OS','CppAD']71 #PROJECTS = ['CppAD']72 73 #----------------------------------------------------------------------74 PROJECT_EMAIL_ADDRS = {}75 UNITTEST_DIR = {}76 UNITTEST_CMD = {}77 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS = {}78 79 #----------------------------------------------------------------------80 PROJECT_EMAIL_ADDRS['CoinUtils'] = 'ladanyi _AT_ us _DOT_ ibm _DOT_ com'81 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS['CoinUtils'] = ['make test']82 83 #----------------------------------------------------------------------84 PROJECT_EMAIL_ADDRS['DyLP'] = 'lou _AT_ cs _DOT_ sfu _DOT_ ca'85 UNITTEST_DIR['DyLP'] = os.path.join('Osi','test')86 UNITTEST_CMD['DyLP'] = './unitTest -testOsiSolverInterface -netlibDir=_NETLIBDIR_ -cerr2cout'87 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS['DyLP'] = ['make test']88 89 #----------------------------------------------------------------------90 PROJECT_EMAIL_ADDRS['Clp'] = 'jjforre _AT_ us _DOT_ ibm _DOT_ com'91 UNITTEST_DIR['Clp'] = os.path.join('Clp','src')92 UNITTEST_CMD['Clp'] = './clp -unitTest -netlib dirNetlib=_NETLIBDIR_'93 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS['Clp'] = ['make test',UNITTEST_CMD['Clp']]94 95 #----------------------------------------------------------------------96 PROJECT_EMAIL_ADDRS['SYMPHONY'] = 'tkr2 _AT_ lehigh _DOT_ edu'97 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS['SYMPHONY'] = ['make test']98 99 #----------------------------------------------------------------------100 PROJECT_EMAIL_ADDRS['Vol'] = 'barahon _AT_ us _DOT_ ibm _DOT_ com'101 102 #----------------------------------------------------------------------103 PROJECT_EMAIL_ADDRS['Osi'] = 'mjs _AT_ ces _DOT_ clemson _DOT_ edu'104 UNITTEST_DIR['Osi'] = os.path.join('Osi','test')105 UNITTEST_CMD['Osi'] = './unitTest -testOsiSolverInterface'106 UNITTEST_CMD['Osi'] = './unitTest -testOsiSolverInterface -netlibDir=_NETLIBDIR_ -cerr2cout'107 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS['Osi'] = ['make test',UNITTEST_CMD['Osi']]108 109 #----------------------------------------------------------------------110 PROJECT_EMAIL_ADDRS['Cgl'] = 'robinlh _AT_ us _DOT_ ibm _DOT_ com'111 ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS['Cgl'] = ['make test']112 113 #----------------------------------------------------------------------114 PROJECT_EMAIL_ADDRS['Cbc'] = 'jjforre _AT_ us _DOT_ ibm _DOT_ com'115 116 #----------------------------------------------------------------------117 PROJECT_EMAIL_ADDRS['Ipopt'] = 'andreasw _AT_ us _DOT_ ibm _DOT_ com'118 119 #----------------------------------------------------------------------120 PROJECT_EMAIL_ADDRS['OS'] = 'kipp _DOT_ martin _AT_ chicagogsb _DOT_ edu'121 122 #----------------------------------------------------------------------123 PROJECT_EMAIL_ADDRS['CppAD'] = 'bradbell _AT_ washington _DOT_ edu'124 26 125 27 #------------------------------------------------------------------------ … … 134 36 curDir = os.getcwd() 135 37 136 toAddrs = [unscrambleEmailAddress( MY_EMAIL_ADDR)]137 if PROJECT_EMAIL_ADDRS.has_key(project) andSEND_MAIL_TO_PROJECT_MANAGER:138 toAddrs.append(unscrambleEmailAddress( PROJECT_EMAIL_ADDRS[project]))38 toAddrs = [unscrambleEmailAddress(NBuserConfig.MY_EMAIL_ADDR)] 39 if NBprojectConfig.PROJECT_EMAIL_ADDRS.has_key(project) and NBuserConfig.SEND_MAIL_TO_PROJECT_MANAGER: 40 toAddrs.append(unscrambleEmailAddress(NBprojectConfig.PROJECT_EMAIL_ADDRS[project])) 139 41 140 42 subject = project + " build problem when running '" + cmd +"'" … … 152 54 def sendEmail(toAddrs,subject,message): 153 55 154 sender = unscrambleEmailAddress( SENDER_EMAIL_ADDR)56 sender = unscrambleEmailAddress(NBuserConfig.SENDER_EMAIL_ADDR) 155 57 msgWHeader = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" 156 58 % (sender, ", ".join(toAddrs), subject)) … … 158 60 159 61 # Get smpt server password 160 if os.path.isfile( SMTP_PASSWORD_FILENAME) :161 pwFilePtr = open( SMTP_PASSWORD_FILENAME,'r')62 if os.path.isfile(NBuserConfig.SMTP_PASSWORD_FILENAME) : 63 pwFilePtr = open(NBuserConfig.SMTP_PASSWORD_FILENAME,'r') 162 64 smtppass = pwFilePtr.read().strip() 163 65 pwFilePtr.close() 164 66 else : 165 writeLogMessage( "Failure reading pwFileName=" + SMTP_PASSWORD_FILENAME )67 writeLogMessage( "Failure reading pwFileName=" + NBuserConfig.SMTP_PASSWORD_FILENAME ) 166 68 sys.exit(1) 167 69 168 session = smtplib.SMTP( SMTP_SERVER_NAME,SMTP_SERVER_PORT)70 session = smtplib.SMTP(NBuserConfig.SMTP_SERVER_NAME,NBuserConfig.SMTP_SERVER_PORT) 169 71 #session.set_debuglevel(1) 170 if SMTP_SSL_SERVER==1 :72 if NBuserConfig.SMTP_SSL_SERVER==1 : 171 73 session.ehlo('x') 172 74 session.starttls() 173 75 session.ehlo('x') 174 session.login(unscrambleEmailAddress( SMTP_USER_NAME),smtppass)76 session.login(unscrambleEmailAddress(NBuserConfig.SMTP_USER_NAME),smtppass) 175 77 176 78 rc = session.sendmail(sender,toAddrs,msgWHeader) … … 201 103 # Many tests write a "Success" message. 202 104 # For test that do this, check for the success message 203 if ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS.has_key(project) :204 if buildStep in ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS[project] :105 if NBprojectConfig.ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS.has_key(project) : 106 if buildStep in NBprojectConfig.ALL_TESTS_COMPLETED_SUCCESSFULLY_CMDS[project] : 205 107 # Is the success message contained in the output? 206 108 if rc[1].rfind("All tests completed successfully") == -1 : … … 213 115 #--------------------------------------------------------------------- 214 116 # Clp's "./clp -unitTest -netlib dirNetlib=_NETLIBDIR_" 215 if project=='Clp' and buildStep== UNITTEST_CMD['Clp'] :117 if project=='Clp' and buildStep==NBprojectConfig.UNITTEST_CMD['Clp'] : 216 118 # Check that last netlib test case ran by looking for message of form 217 119 # '../../Data/Netlib/woodw took 0.47 seconds using algorithm either' … … 260 162 # If needed create the top level directory 261 163 #------------------------------------------------------------------------ 262 # rc=commands.getstatusoutput(N IGHTLY_BUILD_ROOT_DIR)263 if not os.path.isdir(N IGHTLY_BUILD_ROOT_DIR) :264 os.makedirs(N IGHTLY_BUILD_ROOT_DIR)265 os.chdir(N IGHTLY_BUILD_ROOT_DIR)164 # rc=commands.getstatusoutput(NBuserConfig.NIGHTLY_BUILD_ROOT_DIR) 165 if not os.path.isdir(NBuserConfig.NIGHTLY_BUILD_ROOT_DIR) : 166 os.makedirs(NBuserConfig.NIGHTLY_BUILD_ROOT_DIR) 167 os.chdir(NBuserConfig.NIGHTLY_BUILD_ROOT_DIR) 266 168 267 169 #------------------------------------------------------------------------ 268 170 # Get the data directories if they don't already exist 269 171 #------------------------------------------------------------------------ 270 dataBaseDir=os.path.join(N IGHTLY_BUILD_ROOT_DIR,'Data')172 dataBaseDir=os.path.join(NBuserConfig.NIGHTLY_BUILD_ROOT_DIR,'Data') 271 173 if not os.path.isdir(dataBaseDir) : 272 174 os.makedirs(dataBaseDir) … … 285 187 # Loop once for each project 286 188 #------------------------------------------------------------------------ 287 for p in PROJECTS:189 for p in NBuserConfig.PROJECTS: 288 190 writeLogMessage( p ) 289 191 rc = [0] … … 292 194 # svn checkout or update the project 293 195 #--------------------------------------------------------------------- 294 projectBaseDir=os.path.join(N IGHTLY_BUILD_ROOT_DIR,p)196 projectBaseDir=os.path.join(NBuserConfig.NIGHTLY_BUILD_ROOT_DIR,p) 295 197 projectCheckOutDir=os.path.join(projectBaseDir,'trunk') 296 198 if not os.path.isdir(projectBaseDir) : … … 357 259 # Run unitTest if available and different from 'make test' 358 260 #--------------------------------------------------------------------- 359 if UNITTEST_CMD.has_key(p) :360 unitTestPath = os.path.join(projectCheckOutDir, UNITTEST_DIR[p])261 if NBprojectConfig.UNITTEST_CMD.has_key(p) : 262 unitTestPath = os.path.join(projectCheckOutDir,NBprojectConfig.UNITTEST_DIR[p]) 361 263 os.chdir(unitTestPath) 362 264 363 unitTestCmd= UNITTEST_CMD[p]265 unitTestCmd=NBprojectConfig.UNITTEST_CMD[p] 364 266 unitTestCmd=unitTestCmd.replace('_NETLIBDIR_',netlibDir) 365 267 unitTestCmd=unitTestCmd.replace('_MIPLIB3DIR_',miplib3Dir) … … 389 291 # it should have values for 390 292 # NIGHTLY_BUILD_ROOT 391 # SMTP_SERVER_NAME392 # SMTP_SERVER_PORT393 # SMTP_SSL_SERVER394 # SMTP_USER_NAME395 # SMTP_PASSWORD_FILENAME = '/home/jp/bin/smtpPwFile'396 # SENDER_EMAIL_ADDR='jpfasano _AT_ verizon _DOT_ net'397 # MY_EMAIL_ADDR='jpfasano _AT_ us _DOT_ ibm _DOT_ com'293 # NBuserConfig.SMTP_SERVER_NAME 294 # NBuserConfig.SMTP_SERVER_PORT 295 # NBuserConfig.SMTP_SSL_SERVER 296 # NBuserConfig.SMTP_USER_NAME 297 # NBuserConfig.SMTP_PASSWORD_FILENAME = '/home/jp/bin/smtpPwFile' 298 # NBuserConfig.SENDER_EMAIL_ADDR='jpfasano _AT_ verizon _DOT_ net' 299 # NBuserConfig.MY_EMAIL_ADDR='jpfasano _AT_ us _DOT_ ibm _DOT_ com' 398 300 # 399 301 #---------------------------------------------------------------------- … … 434 336 # it should have values for 435 337 # NIGHTLY_BUILD_ROOT 436 # SMTP_SERVER_NAME437 # SMTP_SERVER_PORT438 # SMTP_SSL_SERVER439 # SMTP_USER_NAME440 # SMTP_PASSWORD_FILENAME441 # SENDER_EMAIL_ADDR442 # MY_EMAIL_ADDR338 # NBuserConfig.SMTP_SERVER_NAME 339 # NBuserConfig.SMTP_SERVER_PORT 340 # NBuserConfig.SMTP_SSL_SERVER 341 # NBuserConfig.SMTP_USER_NAME 342 # NBuserConfig.SMTP_PASSWORD_FILENAME 343 # NBuserConfig.SENDER_EMAIL_ADDR 344 # NBuserConfig.MY_EMAIL_ADDR 443 345 # 444 346 #----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.