Skip to content

Commit

Permalink
[ci][image_picker]enable xcode 12/iOS 14 for all tasks except lint (f…
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Yang authored Jan 23, 2021
1 parent 6783cd5 commit 712dcc1
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 18 deletions.
50 changes: 36 additions & 14 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ task:
env:
INTEGRATION_TEST_PATH: "./packages/integration_test"
upgrade_script:
- sudo gem install cocoapods
- flutter channel stable
- flutter upgrade
- flutter channel master
Expand All @@ -134,13 +135,14 @@ task:
- xvfb-run ./script/incremental_build.sh drive-examples --linux

task:
# Xcode 11 task
# TODO(cyanglaz): merge Xcode 11 task to Xcode 12 task when all the matrix can be run in Xcode 12.
# don't run on release tags since it creates O(n^2) tasks where n is the number of plugins
only_if: $CIRRUS_TAG == ''
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
osx_instance:
image: catalina-xcode-11.3.1-flutter
upgrade_script:
- sudo gem install cocoapods
- flutter channel stable
- flutter upgrade
- flutter channel master
Expand All @@ -151,17 +153,6 @@ task:
- xcrun simctl list
- xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot
matrix:
- name: build_all_plugins_ipa
env:
matrix:
CHANNEL: "master"
CHANNEL: "stable"
script:
# TODO(jackson): Allow web plugins once supported on stable
# https://github.com/flutter/flutter/issues/42864
- if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
- flutter channel $CHANNEL
- ./script/build_all_plugins_app.sh ios --no-codesign
- name: lint_darwin_plugins
env:
matrix:
Expand All @@ -173,6 +164,37 @@ task:
# Skip the dummy podspecs used to placate the tool.
- find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm
- ./script/incremental_build.sh podspecs

task:
# Xcode 12 task
# don't run on release tags since it creates O(n^2) tasks where n is the number of plugins
only_if: $CIRRUS_TAG == ''
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
osx_instance:
image: big-sur-xcode-12.3
upgrade_script:
- sudo gem install cocoapods
- flutter channel stable
- flutter upgrade
- flutter channel master
- flutter upgrade
- git fetch origin master
activate_script: pub global activate flutter_plugin_tools
create_simulator_script:
- xcrun simctl list
- xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot
matrix:
- name: build_all_plugins_ipa
env:
matrix:
CHANNEL: "master"
CHANNEL: "stable"
script:
# TODO(jackson): Allow web plugins once supported on stable
# https://github.com/flutter/flutter/issues/42864
- if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
- flutter channel $CHANNEL
- ./script/build_all_plugins_app.sh ios --no-codesign
- name: build-ipas+drive-examples
env:
PATH: $PATH:/usr/local/bin
Expand All @@ -193,13 +215,13 @@ task:
- flutter channel $CHANNEL
- ./script/incremental_build.sh build-examples --ipa
- ./script/incremental_build.sh drive-examples
- ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS
- ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS --ios-destination "platform=iOS Simulator,name=iPhone 11,OS=14.3"
task:
# don't run on release tags since it creates O(n^2) tasks where n is the number of plugins
only_if: $CIRRUS_TAG == ''
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
osx_instance:
image: catalina-xcode-11.3.1-flutter
image: big-sur-xcode-12.3
setup_script:
- flutter config --enable-macos-desktop
upgrade_script:
Expand Down
4 changes: 4 additions & 0 deletions packages/image_picker/image_picker/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.6.7+22

* iOS: update XCUITests to separate each test session.

## 0.6.7+21

* Update the example app: remove the deprecated `RaisedButton` and `FlatButton` widgets.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ @interface ImagePickerFromGalleryUITests : XCTestCase
@implementation ImagePickerFromGalleryUITests

- (void)setUp {
[super setUp];
// Delete the app if already exists, to test permission popups

self.continueAfterFailure = NO;
Expand All @@ -31,7 +32,7 @@ - (void)setUp {
if (![allPhotoPermission waitForExistenceWithTimeout:
kElementWaitingTime]) {
os_log_error(OS_LOG_DEFAULT, "%@",
self.app.debugDescription);
weakSelf.app.debugDescription);
XCTFail(@"Failed due to not able to find "
@"allPhotoPermission button with %@ seconds",
@(kElementWaitingTime));
Expand All @@ -42,7 +43,7 @@ - (void)setUp {
if (![ok waitForExistenceWithTimeout:
kElementWaitingTime]) {
os_log_error(OS_LOG_DEFAULT, "%@",
self.app.debugDescription);
weakSelf.app.debugDescription);
XCTFail(@"Failed due to not able to find ok button "
@"with %@ seconds",
@(kElementWaitingTime));
Expand All @@ -53,11 +54,19 @@ - (void)setUp {
}];
}

- (void)tearDown {
[super tearDown];
[self.app terminate];
}

- (void)testPickingFromGallery {
[self launchPickerAndCancel];
[self launchPickerAndPick];
}

- (void)testCancel {
[self launchPickerAndCancel];
}

- (void)launchPickerAndCancel {
// Find and tap on the pick from gallery button.
NSPredicate* predicateToFindImageFromGalleryButton =
Expand Down Expand Up @@ -160,6 +169,10 @@ - (void)launchPickerAndPick {
XCTAssertTrue(pickButton.exists);
[pickButton tap];

// There is a known bug where the permission popups interruption won't get fired until a tap
// happened in the app. We expect a permission popup so we do a tap here.
[self.app tap];

// Find an image and tap on it. (IOS 14 UI, images are showing directly)
XCUIElement* aImage;
if (@available(iOS 14, *)) {
Expand All @@ -177,6 +190,7 @@ - (void)launchPickerAndPick {
identifier:@"PhotosGridView"]
.cells.firstMatch;
}
os_log_error(OS_LOG_DEFAULT, "description before picking image %@", self.app.debugDescription);
if (![aImage waitForExistenceWithTimeout:kElementWaitingTime]) {
os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription);
XCTFail(@"Failed due to not able to find an image with %@ seconds", @(kElementWaitingTime));
Expand Down
2 changes: 1 addition & 1 deletion packages/image_picker/image_picker/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: image_picker
description: Flutter plugin for selecting images from the Android and iOS image
library, and taking new pictures with the camera.
homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker
version: 0.6.7+21
version: 0.6.7+22

flutter:
plugin:
Expand Down

0 comments on commit 712dcc1

Please sign in to comment.