|  | #!/usr/bin/env bash | 
|  | # Copyright 2014 The Flutter 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 |