之前我们进行了一些工作,以确保黄金测试在发布分支上运行。它在 #146078 的模拟运行中被验证为有效。当 3.23 beta branch was created golden images were not reaped 运行时,就像在模拟测试中一样。
这可能是测试环境和实际发布工作流程之间的差异。在 flutter/cocoon#3659 中添加了茧可以运行 skia gold 的能力的代码仍然完好无损。
禁用 3.23 beta 分支上的黄金图像测试的 PR 是 flutter/engine#53163 。似乎发布团队遇到了问题,不仅仅是因为茧无法回收黄金图像,还需要禁用测试。我认为这是他们的 GOLDCTL 环境变量问题,应该通过将 skia gold 作为构建器的依赖项来解决。
我们需要找出模拟运行和实际工作流程之间的差异,以了解为什么茧没有回收黄金图像。
cc @matanlurey
8条答案
按热度按时间9jyewag01#
当您有机会时,能否帮助提供一些澄清和日志,因为我们无法访问:
log.fine('This change\'s destination, ${pr.base!.ref}, does not run Skia Gold checks, skipping.');
hzbexzde2#
当您有机会时,您能帮忙提供一些澄清和日志吗?因为我们无法访问:
log.fine('This change\'s destination, ${pr.base!.ref}, does not run Skia Gold checks, skipping.');
我在谷歌云存储桶中看到的路径声称是一个空的noop.txt文件。我的猜测是我们没有写入日志文件,或者我们写入了错误的路径。
为什么在Update .engine-release.version engine#53148上没有GOLDCTL问题?
我不知道。
您能澄清一下是什么问题导致您不得不回滚测试吗?因为无法收割黄金镜像不应该阻止您的工作流程吗?
是的,我回滚了测试,因为
run_tests.py
引发了RuntimeError: The GOLDCTL environment variable is not set
,导致步骤失败,从而整个构建失败,因此构建引擎的工件从未上传,也无法滚动到框架。im9ewurl3#
当您有机会时,能否帮助提供一些澄清和日志记录,因为我们无法访问:
在谷歌云存储桶中,我看到的路径声称是一个空的noop.txt文件。我的猜测是我们没有写入日志文件,或者我们写入了错误的路径。
我理解错了,我看错了不同类型的日志。
sqougxex4#
以下是神殿日志:
zzlelutf5#
matanlurey flutter/cocoon#3761修复了收割问题。你能链接到设置GOLDCTL的机器人指令吗?我找不到你前几天给我链接的东西。我们可以向chris展示,希望他知道放在哪里。
s4n0splo6#
matanlurey flutter/cocoon#3761修复了收割问题。你能链接到设置GOLDCTL的机器人指令吗?我找不到你前几天给我链接的东西。我们可以向chris展示这一点,希望他知道该放在哪里。
https://github.com/flutter/engine/tree/main/testing/skia_gold_client#configuring-ci
vptzau2j7#
@christopherfujino 你知道如何调和Matan列出的上述获取GOLDCTL设置的步骤以及如何设置发布机器人吗?添加那个依赖项应该可以做到。我不确定发布机器人的正确位置在哪里,或者它们是否以相同的方式工作。如果你能指出正确的方向,我们可以尝试一下。
qojgxg4l8#
@christopherfujino do you know how to reconcile the steps Matan listed above for getting GOLDCTL set and how to setup the release bots? Adding that dependency should be doing it. I'm not sure where the right place to put that would be for the release bots though or if they even work the same. If you point us in the right direction we can try it out.
Off the top of my head, I can see that we do have goldctl specified as a dependency in .ci.yaml: https://github.com/flutter/engine/blob/flutter-3.18-candidate.18/.ci.yaml#L364
engine_v2/engine_v2
recipe--meanwhile, in the build that failed the test, it ran with theengine_v2/builder
recipe: https://ci.chromium.org/ui/p/dart-internal/builders/flutter/Mac%20Production%20Engine%20Drone/12733/infra .I do see that it has goldctl listed as a dependency in the input properties. However, I don't see a step that explicitly installed goldctl via cipd (which I would expect to see).
In this recipe, we do call
api.flutter_deps.required_deps(env, env_prefixes, test_deps)
, which I would expect to install, via cipd, everything listed in the dependencies hash map of the build input properties: https://flutter.googlesource.com/recipes/+/refs/heads/flutter-3.23-candidate.0/recipes/engine_v2/builder.py#138I would start tracing around that code, and comparing it with the build steps. I would first verify whether or not we actually installed in goldctl. If we did, then I would check why we didn't set the GOLDCTL env var that we wrap the test invocation with (you can see the env vars here: https://logs.chromium.org/logs/dart-internal/buildbucket/cr-buildbucket/8746400829535528113/+/u/test:_Impeller-golden_for_host_release/execution_details ).