axmol/tools/jenkins-scripts/master-scripts/cocos2dx-libsize-tracking.py

88 lines
2.3 KiB
Python
Raw Normal View History

2019-11-23 20:27:39 +08:00
import os
import MySQLdb
import datetime
def connect_db():
db_host = os.environ['db_host']
db_user = os.environ['db_user']
db_pw = os.environ['db_pw']
db_name=os.environ['db_name']
db = MySQLdb.connect(db_host, db_user, db_pw, db_name)
return db
def close_db(db):
db.close()
def list_lib_names(db):
tables=[]
cursor = db.cursor()
#sql = "SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='dailybuild'"
sql = 'show tables'
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
tables.append(row[0])
return tables
def today():
now = datetime.datetime.now()
return now.strftime("%Y-%m-%d")
def prev_day(aDay, gap):
t = datetime.datetime.strptime(aDay, "%Y-%m-%d")
days = datetime.timedelta(hours=24*gap)
t = t - days
return t.strftime("%Y-%m-%d")
def next_day(aDay, gap):
t = datetime.datetime.strptime(aDay, "%Y-%m-%d")
days = datetime.timedelta(hours=24*gap)
t = t + days
return t.strftime("%Y-%m-%d")
def query_lib_size(db, libname, date):
cursor = db.cursor()
t1 = date + ' 00:00:00'
t2 = next_day(date,1) + ' 00:00:00'
sql = "SELECT size FROM %s WHERE createdTime > '%s' AND createdTime < '%s'" % (libname, t1, t2)
cursor.execute(sql)
result = cursor.fetchone()
#print libname + ":" + str(result[0])+'kB'
data = {}
data[libname] = result[0]
return data
def query_all_libs(db, date):
tables = list_lib_names(db)
result = {}
for t in tables:
data = query_lib_size(db, t, date)
result.update(data)
return result
db = connect_db()
#print tables
today = today()
Monday = prev_day(today, 4)
csv = "cocos2d-libsize-tracking-"+today+".csv"
with open(csv, "w") as stats_file:
title = 'date,'
libs = list_lib_names(db)
for name in libs:
title += name
title += ','
stats_file.write(title)
stats_file.write('\n')
for i in range(0,5):
d = next_day(Monday, i)
stats_file.write(d)
stats_file.write(',')
stats = query_all_libs(db, d)
for name in libs:
size = str(stats[name])
stats_file.write(size)
stats_file.write(',')
stats_file.write('\n')
close_db(db)
#print yesterday