Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
fa1b48d
Split CI testing based on flutter channels
domesticmouse Jan 18, 2021
ebfda63
Drop flutter_maps_firestore from beta and dev
domesticmouse Jan 18, 2021
6796a4d
Drop isolate_example and add_to_app/android_fullscreen
domesticmouse Jan 18, 2021
5321f8b
Drop place_tracker from beta and dev
domesticmouse Jan 18, 2021
d1a83f5
Drop platform_channels from beta and dev
domesticmouse Jan 18, 2021
731f224
Drop provider_shopper from beta and dev
domesticmouse Jan 18, 2021
04439f0
Drop testing_app from beta and dev
domesticmouse Jan 18, 2021
bc35aae
Add experimental dirs to beta and dev
domesticmouse Jan 18, 2021
611689d
Drop experimental/federated_plugin/federated_plugin
domesticmouse Jan 18, 2021
3ef2486
Fix desktop_photo_search
domesticmouse Jan 18, 2021
7d9b63f
Fix null safe app's badapp
domesticmouse Jan 18, 2021
44b90aa
Give null_unsafe_app a widget test
domesticmouse Jan 18, 2021
af4628d
flutter format veggieseasons
domesticmouse Jan 18, 2021
f1e344f
Drop experimental/web_dashboard from CI
domesticmouse Jan 18, 2021
46c5868
Use matrix to simplify config
domesticmouse Jan 18, 2021
815d98e
Re-instate fail-fast:false
domesticmouse Jan 19, 2021
17e66c0
Merge branch 'master' of https://github.com/flutter/samples into stab…
domesticmouse Jan 19, 2021
68af20f
Format experimental/veggieseasons
domesticmouse Jan 19, 2021
f865c32
Bring back add_to_app/android_fullscreen
domesticmouse Jan 19, 2021
86e1362
Merge branch 'master' of https://github.com/flutter/samples into stab…
domesticmouse Jan 20, 2021
42f4ed3
Bring back experimental/web_dashboard
domesticmouse Jan 20, 2021
bf03529
Fix experimental/web_dashboard beta warnings
domesticmouse Jan 20, 2021
e213ec4
flutter format experimental/web_dashboard
domesticmouse Jan 20, 2021
b9bfa5e
Merge branch 'master' of https://github.com/flutter/samples into stab…
domesticmouse Jan 22, 2021
4cc69af
Add Windows and macOS to the flutter-tests job
domesticmouse Jan 22, 2021
1ec29bb
Merge branch 'master' of https://github.com/flutter/samples into stab…
domesticmouse Jan 22, 2021
56c983d
Merge branch 'master' of https://github.com/flutter/samples into stab…
domesticmouse Jan 27, 2021
2f5f738
Merge branch 'master' into stable-beta-dev-ci-split
domesticmouse Jan 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,19 @@ on:
schedule:
- cron: '0 0 * * *' # Every day at midnight

defaults:
run:
shell: bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting. Is it running zsh on macOS?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or PowerShell on Windows? 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Powershell on windows by default was the issue.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Holy cow. I was just kidding around. 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

heh, holy cow is usual state of play for DevOps =)


jobs:
flutter-tests:
runs-on: ubuntu-latest
name: Test Flutter ${{ matrix.flutter_version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- flutter_version: dev
- flutter_version: beta
- flutter_version: stable
flutter_version: [dev, beta, stable]
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
Expand All @@ -27,11 +30,9 @@ jobs:
- uses: subosito/flutter-action@v1
with:
channel: ${{ matrix.flutter_version }}
- run: ./tool/flutter_ci_script.sh
- run: ./tool/flutter_ci_script_${{ matrix.flutter_version }}.sh
android-build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
Expand All @@ -43,8 +44,6 @@ jobs:
- run: ./tool/android_ci_script.sh
ios-build:
runs-on: macos-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
Expand Down
1 change: 0 additions & 1 deletion experimental/desktop_photo_search/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// found in the LICENSE file.

import 'dart:io';
import 'dart:typed_data';

import 'package:file_selector/file_selector.dart';
import 'package:flutter/foundation.dart';
Expand Down
2 changes: 2 additions & 0 deletions experimental/null_safety/null_safe_app/lib/badapp.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore_for_file: unused_local_variable

import 'package:flutter/material.dart';

import 'services.dart';
Expand Down
15 changes: 15 additions & 0 deletions experimental/null_safety/null_unsafe_app/test/widget_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.

import 'package:flutter_test/flutter_test.dart';

void main() {
testWidgets('Rendering the page throws an exception',
(WidgetTester tester) async {
// Do nothing, running the app throws an exception on widget render.
});
}
13 changes: 8 additions & 5 deletions experimental/veggieseasons/lib/screens/settings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ class VeggieCategorySettingsScreen extends StatelessWidget {

static Route<void> _routeBuilder(BuildContext context, Object argument) {
return CupertinoPageRoute(
builder: (context) => VeggieCategorySettingsScreen(restorationId: 'category'),
builder: (context) =>
VeggieCategorySettingsScreen(restorationId: 'category'),
title: 'Preferred Categories',
);
}
Expand Down Expand Up @@ -136,9 +137,10 @@ class CalorieSettingsScreen extends StatelessWidget {
label: cals.toString(),
icon: SettingsIcon(
icon: Styles.checkIcon,
foregroundColor: snapshot.hasData && snapshot.data == cals
? CupertinoColors.activeBlue
: Styles.transparentColor,
foregroundColor:
snapshot.hasData && snapshot.data == cals
? CupertinoColors.activeBlue
: Styles.transparentColor,
backgroundColor: Styles.transparentColor,
),
onPress: snapshot.hasData
Expand Down Expand Up @@ -219,7 +221,8 @@ class SettingsScreen extends StatelessWidget {
restorationId: restorationId,
child: CupertinoPageScaffold(
child: Container(
color: Styles.scaffoldBackground(CupertinoTheme.brightnessOf(context)),
color:
Styles.scaffoldBackground(CupertinoTheme.brightnessOf(context)),
child: CustomScrollView(
restorationId: 'list',
slivers: <Widget>[
Expand Down
26 changes: 17 additions & 9 deletions experimental/veggieseasons/test/restoration_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,32 @@ void main() {
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
expect(find.text('Serving info'), findsOneWidget);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value, isFalse);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value,
isFalse);
await tester.tap(find.byType(CupertinoSwitch));
await tester.pumpAndSettle();
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value, isTrue);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value,
isTrue);

// Current details page is restored.
await tester.restartAndRestore();
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
expect(find.text('Serving info'), findsOneWidget);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value, isTrue);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value,
isTrue);

await tester.tap(find.text('Trivia'));
await tester.pumpAndSettle();
expect(find.text('Serving info'), findsNothing);
expect(find.text("Which of these isn't a variety of figs?"), findsOneWidget);
expect(
find.text("Which of these isn't a variety of figs?"), findsOneWidget);

// Restores to trivia page.
await tester.restartAndRestore();
expect(find.text('Serving info'), findsNothing);
expect(find.text("Which of these isn't a variety of figs?"), findsOneWidget);
expect(
find.text("Which of these isn't a variety of figs?"), findsOneWidget);

await tester.tap(find.text('Brown Turkey'));
await tester.pumpAndSettle();
Expand Down Expand Up @@ -92,13 +97,15 @@ void main() {
await tester.tap(find.text('My Garden'));
await tester.pumpAndSettle();

expect(find.text('My Garden'), findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('My Garden'),
findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);

// Restores the current selected tab.
await tester.restartAndRestore();
expect(find.text('My Garden'), findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('My Garden'),
findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
expect(find.text('Apples'), findsNothing);
Expand All @@ -109,7 +116,8 @@ void main() {

expect(find.text('Apples'), findsOneWidget);
expect(find.text('Tangelo'), findsNothing);
await tester.enterText(find.byType(CupertinoTextField).hitTestable(), 'Tan');
await tester.enterText(
find.byType(CupertinoTextField).hitTestable(), 'Tan');
await tester.pumpAndSettle();
expect(find.text('Apples'), findsNothing);
expect(find.text('Tangelo'), findsOneWidget);
Expand All @@ -129,7 +137,7 @@ void main() {

expect(find.text('Tangelo'), findsOneWidget);
expect(find.text('Serving info'), findsOneWidget);

// Restores details page
await tester.restartAndRestore();
expect(find.text('Tangelo'), findsOneWidget);
Expand Down
1 change: 0 additions & 1 deletion experimental/web_dashboard/lib/src/auth/firebase.dart
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,3 @@ class _FirebaseUser implements User {

_FirebaseUser(this.uid);
}

2 changes: 1 addition & 1 deletion experimental/web_dashboard/lib/src/auth/mock.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class MockAuthService implements Auth {
Future<User> signIn() async {
// Sign in will randomly fail 25% of the time.
var random = Random();
if (random.nextInt(4) == 0) {
if (random.nextInt(4) == 0) {
throw SignInException();
}
return MockUser();
Expand Down
2 changes: 1 addition & 1 deletion experimental/web_dashboard/lib/src/pages/sign_in.dart
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class _SignInButtonState extends State<SignInButton> {
}

void _showError() {
Scaffold.of(context).showSnackBar(
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Unable to sign in.'),
),
Expand Down
3 changes: 2 additions & 1 deletion experimental/web_dashboard/tool/grind.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ void runWeb() {
@Task()
void runFirebase() {
run('flutter',
arguments: 'run -d web --web-port=5000 lib/main_firebase.dart '.split(' '));
arguments:
'run -d web --web-port=5000 lib/main_firebase.dart '.split(' '));
}

@Task()
Expand Down
2 changes: 1 addition & 1 deletion tool/android_ci_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ declare -ar ANDROID_PROJECT_NAMES=(

for PROJECT_NAME in "${ANDROID_PROJECT_NAMES[@]}"
do
echo "== Testing '${PROJECT_NAME}' on Flutter's ${FLUTTER_VERSION} channel =="
echo "== Testing '${PROJECT_NAME}' on Flutter's stable channel =="
pushd "${PROJECT_NAME}"

./gradlew --stacktrace assembleDebug
Expand Down
63 changes: 63 additions & 0 deletions tool/flutter_ci_script_beta.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/bash

set -e

declare -ar PROJECT_NAMES=(
"add_to_app/flutter_module" \
"add_to_app/flutter_module_using_plugin" \
"add_to_app/flutter_module_books" \
"animations" \
# Tracking issue: https://github.com/flutter/samples/issues/652
# "flutter_maps_firestore" \
"infinite_list" \
"ios_app_clip" \
# Tracking issue: https://github.com/flutter/samples/issues/653
# "isolate_example" \
"jsonexample" \
# Tracking issue: https://github.com/flutter/samples/issues/655
# "place_tracker" \
# Tracking issue: https://github.com/flutter/samples/issues/656
# "platform_channels" \
"platform_design"
"platform_view_swift" \
"provider_counter" \
# Tracking issue: https://github.com/flutter/samples/issues/657
# "provider_shopper" \
# Tracking issue: https://github.com/flutter/samples/issues/658
# "testing_app" \
# Tracking issue: https://github.com/flutter/samples/issues/659
# "experimental/federated_plugin/federated_plugin" \
"experimental/null_safety/null_safe_app" \
"experimental/null_safety/null_unsafe_app" \
"experimental/veggieseasons" \
"experimental/web_dashboard" \
)

for PROJECT_NAME in "${PROJECT_NAMES[@]}"
do
echo "== Testing '${PROJECT_NAME}' on Flutter's beta channel =="
pushd "${PROJECT_NAME}"

# Grab packages.
flutter pub get

# Run the analyzer to find any static analysis issues.
flutter analyze

# Reformat the web plugin registrant, if necessary.
if [ -f "lib/generated_plugin_registrant.dart" ]
then
echo "Renaming $(pwd)/lib/generated_plugin_registrant.dart"
flutter format "lib/generated_plugin_registrant.dart"
fi

# Run the formatter on all the dart files to make sure everything's linted.
flutter format -n --set-exit-if-changed .

# Run the actual tests.
flutter test

popd
done

echo "-- Success --"
64 changes: 64 additions & 0 deletions tool/flutter_ci_script_dev.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#!/bin/bash

set -e

declare -ar PROJECT_NAMES=(
"add_to_app/flutter_module" \
"add_to_app/flutter_module_using_plugin" \
"add_to_app/flutter_module_books" \
"animations" \
# Tracking issue: https://github.com/flutter/samples/issues/652
# "flutter_maps_firestore" \
"infinite_list" \
"ios_app_clip" \
# Tracking issue: https://github.com/flutter/samples/issues/653
# "isolate_example" \
"jsonexample" \
# Tracking issue: https://github.com/flutter/samples/issues/655
# "place_tracker" \
# Tracking issue: https://github.com/flutter/samples/issues/656
# "platform_channels" \
"platform_design"
"platform_view_swift" \
"provider_counter" \
# Tracking issue: https://github.com/flutter/samples/issues/657
# "provider_shopper" \
# Tracking issue: https://github.com/flutter/samples/issues/658
# "testing_app" \
"experimental/desktop_photo_search" \
# https://github.com/flutter/samples/issues/659
# "experimental/federated_plugin/federated_plugin" \
"experimental/null_safety/null_safe_app" \
"experimental/null_safety/null_unsafe_app" \
"experimental/veggieseasons" \
"experimental/web_dashboard" \
)

for PROJECT_NAME in "${PROJECT_NAMES[@]}"
do
echo "== Testing '${PROJECT_NAME}' on Flutter's dev channel =="
pushd "${PROJECT_NAME}"

# Grab packages.
flutter pub get

# Run the analyzer to find any static analysis issues.
flutter analyze

# Reformat the web plugin registrant, if necessary.
if [ -f "lib/generated_plugin_registrant.dart" ]
then
echo "Renaming $(pwd)/lib/generated_plugin_registrant.dart"
flutter format "lib/generated_plugin_registrant.dart"
fi

# Run the formatter on all the dart files to make sure everything's linted.
flutter format -n --set-exit-if-changed .

# Run the actual tests.
flutter test

popd
done

echo "-- Success --"
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ declare -ar PROJECT_NAMES=(

for PROJECT_NAME in "${PROJECT_NAMES[@]}"
do
echo "== Testing '${PROJECT_NAME}' on Flutter's ${FLUTTER_VERSION} channel =="
echo "== Testing '${PROJECT_NAME}' on Flutter's stable channel =="
pushd "${PROJECT_NAME}"

# Grab packages.
Expand Down