On Fri, Apr 20, 2018 at 8:59 AM, Iván Castell <icast...@nayarsystems.com> wrote: > > Hello forum. > > We are trying to use yocto in a continuous integration environment with > different (production vs debug) scenarios. > > To setup a given scenario (production vs debug) we are using something like > this: > > $ SCENARIO=debug > $ MACHINE=<machine> DISTRO=<distro>-${SCENARIO} source > ../../build-<machine>-${SCENARIO} > $ bitbake <image>-${SCENARIO} > > So we have different image recipes: > > * image-production.bb > * image-debug.bb > > Different distros: > > * distro-production.conf > * distro-debug.conf > > And different build directories: > > * build-<machine>-production > * build-<machine>-debug > > To optimize space usage and compilation time, we setup a shared sstate cache > and a shared directory for downloads. This seems a good starting point. > > However, things are getting complicated, because there is no way to exclude > some recipes easily. For example, we don't want iptables installed on the > debug image, but dependency chains include iptables by default even when > declaring IMAGE_INSTALL_remove explicitly. In this case we decided checking > SCENARIO inside iptables_%.bbappend to decide what rules are installed on > the image (rules.production vs rules.debug). > > But at the end, this method is poisoning all our recipes with that kind of > ugly controls [...] > > Do you think this is the right way to manage this? Can you suggest a > better/more convenient way to deal with this? > > Thank you in advance! :)
We're using the IMAGE_MODE stuff: https://github.com/intel/intel-iot-refkit/blob/master/meta-refkit-core/classes/image-mode.bbclass and then add things like this to the image: CORE_IMAGE_EXTRA_INSTALL += "\ ${@ '' if (d.getVar('IMAGE_MODE') or 'production') == 'production' else 'packagegroup-core-full-cmdline' } \ " -- Alex Kiernan -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto