#!/usr/bin/env bash # Copyright 2016 The Fuchsia Authors # # Use of this source code is governed by a MIT-style # license that can be found in the LICENSE file or at # https://opensource.org/licenses/MIT # Use this to use git bisect with prebuilt binary artifacts. To use, first copy the script somewhere # outside of the source tree (so git bisect won't mess with it) then run the following commands: # git bisect start # git bisect run PATH_TO/bisect-helper # The script will download the prebuilt zircon.bin associated with each commit, if it exists, and # start it up in qemu. After qemu exits, the script will ask if the build is good or bad. Type 'y' # or 'n' and the bisect will proceed. set -e readonly SCRIPT_DIR="$1" readonly TEMP_DIR="$(mktemp -d)" trap "rm -rf -- "${TEMP_DIR}"" EXIT readonly CURRENT_COMMIT="$(git rev-parse HEAD)" readonly ZIRCON_BIN_URL="https://storage-download.googleapis.com/fuchsia-build/zircon/qemu-arm64/zircon.elf/${CURRENT_COMMIT}" readonly DOWNLOAD_STATUS="$(curl -s -w %{http_code} --progress-bar --output "${TEMP_DIR}/zircon.elf" "${ZIRCON_BIN_URL}")" if [[ "${DOWNLOAD_STATUS}" != 200 ]]; then echo "Could not find prebuilt at ${ZIRCON_BIN_URL}: ${DOWNLOAD_STATUS}" exit 125 # could not evaluate this commit, no prebuilt available fi "${SCRIPT_DIR}/run-zircon-arm64" -o "${TEMP_DIR}" echo "Did it work? y/n" read RESULT if [[ "${RESULT}" == y ]]; then exit 0 else exit 1 fi