mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Context: https://github.com/flutter/flutter/issues/131862 This PR injects a "realm" component to the storage base URL when the contents of the file `bin/internal/engine.realm` is non-empty. As documented in the PR, when the realm is `flutter_archives_v2`, and `bin/internal/engine.version` contains the commit hash for a commit in a `flutter/engine` PR, then the artifacts pulled by the tool will be the artifacts built by the presubmit checks for the PR. This works for everything but the following two cases: 1. Fuchsia artifacts are not uploaded to CIPD by the Fuchsia presubmit builds. 2. Web artifacts are not uploaded to gstatic by the web engine presubmit builds. For (1), the flutter/flutter presubmit `fuchsia_precache` is driven by a shell script outside of the repo. It will fail when the `engine.version` and `engine.realm` don't point to a post-submit engine commit. For (2), the flutter/flutter web presubmit tests that refer to artifacts in gstatic hang when the artifacts aren't found, so this PR skips them.
68 lines
2.3 KiB
Groovy
68 lines
2.3 KiB
Groovy
// This script is used to warm the Gradle cache by downloading the Flutter dependencies
|
|
// used during the build. This script is invoked when `flutter precache` is run.
|
|
//
|
|
// Command:
|
|
// gradle -b <flutter-sdk>packages/flutter_tools/gradle/resolve_dependencies.gradle
|
|
// resolveDependencies
|
|
//
|
|
// This way, Gradle can run with the `--offline` flag later on to eliminate any
|
|
// network request during the build process.
|
|
//
|
|
// This includes:
|
|
// 1. The embedding
|
|
// 2. libflutter.so
|
|
|
|
import java.nio.file.Paths
|
|
|
|
String storageUrl = System.getenv('FLUTTER_STORAGE_BASE_URL') ?: "https://storage.googleapis.com"
|
|
|
|
String engineRealm = Paths.get(flutterRoot.absolutePath, "bin", "internal", "engine.realm")
|
|
.toFile().text.trim()
|
|
if (engineRealm) {
|
|
engineRealm = engineRealm + "/"
|
|
}
|
|
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
maven {
|
|
url "$storageUrl/${engineRealm}download.flutter.io"
|
|
}
|
|
}
|
|
|
|
File flutterRoot = projectDir.parentFile.parentFile.parentFile
|
|
|
|
assert flutterRoot.isDirectory()
|
|
String engineVersion = Paths.get(flutterRoot.absolutePath, "bin", "internal", "engine.version")
|
|
.toFile().text.trim()
|
|
|
|
configurations {
|
|
flutterRelease.extendsFrom releaseImplementation
|
|
flutterDebug.extendsFrom debugImplementation
|
|
flutterProfile.extendsFrom debugImplementation
|
|
}
|
|
|
|
dependencies {
|
|
flutterRelease "io.flutter:flutter_embedding_release:1.0.0-$engineVersion"
|
|
flutterRelease "io.flutter:armeabi_v7a_release:1.0.0-$engineVersion"
|
|
flutterRelease "io.flutter:arm64_v8a_release:1.0.0-$engineVersion"
|
|
|
|
flutterProfile "io.flutter:flutter_embedding_profile:1.0.0-$engineVersion"
|
|
flutterProfile "io.flutter:armeabi_v7a_profile:1.0.0-$engineVersion"
|
|
flutterProfile "io.flutter:arm64_v8a_profile:1.0.0-$engineVersion"
|
|
|
|
flutterDebug "io.flutter:flutter_embedding_debug:1.0.0-$engineVersion"
|
|
flutterDebug "io.flutter:armeabi_v7a_debug:1.0.0-$engineVersion"
|
|
flutterDebug "io.flutter:arm64_v8a_debug:1.0.0-$engineVersion"
|
|
flutterDebug "io.flutter:x86_debug:1.0.0-$engineVersion"
|
|
flutterDebug "io.flutter:x86_64_debug:1.0.0-$engineVersion"
|
|
}
|
|
|
|
task resolveDependencies {
|
|
configurations.each { configuration ->
|
|
if (configuration.name.startsWith("flutter")) {
|
|
configuration.resolve()
|
|
}
|
|
}
|
|
}
|