Unverified Commit 2a644f30 authored by Dan Field's avatar Dan Field Committed by GitHub

Run non-perf sensitive tests on Cirrus (#27971)

* Run non-perf sensisitive tests on Cirrus
parent 11ede468
...@@ -69,6 +69,9 @@ task: ...@@ -69,6 +69,9 @@ task:
- name: build_tests-linux - name: build_tests-linux
env: env:
SHARD: build_tests SHARD: build_tests
- name: integration_tests-linux
env:
SHARD: integration_tests
test_script: test_script:
# Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they # Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they
# might include non-ASCII characters which makes Gradle crash. # might include non-ASCII characters which makes Gradle crash.
...@@ -86,16 +89,12 @@ task: ...@@ -86,16 +89,12 @@ task:
container: container:
cpu: 4 cpu: 4
memory: 12G memory: 12G
- name: codelabs-build-test
env:
SHARD: codelabs-build-test
build_test_script: ./dev/bots/codelabs_build_test.sh
task: task:
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' # && $CIRRUS_PR == ''
windows_container: windows_container:
image: cirrusci/windowsservercore:2016 image: cirrusci/android-sdk:28-windowsservercore-ltsc2016
os_version: 2016 os_version: 2016
cpu: 4 cpu: 4
env: env:
...@@ -135,6 +134,12 @@ task: ...@@ -135,6 +134,12 @@ task:
container: container:
cpu: 4 cpu: 4
memory: 12G memory: 12G
- name: integration_tests-windows
env:
SHARD: integration_tests
container:
cpu: 4
memory: 12G
task: task:
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
...@@ -186,6 +191,13 @@ task: ...@@ -186,6 +191,13 @@ task:
env: env:
CIRRUS_WORKING_DIR: "/tmp/flutter sdk" CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
COCOAPODS_DISABLE_STATS: true COCOAPODS_DISABLE_STATS: true
ANDROID_SDK_TOOLS_URL: https://dl.google.com/android/repository/sdk-tools-darwin-4333796.zip
ANDROID_SDK_ROOT: $HOME/Android
ANDROID_HOME: $HOME/Android
OPEN_JDK_URL: https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u202b08.tar.gz
OPEN_JDK_REVISION: jdk8u202-b08
JAVA_HOME: $HOME/Java/$OPEN_JDK_REVISION/Contents/Home
PATH: "$PATH:$JAVA_HOME/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/platform-tools"
# occasionally the clock on these machines is out of sync # occasionally the clock on these machines is out of sync
# with the actual time - this should help to verify # with the actual time - this should help to verify
print_date_script: print_date_script:
...@@ -205,6 +217,16 @@ task: ...@@ -205,6 +217,16 @@ task:
artifacts_cache: artifacts_cache:
folder: bin/cache/artifacts folder: bin/cache/artifacts
fingerprint_script: echo $OS; cat bin/internal/engine.version fingerprint_script: echo $OS; cat bin/internal/engine.version
# TODO(dnfield): If the OSX image starts including this, we can remove it. https://github.com/cirruslabs/osx-images/issues/3
open_jdk_cache:
folder: $HOME/Java
fingerprint_script: echo $OPEN_JDK_URL; cat dev/bots/download_open_jdk.sh
populate_script: dev/bots/download_open_jdk.sh
# TODO(dnfield): If the OSX image starts including this, we can remove it. https://github.com/cirruslabs/osx-images/issues/3
android_sdk_cache:
folder: $ANDROID_SDK_ROOT
fingerprint_script: echo $ANDROID_SDK_TOOLS_URL; cat dev/bots/download_android_sdk.sh
populate_script: dev/bots/download_android_sdk.sh
setup_script: setup_script:
- bin/flutter config --no-analytics - bin/flutter config --no-analytics
- bin/flutter update-packages - bin/flutter update-packages
...@@ -228,6 +250,12 @@ task: ...@@ -228,6 +250,12 @@ task:
container: container:
cpu: 4 cpu: 4
memory: 12G memory: 12G
- name: integration_tests-macos
env:
SHARD: integration_tests
container:
cpu: 4
memory: 12G
- name: add2app-macos - name: add2app-macos
env: env:
SHARD: add2app_test SHARD: add2app_test
...@@ -243,6 +271,7 @@ docker_builder: ...@@ -243,6 +271,7 @@ docker_builder:
- tests-linux - tests-linux
- tool_tests-linux - tool_tests-linux
- build_tests-linux - build_tests-linux
- integration_tests-linux
build_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_build.sh" build_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_build.sh"
login_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_login.sh" login_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_login.sh"
push_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_push.sh" push_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_push.sh"
...@@ -47,7 +47,7 @@ dependencies: ...@@ -47,7 +47,7 @@ dependencies:
package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" petitparser: 2.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...@@ -76,4 +76,4 @@ dependencies: ...@@ -76,4 +76,4 @@ dependencies:
flutter: flutter:
uses-material-design: true uses-material-design: true
# PUBSPEC CHECKSUM: 1baf # PUBSPEC CHECKSUM: a9b0
#!/bin/bash
set -e
if [[ -z $ANDROID_SDK_TOOLS_URL || -z $ANDROID_HOME || -z $ANDROID_SDK_ROOT ]]; then
exit 0
fi
curl -L $ANDROID_SDK_TOOLS_URL --output android_sdk_tools.zip
mkdir -p $ANDROID_SDK_ROOT
unzip android_sdk_tools.zip -d $ANDROID_SDK_ROOT
rm android_sdk_tools.zip
yes | $ANDROID_SDK_ROOT/tools/bin/sdkmanager --licenses
$ANDROID_SDK_ROOT/tools/bin/sdkmanager tools
$ANDROID_SDK_ROOT/tools/bin/sdkmanager platform-tools
# this is large and we don't need it just yet
# $ANDROID_SDK_ROOT/tools/bin/sdkmanager emulator
$ANDROID_SDK_ROOT/tools/bin/sdkmanager "platforms;android-28" \
"build-tools;28.0.3" \
"platforms;android-27" \
"build-tools;27.0.3" \
"extras;google;m2repository" \
"extras;android;m2repository"
#!/bin/bash
set -e
if [[ -z $OPEN_JDK_URL ]]; then
exit 0
fi
mkdir -p $HOME/Java
pushd $HOME/Java
curl -L $OPEN_JDK_URL --output open_jdk.tar.gz
tar -xvf open_jdk.tar.gz
rm open_jdk.tar.gz
popd
...@@ -27,6 +27,7 @@ const Map<String, ShardRunner> _kShards = <String, ShardRunner>{ ...@@ -27,6 +27,7 @@ const Map<String, ShardRunner> _kShards = <String, ShardRunner>{
'tool_tests': _runToolTests, 'tool_tests': _runToolTests,
'build_tests': _runBuildTests, 'build_tests': _runBuildTests,
'coverage': _runCoverage, 'coverage': _runCoverage,
'integration_tests': _runIntegrationTests,
'add2app_test': _runAdd2AppTest, 'add2app_test': _runAdd2AppTest,
}; };
...@@ -615,3 +616,51 @@ Future<void> _verifyVersion(String filename) async { ...@@ -615,3 +616,51 @@ Future<void> _verifyVersion(String filename) async {
exit(1); exit(1);
} }
} }
Future<void> _runIntegrationTests() async {
print('Platform env vars:');
await _runDevicelabTest('dartdocs');
if (Platform.isLinux) {
await _runDevicelabTest('flutter_create_offline_test_linux');
} else if (Platform.isWindows) {
await _runDevicelabTest('flutter_create_offline_test_windows');
} else if (Platform.isMacOS) {
await _runDevicelabTest('flutter_create_offline_test_mac');
await _runDevicelabTest('module_test_ios');
}
await _integrationTestsAndroidSdk();
}
Future<void> _runDevicelabTest(String testName, {Map<String, String> env}) async {
await runCommand(
dart,
<String>['bin/run.dart', '-t', testName],
workingDirectory: path.join(flutterRoot, 'dev', 'devicelab'),
environment: env,
);
}
Future<void> _integrationTestsAndroidSdk() async {
final String androidSdkRoot = (Platform.environment['ANDROID_HOME']?.isEmpty ?? true)
? Platform.environment['ANDROID_SDK_ROOT']
: Platform.environment['ANDROID_HOME'];
if (androidSdkRoot == null || androidSdkRoot.isEmpty) {
print('No Android SDK detected, skipping Android Integration Tests');
return;
}
final Map<String, String> env = <String, String> {
'ANDROID_HOME': androidSdkRoot,
'ANDROID_SDK_ROOT': androidSdkRoot,
};
// TODO(dnfield): gradlew is crashing on the cirrus image and it's not clear why.
if (!Platform.isWindows) {
await _runDevicelabTest('gradle_plugin_test', env: env);
await _runDevicelabTest('module_test', env: env);
}
// note: this also covers plugin_test_win as long as Windows has an Android SDK available.
await _runDevicelabTest('plugin_test', env: env);
}
\ No newline at end of file
...@@ -272,8 +272,11 @@ Future<ProcessResult> _resultOfGradleTask({String workingDirectory, String task, ...@@ -272,8 +272,11 @@ Future<ProcessResult> _resultOfGradleTask({String workingDirectory, String task,
if (options != null) { if (options != null) {
args.addAll(options); args.addAll(options);
} }
final String gradle = Platform.isWindows ? 'gradlew.bat' : './gradlew';
print('Running Gradle: ${path.join(workingDirectory, gradle)} ${args.join(' ')}');
print(File(path.join(workingDirectory, gradle)).readAsStringSync());
return Process.run( return Process.run(
'./gradlew', gradle,
args, args,
workingDirectory: workingDirectory, workingDirectory: workingDirectory,
environment: <String, String>{ 'JAVA_HOME': javaHome }, environment: <String, String>{ 'JAVA_HOME': javaHome },
......
...@@ -9,6 +9,9 @@ import 'package:flutter_devicelab/framework/framework.dart'; ...@@ -9,6 +9,9 @@ import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/utils.dart'; import 'package:flutter_devicelab/framework/utils.dart';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
final String gradlew = Platform.isWindows ? 'gradlew.bat' : 'gradlew';
final String gradlewExecutable = Platform.isWindows ? gradlew : './$gradlew';
/// Tests that the Flutter module project template works and supports /// Tests that the Flutter module project template works and supports
/// adding Flutter to an existing Android app. /// adding Flutter to an existing Android app.
Future<void> main() async { Future<void> main() async {
...@@ -53,7 +56,7 @@ Future<void> main() async { ...@@ -53,7 +56,7 @@ Future<void> main() async {
await inDirectory(Directory(path.join(projectDir.path, '.android')), () async { await inDirectory(Directory(path.join(projectDir.path, '.android')), () async {
await exec( await exec(
'./gradlew', gradlewExecutable,
<String>['flutter:assembleDebug'], <String>['flutter:assembleDebug'],
environment: <String, String>{ 'JAVA_HOME': javaHome }, environment: <String, String>{ 'JAVA_HOME': javaHome },
); );
...@@ -143,7 +146,7 @@ Future<void> main() async { ...@@ -143,7 +146,7 @@ Future<void> main() async {
hostApp, hostApp,
); );
copy( copy(
File(path.join(projectDir.path, '.android', 'gradlew')), File(path.join(projectDir.path, '.android', gradlew)),
hostApp, hostApp,
); );
copy( copy(
...@@ -152,8 +155,10 @@ Future<void> main() async { ...@@ -152,8 +155,10 @@ Future<void> main() async {
); );
await inDirectory(hostApp, () async { await inDirectory(hostApp, () async {
if (!Platform.isWindows) {
await exec('chmod', <String>['+x', 'gradlew']); await exec('chmod', <String>['+x', 'gradlew']);
await exec('./gradlew', }
await exec(gradlewExecutable,
<String>['app:assembleDebug'], <String>['app:assembleDebug'],
environment: <String, String>{ 'JAVA_HOME': javaHome }, environment: <String, String>{ 'JAVA_HOME': javaHome },
); );
......
...@@ -37,7 +37,7 @@ Future<void> main() async { ...@@ -37,7 +37,7 @@ Future<void> main() async {
await inDirectory(projectDir, () async { await inDirectory(projectDir, () async {
await flutter( await flutter(
'build', 'build',
options: <String>['ios'], options: <String>['ios', '--no-codesign'],
); );
}); });
...@@ -80,7 +80,7 @@ Future<void> main() async { ...@@ -80,7 +80,7 @@ Future<void> main() async {
await inDirectory(projectDir, () async { await inDirectory(projectDir, () async {
await flutter( await flutter(
'build', 'build',
options: <String>['ios'], options: <String>['ios', '--no-codesign'],
); );
}); });
...@@ -116,7 +116,7 @@ Future<void> main() async { ...@@ -116,7 +116,7 @@ Future<void> main() async {
await inDirectory(projectDir, () async { await inDirectory(projectDir, () async {
await flutter( await flutter(
'build', 'build',
options: <String>['ios'], options: <String>['ios', '--no-codesign'],
); );
}); });
......
...@@ -295,23 +295,24 @@ tasks: ...@@ -295,23 +295,24 @@ tasks:
stage: devicelab stage: devicelab
required_agent_capabilities: ["linux/android"] required_agent_capabilities: ["linux/android"]
gradle_plugin_test: # TODO(dnfield): Remove these once we're confident it's all working on cirrus
description: > # gradle_plugin_test:
Verifies that the Flutter Gradle plugin supports standard and custom Android build types. # description: >
stage: devicelab # Verifies that the Flutter Gradle plugin supports standard and custom Android build types.
required_agent_capabilities: ["linux/android"] # stage: devicelab
# required_agent_capabilities: ["linux/android"]
plugin_test:
description: > # plugin_test:
Checks that the project template works and supports plugins. # description: >
stage: devicelab # Checks that the project template works and supports plugins.
required_agent_capabilities: ["linux/android"] # stage: devicelab
# required_agent_capabilities: ["linux/android"]
module_test:
description: > # module_test:
Checks that the module project template works and supports add2app on Android. # description: >
stage: devicelab # Checks that the module project template works and supports add2app on Android.
required_agent_capabilities: ["linux/android"] # stage: devicelab
# required_agent_capabilities: ["linux/android"]
flutter_gallery_instrumentation_test: flutter_gallery_instrumentation_test:
description: > description: >
...@@ -333,23 +334,24 @@ tasks: ...@@ -333,23 +334,24 @@ tasks:
stage: devicelab stage: devicelab
required_agent_capabilities: ["linux/android"] required_agent_capabilities: ["linux/android"]
flutter_create_offline_test_linux: # TODO(dnfield): Remove these once we're confident it's all working on cirrus
description: > # flutter_create_offline_test_linux:
Tests the `flutter create --offline` command. # description: >
stage: devicelab # Tests the `flutter create --offline` command.
required_agent_capabilities: ["linux/android"] # stage: devicelab
# required_agent_capabilities: ["linux/android"]
flutter_create_offline_test_windows:
description: > # flutter_create_offline_test_windows:
Tests the `flutter create --offline` command. # description: >
stage: devicelab # Tests the `flutter create --offline` command.
required_agent_capabilities: ["windows/android"] # stage: devicelab
# required_agent_capabilities: ["windows/android"]
flutter_create_offline_test_mac:
description: > # flutter_create_offline_test_mac:
Tests the `flutter create --offline` command. # description: >
stage: devicelab # Tests the `flutter create --offline` command.
required_agent_capabilities: ["mac/android"] # stage: devicelab
# required_agent_capabilities: ["mac/android"]
# iOS on-device tests # iOS on-device tests
...@@ -359,17 +361,18 @@ tasks: ...@@ -359,17 +361,18 @@ tasks:
stage: devicelab_ios stage: devicelab_ios
required_agent_capabilities: ["mac/ios"] required_agent_capabilities: ["mac/ios"]
plugin_test_ios: # TODO(dnfield): Remove these once we're confident it's all working on cirrus
description: > # plugin_test_ios:
Checks that the project template works and supports plugins on iOS. # description: >
stage: devicelab_ios # Checks that the project template works and supports plugins on iOS.
required_agent_capabilities: ["mac/ios"] # stage: devicelab_ios
# required_agent_capabilities: ["mac/ios"]
module_test_ios: # module_test_ios:
description: > # description: >
Checks that the module project template works and supports add2app on iOS. # Checks that the module project template works and supports add2app on iOS.
stage: devicelab # stage: devicelab
required_agent_capabilities: ["mac/ios"] # required_agent_capabilities: ["mac/ios"]
external_ui_integration_test_ios: external_ui_integration_test_ios:
description: > description: >
...@@ -494,11 +497,12 @@ tasks: ...@@ -494,11 +497,12 @@ tasks:
stage: devicelab stage: devicelab
required_agent_capabilities: ["linux/android"] required_agent_capabilities: ["linux/android"]
dartdocs: # TODO(dnfield): Remove these once we're confident it's all working on cirrus
description: > # dartdocs:
Tracks how many members are still lacking documentation. # description: >
stage: devicelab # Tracks how many members are still lacking documentation.
required_agent_capabilities: ["linux/android"] # stage: devicelab
# required_agent_capabilities: ["linux/android"]
flutter_test_performance: flutter_test_performance:
description: > description: >
......
...@@ -26,14 +26,14 @@ dependencies: ...@@ -26,14 +26,14 @@ dependencies:
crypto: 2.0.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" crypto: 2.0.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
intl: 0.15.7 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" intl: 0.15.7 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
json_rpc_2: 2.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" json_rpc_2: 2.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" petitparser: 2.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
source_span: 1.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" source_span: 1.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
stream_channel: 1.6.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" stream_channel: 1.6.8 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
web_socket_channel: 1.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 1.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
xml: 3.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" xml: 3.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
dev_dependencies: dev_dependencies:
# See packages/flutter_test/pubspec.yaml for why we're pinning this version. # See packages/flutter_test/pubspec.yaml for why we're pinning this version.
...@@ -74,4 +74,4 @@ dev_dependencies: ...@@ -74,4 +74,4 @@ dev_dependencies:
watcher: 0.9.7+10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 0.9.7+10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
yaml: 2.1.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 2.1.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
# PUBSPEC CHECKSUM: 20e4 # PUBSPEC CHECKSUM: d7e6
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def parse_KV_file(file, separator='=')
file_abs_path = File.expand_path(file)
if !File.exists? file_abs_path
return [];
end
pods_ary = []
skip_line_start_symbols = ["#", "/"]
File.foreach(file_abs_path) { |line|
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
plugin = line.split(pattern=separator)
if plugin.length == 2
podname = plugin[0].strip()
path = plugin[1].strip()
podpath = File.expand_path("#{path}", file_abs_path)
pods_ary.push({:name => podname, :path => podpath});
else
puts "Invalid plugin specification: #{line}"
end
}
return pods_ary
end
target 'Runner' do
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
# referring to absolute paths on developers' machines.
system('rm -rf .symlinks')
system('mkdir -p .symlinks/plugins')
# Flutter Pods
generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
if generated_xcode_build_settings.empty?
puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
end
generated_xcode_build_settings.map { |p|
if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
symlink = File.join('.symlinks', 'flutter')
File.symlink(File.dirname(p[:path]), symlink)
pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
end
}
# Plugin Pods
plugin_pods = parse_KV_file('../.flutter-plugins')
plugin_pods.map { |p|
symlink = File.join('.symlinks', 'plugins', p[:name])
File.symlink(p[:path], symlink)
pod p[:name], :path => File.join(symlink, 'ios')
}
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
...@@ -45,7 +45,7 @@ dependencies: ...@@ -45,7 +45,7 @@ dependencies:
package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" petitparser: 2.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...@@ -67,7 +67,7 @@ dependencies: ...@@ -67,7 +67,7 @@ dependencies:
vm_service_client: 0.2.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" vm_service_client: 0.2.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
watcher: 0.9.7+10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" watcher: 0.9.7+10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
web_socket_channel: 1.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" web_socket_channel: 1.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
xml: 3.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" xml: 3.4.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
yaml: 2.1.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" yaml: 2.1.15 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
dev_dependencies: dev_dependencies:
...@@ -80,4 +80,4 @@ dev_dependencies: ...@@ -80,4 +80,4 @@ dev_dependencies:
flutter: flutter:
uses-material-design: true uses-material-design: true
# PUBSPEC CHECKSUM: f2b6 # PUBSPEC CHECKSUM: aeb8
...@@ -11,12 +11,12 @@ environment: ...@@ -11,12 +11,12 @@ environment:
dependencies: dependencies:
args: 1.5.1 args: 1.5.1
vector_math: 2.0.8 vector_math: 2.0.8
xml: 3.4.0 xml: 3.4.1
charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" charcode: 1.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
collection: 1.14.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" collection: 1.14.11 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" convert: 2.1.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" petitparser: 2.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" typed_data: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
dev_dependencies: dev_dependencies:
...@@ -37,4 +37,4 @@ dev_dependencies: ...@@ -37,4 +37,4 @@ dev_dependencies:
term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" term_glyph: 1.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
test_api: 0.2.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" test_api: 0.2.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
# PUBSPEC CHECKSUM: 94b1 # PUBSPEC CHECKSUM: e7b3
...@@ -32,7 +32,7 @@ dependencies: ...@@ -32,7 +32,7 @@ dependencies:
meta: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" meta: 1.1.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
package_config: 1.0.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" package_config: 1.0.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" petitparser: 2.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" plugin: 0.2.0+3 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
source_span: 1.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" source_span: 1.5.5 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...@@ -65,4 +65,4 @@ dev_dependencies: ...@@ -65,4 +65,4 @@ dev_dependencies:
flutter: flutter:
uses-material-design: true uses-material-design: true
# PUBSPEC CHECKSUM: 358c # PUBSPEC CHECKSUM: 688d
...@@ -34,7 +34,7 @@ dependencies: ...@@ -34,7 +34,7 @@ dependencies:
usage: 3.4.1 usage: 3.4.1
vm_service_client: 0.2.6 vm_service_client: 0.2.6
web_socket_channel: 1.0.9 web_socket_channel: 1.0.9
xml: 3.4.0 xml: 3.4.1
yaml: 2.1.15 yaml: 2.1.15
flutter_goldens_client: flutter_goldens_client:
path: ../flutter_goldens_client path: ../flutter_goldens_client
...@@ -77,7 +77,7 @@ dependencies: ...@@ -77,7 +77,7 @@ dependencies:
package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" package_resolver: 1.0.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" path: 1.6.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pedantic: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
petitparser: 2.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" petitparser: 2.2.1 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pool: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
protobuf: 0.13.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" protobuf: 0.13.4 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade" pub_semver: 1.4.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
...@@ -118,4 +118,4 @@ dartdoc: ...@@ -118,4 +118,4 @@ dartdoc:
# Exclude this package from the hosted API docs. # Exclude this package from the hosted API docs.
nodoc: true nodoc: true
# PUBSPEC CHECKSUM: 222d # PUBSPEC CHECKSUM: fa2f
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment