Example #1
0
    def _BuildImages(self):
        # We only build base, dev, and test images from this stage.
        if self._afdo_generate_min:
            images_can_build = set(['test'])
        else:
            images_can_build = set(['base', 'dev', 'test'])
        images_to_build = set(
            self._run.config.images).intersection(images_can_build)

        version = self._run.attrs.release_tag
        disk_layout = self._run.config.disk_layout
        if self._afdo_generate_min and version:
            version = '%s-afdo-generate' % version

        rootfs_verification = self._run.config.rootfs_verification
        builder_path = '/'.join([self._bot_id, self.version])
        commands.BuildImage(self._build_root,
                            self._current_board,
                            sorted(images_to_build),
                            rootfs_verification=rootfs_verification,
                            version=version,
                            builder_path=builder_path,
                            disk_layout=disk_layout,
                            extra_env=self._portage_extra_env)

        # Update link to latest image.
        latest_image = os.readlink(self.GetImageDirSymlink('latest'))
        cbuildbot_image_link = self.GetImageDirSymlink()
        if os.path.lexists(cbuildbot_image_link):
            os.remove(cbuildbot_image_link)

        os.symlink(latest_image, cbuildbot_image_link)

        self.board_runattrs.SetParallel('images_generated', True)

        parallel.RunParallelSteps([
            self._BuildVMImage,
            lambda: self._GenerateAuZip(cbuildbot_image_link),
            self._BuildGceTarballs
        ])
 def testBuildImage(self):
   """Test Basic BuildImage Command."""
   commands.BuildImage(self._buildroot, self._board, None)
   self.assertCommandContains(['./build_image'])