[yocto] Forcing a single task to re-run each build, by default.

Martin Hundebøll martin.hundeboll at prevas.dk
Wed Nov 22 00:53:21 PST 2017


Hi Paul,

On 2017-11-22 07:12, Paul Knopf wrote:
> I have a task that I would like to be forced to run for every build.
> 
> NOTE: I am aware of the deploy.bbclass, but I want to not use sstate. 
> Assume I am not using deploy.bbclass.
> 
> So, let's say I have this.
> 
> --------------------------------------------------------------------
> DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
> do_deploy[dirs] = "${DEPLOYDIR} ${B}"
> do_deploy[vardeps] += "DATETIME"
> 
> do_deploy() {
>      install -d ${DEPLOYDIR}
>      # custom stuff...
> }
> 
> addtask do_deploy after do_install
> --------------------------------------------------------------------
> 
> Now, when I run this recipe, I get "non-deterministic" errors, which I 
> get. Maybe I can get a DATETIME-ish variable that has the same random 
> value throughout the entire bitbake process?

Yes, DATETIME includes the seconds, which changes during the build and 
leads to tasks hashes changing from the initial recipe parsing to the 
actual execution of the task.

> Or, what about this?
> 
> --------------------------------------------------------------------
> #do_deploy[vardeps] += "DATETIME"
> do_deploy[stamp-extra-info] = "${DATETIME}"
> --------------------------------------------------------------------

In our process we force redeployment of images with "nostamp":

do_deploy[nostamp] += "1"

I think that would work for you too.

-- 
MARTIN HUNDEBØLL, Prevas A/S
Software Developer

Hedeager 3, DK-8200 Aarhus N
Phone +45 87438070
Mobile +45 25562438
Martin.Hundeboll at prevas.dk
www.prevas.com



More information about the yocto mailing list