Recent builds, >999, on the YP AutoBuilder were not being logged. This is because we sort the builds based on a string representation of their build number, yet string 1001 < string 999.
Resolve this by converting the build id's to an int, sorting them and then determining which is the highest/most recent build id. Signed-off-by: Joshua Lock <[email protected]> --- bin/buildlogger | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/buildlogger b/bin/buildlogger index 1b31281..912f419 100755 --- a/bin/buildlogger +++ b/bin/buildlogger @@ -219,7 +219,7 @@ def write_last_build(buildid): # Read last logged buildid from a file def read_last_build(): - last_build = '' + last_build = '0' try: with open(cachefile, 'r') as fi: last_build = fi.readline() @@ -254,7 +254,13 @@ def watch_for_builds(configfile): print("Failed to decode JSON: %s" % str(e)) continue - last_build = sorted(build_json.keys())[-1] + # The keys of the JSON dict are unicode strings, which makes + # sorting to find the most recent difficult (i.e. for a string type + # 999 > 1001). Convert them to ints for a simpler sort. + buildids = map(int, build_json.keys()) + buildids.sort() + last_build = str(buildids[-1]) + # If a new build is detected, post a new entry to the BuildLog if last_build != last_logged: new_entry, summary = ab_last_build_to_entry(build_json, last_build) -- 2.7.4 -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
