Unverified Commit e2167b9f authored by TL Lee's avatar TL Lee Committed by GitHub

Add build test for Flutter codelabs (#19579)

* 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"
parent 4fc5048e
......@@ -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:
......
......@@ -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.
#!/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
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