def buildbot_loop(): time_of_last_change = None while True: if not is_git_up_to_date(): # there was a new checking, it resets the wait time time_of_last_change = datetime.datetime.now() print( "New checkins detected, sleeping for 15 minutes, %s until pre-release" % pretty_print_secs(TIME_BETWEEN_PRE_RELEASE_BUILDS_IN_SECS) ) time.sleep(60 * 15) # 15 mins continue if time_of_last_change == None: # no changes since last pre-relase, sleep until there is a checkin print("No checkins since last pre-release, sleeping for 15 minutes") time.sleep(60 * 15) # 15 mins continue td = datetime.datetime.now() - time_of_last_change secs_until_prerelease = TIME_BETWEEN_PRE_RELEASE_BUILDS_IN_SECS - int(td.total_seconds()) if secs_until_prerelease > 0: print("Sleeping for 15 minutes, %s until pre-release" % pretty_print_secs(secs_until_prerelease)) time.sleep(60 * 15) # 15 mins continue build_pre_release() time_of_last_change = None
def buildbot_loop(): time_of_last_change = None while True: if not is_git_up_to_date(): # there was a new checking, it resets the wait time time_of_last_change = datetime.datetime.now() print("New checkins detected, sleeping for 15 minutes, %s until pre-release" % pretty_print_secs(TIME_BETWEEN_PRE_RELEASE_BUILDS_IN_SECS)) time.sleep(60 * 15) # 15 mins continue if time_of_last_change == None: # no changes since last pre-relase, sleep until there is a checkin print("No checkins since last pre-release, sleeping for 15 minutes") time.sleep(60 * 15) # 15 mins continue td = datetime.datetime.now() - time_of_last_change secs_until_prerelease = TIME_BETWEEN_PRE_RELEASE_BUILDS_IN_SECS - \ int(td.total_seconds()) if secs_until_prerelease > 0: print("Sleeping for 15 minutes, %s until pre-release" % pretty_print_secs(secs_until_prerelease)) time.sleep(60 * 15) # 15 mins continue build_pre_release() time_of_last_change = None
def buildbot_loop(): global g_time_of_last_build while True: # util.get_svn_versions() might throw an exception due to # temporary network problems, so retry try: (local_ver, latest_ver) = util.get_svn_versions() except: print("get_svn_versions() threw an exception") time.sleep(120) continue print("local ver: %s, latest ver: %s" % (local_ver, latest_ver)) revs_built = 0 while int(local_ver) <= int(latest_ver): if not has_already_been_built(local_ver): build_version_retry(local_ver) revs_built += 1 else: print("We have already built revision %s" % local_ver) local_ver = str(int(local_ver) + 1) delete_old_logs() # don't sleep if we built something in this cycle. a new checkin might # have happened while we were working if revs_built > 0: g_time_of_last_build = datetime.datetime.now() continue secs_until_prerelease = None if g_time_of_last_build is not None: td = datetime.datetime.now() - g_time_of_last_build secs_until_prerelease = TIME_BETWEEN_PRE_RELEASE_BUILDS_IN_SECS - \ int(td.total_seconds()) if secs_until_prerelease < 0: build_pre_release() g_time_of_last_build = None if secs_until_prerelease is None: print("Sleeping for 15 minutes to wait for new checkin") else: print("Sleeping for 15 minutes, %s until pre-release" % pretty_print_secs(secs_until_prerelease)) time.sleep(60 * 15) # 15 mins