代码之家  ›  专栏  ›  技术社区  ›  Franz Forstmayr

GitLab CI Yocto Build-如何使用SSTATE和DL\u DIR

  •  1
  • Franz Forstmayr  · 技术社区  · 6 年前

    SSTATE_DIR DL_DIR 在几份工作之间?目前,bitbake每次都会重建完整的项目,这非常耗时。所以我想再次使用sstage。我尝试过缓存,但由于压缩/解压缩开销很大,构建时间会有效地增加。

    我甚至不需要在多个项目之间共享sstate,只需要在作业之间存储输出的方法。

    我正在使用Gitlab 11.2.3,其中一个shell执行器作为运行器。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Étienne Hampden123    5 年前

    在11.10版中, GIT_CLEAN_FLAGS 添加了,可用于实现希望使用shell执行器执行的操作。

    完整性:当使用docker executor时,这可以通过使用docker卷来实现,docker卷在构建中是持久的。

        2
  •  1
  •   Rekovni    6 年前

    如果你只使用一个跑步者,你可以使用 GIT_STRATEGY: none ,它将为以下作业重用项目工作区; relevant documentation

    否则,你可能会失去运气,不得不等待时机 sticky runners 问题。

        3
  •  1
  •   Mike Kinghan Luchian Grigore    6 年前

    .yml 你的档案

    stages:
      ...
      ...
    
    variables:
      ...
      TCM_MACHINE: buzby2
      ...
      SSTATE_CACHE: /sstate-cache/$TCM_MACHINE/PLAT3/
      PURGE_SSTATE_CACHE: N
      ...
    

    对我来说 /sstate-cache/$TCM_MACHINE/PLAT3/ 运行构建的。此路径从 生成服务器文件系统上的永久sstate缓存目录, /var/bitbake/sstate-cache/<machine-id>/PLAT3

    PURGE_SSTATE_CACHE 建造。

    确保 SSTATE_CACHE 附加到bitbake conf/local.conf 构建文件,例如。

    .build_image: &build_image
      stage: build
      tags:
        ...
      before_script:
        ...
      script:
        - echo "SSTATE_DIR ?= \"$SSTATE_CACHE\"" >> conf/local.conf
        ...
    

    将相同的图案应用于 DL_DIR 如果你用的话。

    yml先生 或计划变量。看到了吗 Priority of variables