[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