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"
This commit is contained in:
parent
4fc5048efd
commit
e2167b9f53
@ -61,6 +61,11 @@ task:
|
|||||||
container:
|
container:
|
||||||
cpu: 4
|
cpu: 4
|
||||||
memory: 8G
|
memory: 8G
|
||||||
|
- name: codelabs-build-test
|
||||||
|
env:
|
||||||
|
SHARD: codelabs-build-test
|
||||||
|
build_test_script: ./dev/bots/codelabs_build_test.sh
|
||||||
|
|
||||||
|
|
||||||
task:
|
task:
|
||||||
windows_container:
|
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
|
6. Run upload_android_tools.py -t ndk
|
||||||
`$ cd ../..`
|
`$ cd ../..`
|
||||||
`$ dev/bots/upload_android_tools.py -t ndk`
|
`$ 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
dev/bots/codelabs_build_test.sh
Executable file
43
dev/bots/codelabs_build_test.sh
Executable file
@ -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
|
Loading…
x
Reference in New Issue
Block a user