classes/buildhistory: write out task signatures on every build
If we want to determine what changed since the last build, one angle from which to look at it is to check the signatures. However, if we don't actually have the signatures from the last build we don't have anywhere to start. Save the signatures on each build in order to give us the starting point. NOTE: you need to set your BUILDHISTORY_FEATURES value to include "task" to enable collection of these signatures as it is is disabled by default. (From OE-Core rev: 11f68f65c46c5bc26ddeeade3021e83b3a7f895a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
313e551b55
commit
6774995322
|
@ -600,6 +600,17 @@ POPULATE_SDK_POST_HOST_COMMAND[vardepvalueexclude] .= "| buildhistory_list_insta
|
|||
SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; buildhistory_get_extra_sdkinfo; "
|
||||
SDK_POSTPROCESS_COMMAND[vardepvalueexclude] .= "| buildhistory_get_sdkinfo ; buildhistory_get_extra_sdkinfo; "
|
||||
|
||||
python buildhistory_write_sigs() {
|
||||
if not "task" in (d.getVar('BUILDHISTORY_FEATURES') or "").split():
|
||||
return
|
||||
|
||||
# Create sigs file
|
||||
if hasattr(bb.parse.siggen, 'dump_siglist'):
|
||||
taskoutdir = os.path.join(d.getVar('BUILDHISTORY_DIR'), 'task')
|
||||
bb.utils.mkdirhier(taskoutdir)
|
||||
bb.parse.siggen.dump_siglist(os.path.join(taskoutdir, 'tasksigs.txt'))
|
||||
}
|
||||
|
||||
def buildhistory_get_build_id(d):
|
||||
if d.getVar('BB_WORKERCONTEXT') != '1':
|
||||
return ""
|
||||
|
@ -765,6 +776,7 @@ python buildhistory_eventhandler() {
|
|||
shutil.rmtree(olddir)
|
||||
if e.data.getVar("BUILDHISTORY_COMMIT") == "1":
|
||||
bb.note("Writing buildhistory")
|
||||
bb.build.exec_func("buildhistory_write_sigs", d)
|
||||
localdata = bb.data.createCopy(e.data)
|
||||
localdata.setVar('BUILDHISTORY_BUILD_FAILURES', str(e._failures))
|
||||
interrupted = getattr(e, '_interrupted', 0)
|
||||
|
|
|
@ -211,6 +211,16 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
|
|||
f.write(' "\n')
|
||||
f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(l)))
|
||||
|
||||
def dump_siglist(self, sigfile):
|
||||
with open(sigfile, "w") as f:
|
||||
tasks = []
|
||||
for taskitem in self.taskhash:
|
||||
(fn, task) = taskitem.rsplit(".", 1)
|
||||
pn = self.lockedpnmap[fn]
|
||||
tasks.append((pn, task, self.taskhash[taskitem]))
|
||||
for (pn, task, taskhash) in sorted(tasks):
|
||||
f.write('%s.%s %s\n' % (pn, task, taskhash))
|
||||
|
||||
def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d):
|
||||
warn_msgs = []
|
||||
error_msgs = []
|
||||
|
|
Loading…
Reference in New Issue