我有一个任务do_image_custom,它对任务do_image_ext4有依赖性。
该任务(do_image_ext4)生成一个包含DATETIME的图像文件。
第一次创建图像时,没有错误。 dependency_DATETIME.rootfs.ext4由其依赖项生成和使用。
如果我对ext4文件的使用任务进行了更改,因为我需要规定对DATETIME.rootfs.ext4的依赖关系。
第二次构建(不进行清洁)之后,我得到了do_image_custom无法找到 newer_datetime.rootfs.ext4
的错误我检查了IMGDEPLOYDIR并确定该文件不存在,并且do_image_ext4任务仍然具有第一个时间戳。
我的问题是,在do_image_custom中我在哪里做错了什么,使得它每次运行时都重新评估DATETIME而不检查(也许)状态缓存?
答案 0 :(得分:1)
问题是我的自定义任务(do_image_custom)依赖于先前任务的输出。该任务输出生成名称中带有时间戳的ext4图像。
do_image_custom重新评估了DATETIME,即使依赖项(具有 较早DATETIME 的ext4文件没有,因此也没有重建。因此,当执行do_image_custom时, 它引用了一个不存在的文件(错误),因为它没有生成(正确的是,因为依赖项任务的基哈希未更改)。
解决方案是(一直摆在我面前)修改我的自定义任务(do_image_custom)以引用一个符号链接(也在与ext4相同的步骤中生成)在符号链接中没有DATETIME名称,因此do_image_custom不会因其相关步骤的任何更改而改变。