Skip to content

Commit

Permalink
Add build test for Flutter codelabs (flutter#19579)
Browse files Browse the repository at this point in the history
* Add build test for Flutter codelabs

* Fix indentation in build test script

* Correct filename for the codelabs build test run by travis

* Change if statement to elif

* Replace echo statements with set -x

* Add BSD-style license

* Add codelabs build test to Cirrus

* Remove codelabs_build_test from Travis.

* Remove codelabs_build_test from travis_script.sh

* Update documentation for codelabs_build_test.sh

* Update readme for build test

* Add link to open a new issue to MDC-Flutter

* Add phrase to address "if you think you really need to break this test, please escalate this"
  • Loading branch information
tianlunlee authored Sep 6, 2018
1 parent 4fc5048 commit e2167b9
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ task:
container:
cpu: 4
memory: 8G
- name: codelabs-build-test
env:
SHARD: codelabs-build-test
build_test_script: ./dev/bots/codelabs_build_test.sh


task:
windows_container:
Expand Down
14 changes: 14 additions & 0 deletions dev/bots/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,3 +148,17 @@ components need to be updated or installed, follow the steps below:
6. Run upload_android_tools.py -t ndk
`$ cd ../..`
`$ dev/bots/upload_android_tools.py -t ndk`

## Flutter codelabs build test

The Flutter codelabs exercise Material Components in the form of a demo application. Note that the
code for the codelabs is similar to but distinct from the code for the Shrine demo app in Flutter Gallery.
The Flutter codelabs build test ensures that the final version of
[Material Components for Flutter Codelabs](https://github.com/material-components/material-components-flutter-codelabs)
can be built. This test serves as a smoke test for the Flutter framework and should not fail. Please
address the issue from within your PR and rerun the test. If you feel that the test failing is not a
direct result of changes made in your PR or that breaking this test is absolutely necessary, escalate this issue by
[submitting an issue](https://github.com/material-components/material-components-flutter-codelabs/issues/new?title=%5BURGENT%5D%20Flutter%20Framework%20breaking%20PR)
to the MDC-Flutter Team.


43 changes: 43 additions & 0 deletions dev/bots/codelabs_build_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

set -ex

readonly SCRIPTS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
readonly ROOT_DIR="$SCRIPTS_DIR/.."

function is_expected_failure() {
# A test target was specified with the 'build' command.
grep --quiet "is not configured for Running" "$1"
}

log_file="build_log_for_104_complete.txt"
build_command="flutter build bundle"

# Attempt to build 104-complete Shrine app from the Flutter codelabs
git clone https://github.com/material-components/material-components-flutter-codelabs.git
cd material-components-flutter-codelabs/mdc_100_series/
git checkout 104-complete

all_builds_ok=1
echo "$build_command"
$build_command 2>&1 | tee "$log_file"

if [ ${PIPESTATUS[0]} -eq 0 ] || is_expected_failure "$log_file"; then
rm "$log_file"
else
all_builds_ok=0
echo "View https://github.com/flutter/flutter/blob/master/dev/bots/README.md for steps to resolve this failed build test." >> ${log_file}
echo
echo "Log left in $log_file."
echo
fi

# If any build failed, exit with a failure exit status so continuous integration
# tools can react appropriately.
if [ "$all_builds_ok" -eq 1 ]; then
exit 0
else
exit 1
fi

0 comments on commit e2167b9

Please sign in to comment.