<!-- start_original_pr_link --> Reverts: flutter/flutter#166717 <!-- end_original_pr_link --> <!-- start_initiating_author --> Initiated by: matanlurey <!-- end_initiating_author --> <!-- start_revert_reason --> Reason for reverting: Broke tree on [postsubmit](https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8718108088961866849/+/u/test:_run_suite_safari-dart2js-canvaskit-engine/stdout) <!-- end_revert_reason --> <!-- start_original_pr_author --> Original PR Author: jtmcdole <!-- end_original_pr_author --> <!-- start_reviewers --> Reviewed By: {matanlurey} <!-- end_reviewers --> <!-- start_revert_body --> This change reverts the following previous change: 1. Calculate the hash in only two places: `content_aware_hash.{ps1|sh}` 2. Call this from the workflow 3. Eventually call this from `update_engine_version.{ps1|sh}` The files of import: * `DEPS`: tracks third party dependencies related to building the engine * `engine`: all the code in the engine folder * `bin/internal/content_aware_hash.ps1`: script for calculating the hash on windows * `bin/internal/content_aware_hash.sh`: script for calculating the hash on mac/linux * `.github/workflows/content-aware-hash.yml`: github action for CI/CD hashing Tested on windows and mac: ```shell PS C:\src\flutter> C:\src\flutter\bin\internal\content_aware_hash.ps1 c24231e276e0719738e175e0622e040ad21a7012 ``` ```shell ❯ ~/src/flutter/bin/internal/content_aware_hash.sh c24231e276e0719738e175e0622e040ad21a7012 ``` <!-- end_revert_body --> Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2.9 KiB
How flutter fetches engine artifacts
While in the same repository, the flutter (tool), which is used to run and
test the framework, needs to know how to download the engine artifacts for the
current platform and target device. Engine artifacts include dart (the
standalone Dart SDK), which runs flutter itself, and per-platform and build
mode prebuilt engines (which include the C++ compiled engine, and the embedders
for Android, iOS, and so-on).
When using a released version of Flutter, i.e. from a channel such as stable,
bin/internal/engine.version is set to the
git commit SHA for a merged commit in https://github.com/flutter/flutter, where
the engine artifacts have already been pre-built and uploaded.
When using the master channel, or contributing to Flutter (which is typically
as a fork of Flutter's master channel), the git commit SHA is computed by
using git merge-base HEAD upstream/master (falling back to git merge-base HEAD origin/master
to support direct forks or flutter/flutter).
For advanced use-cases, such as on CI platforms, or for custom 1-off testing
using a pre-built Flutter engine (to use a locally built Flutter engine see
locally built engines), the environment variable FLUTTER_PREBUILT_ENGINE_VERSION can be set,
again to a git commit SHA for a merged commit in flutter/flutter:
$ FLUTTER_PREBUILT_ENGINE_VERSION=abc123 flutter --version
..
Engine • revision abc123 ..
..
stateDiagram-v2
[*] --> CheckEnvVar
CheckEnvVar: <code>FLUTTER_PREBUILT_ENGINE_VERSION</code> set?
UseEnvVar: Use <code>FLUTTER_PREBUILT_ENGINE_VERSION</code>
CheckReleaseFile: <code>bin/internal/engine.version</code> exists?
UseReleaseFile: Use <code>bin/internal/engine.version</code>
UseMergeBase: <code>git merge-base HEAD upstream/master</code>
CheckEnvVar --> UseEnvVar: Yes
CheckEnvVar --> CheckReleaseFile: No
UseEnvVar --> [*]: Done
CheckReleaseFile --> UseReleaseFile: Yes
CheckReleaseFile --> UseMergeBase: No
UseReleaseFile --> [*]: Done
UseMergeBase --> [*]: Done
References
The script(s) that compute (and test the computation of) the engine version:
bin/internal/update_engine_version.shbin/internal/update_engine_version.ps1dev/tools/test/update_engine_version_test.dart
The tool uses the engine version in the following locations: