From 955800dab200c87d3e52057735211a84c39d580b Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Fri, 8 May 2026 10:51:03 -0700 Subject: [PATCH] ci(shorebird): add shell steps for engine_stamp.json + aot-tools.dill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both files are listed as shard artifacts in the new sharded build but neither is actually produced — they were built outside the gn+ninja graph in the legacy shell scripts (mac_build.sh / linux_build.sh) and the sharded pipeline only knew about gn_ninja and rust step types. shorebirdtech/_build_engine#209 adds a `shell` step type to shard_runner. This PR uses it: - mac-x64: new shell step runs `flutter/bin/et stamp` (writes out/engine_stamp.json) and copies the result into out/mac_release/engine_stamp.json so it ends up in the shard's tarball. The matching artifact src updates from "engine_stamp.json" to "mac_release/engine_stamp.json". - linux/host: new shell step runs the host-built dart against flutter/third_party/dart/pkg/aot_tools to produce out/host_release/aot_tools/aot-tools.dill, matching what linux_build.sh:78-90 does. The existing artifact src ("host_release/aot_tools/aot-tools.dill") is already correct. After this lands and an engine bump produces a SHA carrying it, finalize will upload these two missing files and the sharded build's prod artifact set should match the legacy build's exactly (modulo iOS XCFramework signing). --- shorebird/ci/shards/linux.json | 4 ++++ shorebird/ci/shards/macos.json | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/shorebird/ci/shards/linux.json b/shorebird/ci/shards/linux.json index 435ec9bebb7b7..ffd1b4982dbda 100644 --- a/shorebird/ci/shards/linux.json +++ b/shorebird/ci/shards/linux.json @@ -91,6 +91,10 @@ "gn_args": ["--no-prebuilt-dart-sdk"], "ninja_targets": ["flutter/build/archives:artifacts"], "out_dir": "host_debug" + }, + { + "type": "shell", + "command": "mkdir -p out/host_release/aot_tools && out/host_release/dart-sdk/bin/dart pub get --offline --directory=flutter/third_party/dart/pkg/aot_tools && out/host_release/dart-sdk/bin/dart compile kernel flutter/third_party/dart/pkg/aot_tools/bin/aot_tools.dart -o out/host_release/aot_tools/aot-tools.dill" } ], "artifacts": [ diff --git a/shorebird/ci/shards/macos.json b/shorebird/ci/shards/macos.json index 19173eecfa486..a6b7cf37016ab 100644 --- a/shorebird/ci/shards/macos.json +++ b/shorebird/ci/shards/macos.json @@ -157,12 +157,16 @@ "gn_args": ["--runtime-mode=release", "--mac", "--mac-cpu=x64"], "ninja_targets": ["flutter/shell/platform/darwin/macos:zip_macos_flutter_framework", "flutter/lib/snapshot:generate_snapshot_bins", "flutter/build/archives:artifacts"], "out_dir": "mac_release" + }, + { + "type": "shell", + "command": "flutter/bin/et stamp && cp out/engine_stamp.json out/mac_release/engine_stamp.json" } ], "compose_input": "macos-framework", "artifacts": [ {"src": "host_release/dart-sdk", "dst": "flutter_infra_release/flutter/$engine/dart-sdk-darwin-x64.zip", "zip": true, "content_hash": true}, - {"src": "engine_stamp.json", "dst": "flutter_infra_release/flutter/$engine/engine_stamp.json"} + {"src": "mac_release/engine_stamp.json", "dst": "flutter_infra_release/flutter/$engine/engine_stamp.json"} ] } }