| Index: sync_build_test.sh
|
| diff --git a/sync_build_test.sh b/sync_build_test.sh
|
| index ccb151470b0d87b23b33f2c5bbf63fe66538597f..15b4e04d2bd1052d87d927edf01c2cb2fc1f91e6 100755
|
| --- a/sync_build_test.sh
|
| +++ b/sync_build_test.sh
|
| @@ -83,6 +83,7 @@ DEFINE_string top "" \
|
| "Root directory of your checkout (defaults to determining from your cwd)"
|
| DEFINE_boolean withdev ${FLAGS_TRUE} "Build development packages"
|
| DEFINE_boolean usepkg ${FLAGS_TRUE} "Use binary packages"
|
| +DEFINE_boolean useworkon ${FLAGS_FALSE} "Use cros_workon/repo workflow"
|
| DEFINE_boolean unittest ${FLAGS_TRUE} "Run unit tests"
|
|
|
| # Returns a heuristic indicating if we believe this to be a google internal
|
| @@ -101,7 +102,7 @@ function validate_and_set_param_defaults() {
|
| if [[ -z "${FLAGS_top}" ]]; then
|
| local test_dir=$(pwd)
|
| while [[ "${test_dir}" != "/" ]]; do
|
| - if [[ -d "${test_dir}/src/platform/pam_google" ]]; then
|
| + if [[ -d "${test_dir}/src/platform/dev" ]]; then
|
| FLAGS_top="${test_dir}"
|
| break
|
| fi
|
| @@ -119,6 +120,15 @@ function validate_and_set_param_defaults() {
|
| FLAGS_top=$(readlink -f "${FLAGS_top}")
|
| fi
|
|
|
| + if [[ -d "${FLAGS_top}" ]]; then
|
| + # Auto detect the right workflow.
|
| + if [[ -d "${FLAGS_top}/.git" ]]; then
|
| + FLAGS_useworkon=${FLAGS_FALSE}
|
| + else
|
| + FLAGS_useworkon=${FLAGS_TRUE}
|
| + fi
|
| + fi
|
| +
|
| if [[ -z "${FLAGS_chroot}" ]]; then
|
| FLAGS_chroot="${FLAGS_top}/chroot"
|
| fi
|
| @@ -127,7 +137,6 @@ function validate_and_set_param_defaults() {
|
| if [[ ! -d "${FLAGS_chroot}" ]]; then
|
| FLAGS_force_make_chroot=${FLAGS_TRUE}
|
| fi
|
| -
|
| # If chrome_root option passed, set as option for ./enter_chroot
|
| if [[ -n "${FLAGS_chrome_root}" ]]; then
|
| chroot_options="--chrome_root=${FLAGS_chrome_root}"
|
| @@ -148,6 +157,12 @@ function validate_and_set_param_defaults() {
|
| # If you specify that tests should be run, we assume you want
|
| # to live update the image.
|
| FLAGS_image_to_live=${FLAGS_TRUE}
|
| + if [[ ${FLAGS_useworkon} -eq ${FLAGS_TRUE} ]]; then
|
| + # Currently the workon flow does not enable tests to be dynamically
|
| + # built during run_remote_tests, so we need to build them all
|
| + # beforehand.
|
| + FLAGS_build_autotest=${FLAGS_TRUE}
|
| + fi
|
| fi
|
|
|
| # If they gave us a remote host, then we assume they want us to do a live
|
| @@ -211,7 +226,11 @@ function validate_and_set_param_defaults() {
|
| # Prints a description of what we are doing or did
|
| function describe_steps() {
|
| if [[ ${FLAGS_sync} -eq ${FLAGS_TRUE} ]]; then
|
| - echo " * Sync client (gclient sync)"
|
| + if [[ ${FLAGS_useworkon} -eq ${FLAGS_TRUE} ]]; then
|
| + echo " * Sync client (repo sync)"
|
| + else
|
| + echo " * Sync client (gclient sync)"
|
| + fi
|
| if is_google_environment; then
|
| echo " * Create proper src/scripts/.chromeos_dev"
|
| fi
|
| @@ -285,24 +304,6 @@ function interactive() {
|
| fi
|
| }
|
|
|
| -
|
| -# Runs gclient config on a new checkout directory.
|
| -function config_new_checkout() {
|
| - # We only know how to check out to a pattern like ~/foo/chromeos so
|
| - # make sure that's the pattern the user has given.
|
| - echo "Checking out ${FLAGS_top}"
|
| - if [[ $(basename "${FLAGS_top}") != "chromeos" ]]; then
|
| - echo "The --top directory does not exist and to check it out requires"
|
| - echo "the name to end in chromeos (try --top=${FLAGS_top}/chromeos)"
|
| - exit 1
|
| - fi
|
| - local top_parent=$(dirname "${FLAGS_top}")
|
| - mkdir -p "${top_parent}"
|
| - cd "${top_parent}"
|
| - gclient config "${FLAGS_repo}"
|
| -}
|
| -
|
| -
|
| # Changes to a directory relative to the top/root directory of
|
| # the checkout.
|
| # Arguments:
|
| @@ -385,22 +386,58 @@ function show_duration() {
|
| printf "Total time: %d:%02ds\n" "${minutes_duration}" "${seconds_duration}"
|
| }
|
|
|
| +# Runs gclient config on a new checkout directory.
|
| +function config_new_gclient_checkout() {
|
| + # We only know how to check out to a pattern like ~/foo/chromeos so
|
| + # make sure that's the pattern the user has given.
|
| + if [[ $(basename "${FLAGS_top}") != "chromeos" ]]; then
|
| + echo "The --top directory does not exist and to check it out requires"
|
| + echo "the name to end in chromeos (try --top=${FLAGS_top}/chromeos)"
|
| + exit 1
|
| + fi
|
| + local top_parent=$(dirname "${FLAGS_top}")
|
| + mkdir -p "${top_parent}"
|
| + cd "${top_parent}"
|
| + gclient config "${FLAGS_repo}"
|
| +}
|
| +
|
| +# Runs repo init on a new checkout directory.
|
| +function config_new_repo_checkout() {
|
| + mkdir -p "${FLAGS_top}"
|
| + cd "${FLAGS_top}"
|
| + repo init -u http://src.chromium.org/git/manifest -m minilayout.xml
|
| +}
|
| +
|
| +# Configures/initializes a new checkout
|
| +function config_new_checkout() {
|
| + echo "Checking out ${FLAGS_top}"
|
| + if [[ ${FLAGS_useworkon} ]]; then
|
| + config_new_repo_checkout
|
| + else
|
| + config_new_gclient_checkout
|
| + fi
|
| +}
|
|
|
| # Runs gclient sync, setting up .chromeos_dev and preparing for
|
| # local repo setup
|
| function sync() {
|
| # cd to the directory below
|
| - chdir_relative ..
|
| - run_phase "Synchronizing client" gclient sync
|
| + if [[ ${FLAGS_useworkon} -eq ${FLAGS_TRUE} ]]; then
|
| + chdir_relative .
|
| + run_phase "Synchronizing client" repo sync
|
| + # Change to a directory that is definitely a git repo
|
| + chdir_relative src/third_party/chromiumos-overlay
|
| + git cl config "file://$(pwd)/../../../codereview.settings"
|
| + else
|
| + chdir_relative ..
|
| + run_phase "Synchronizing client" gclient sync
|
| + chdir_relative .
|
| + git cl config "file://$(pwd)/codereview.settings"
|
| + fi
|
| chdir_relative .
|
| - git cl config "file://$(pwd)/codereview.settings"
|
| if is_google_environment; then
|
| local base_dir=$(dirname $(dirname "${FLAGS_top}"))
|
| echo <<EOF > src/scripts/.chromeos_dev
|
| -# Use internal chromeos-deb repository
|
| -CHROMEOS_EXT_MIRROR="http://chromeos-deb/ubuntu"
|
| -CHROMEOS_EXT_SUITE="karmic"
|
| -
|
| # Assume Chrome is checked out nearby
|
| CHROMEOS_CHROME_DIR="${base_dir}/chrome"
|
| EOF
|
| @@ -508,7 +545,9 @@ function main() {
|
|
|
| if [[ ${FLAGS_force_make_chroot} -eq ${FLAGS_TRUE} ]]; then
|
| chdir_relative src/scripts
|
| - run_phase "Replacing chroot" ./make_chroot --replace \
|
| + local extra_flags="--nouseworkon"
|
| + [[ ${FLAGS_useworkon} -eq ${FLAGS_TRUE} ]] && extra_flags="--useworkon"
|
| + run_phase "Replacing chroot" ./make_chroot ${extra_flags} --replace \
|
| "--chroot=${FLAGS_chroot}" ${jobs_param}
|
| fi
|
|
|
|
|