pw_presubmit: Reorder steps; quick pre-push hook

- Set PW_ROOT if it's not set to allow running outside of the Pigweed
  environment.
- Reorder the steps in the full program to put quicker steps first.
- Have the Git pre-push hook run the quick program instead of the
  default full program.

Change-Id: I28c3a5a62bf61e4ed2d889fa9bea17003fcdeab7
diff --git a/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py b/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
index 1377b42..1c180d5 100755
--- a/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
+++ b/pw_presubmit/py/pw_presubmit/pigweed_presubmit.py
@@ -460,16 +460,17 @@
 #
 QUICK_PRESUBMIT: Sequence = (
     *INIT,
-    *PYTHON,
-    gn_clang_build,
-    pw_presubmit.pragma_once,
     *CODE_FORMAT,
     *GENERAL,
+    *CC,
+    gn_clang_build,
+    gn_arm_build,
+    *PYTHON,
 )
 
 PROGRAMS: Dict[str, Sequence] = {
     'broken': BROKEN,
-    'full': INIT + GN + CC + PYTHON + CMAKE + BAZEL + CODE_FORMAT + GENERAL,
+    'full': INIT + CODE_FORMAT + GENERAL + CC + GN + PYTHON + CMAKE + BAZEL,
     'quick': QUICK_PRESUBMIT,
 }
 
@@ -537,6 +538,9 @@
 ) -> int:
     """Entry point for presubmit."""
 
+    os.environ.setdefault('PW_ROOT',
+                          str(pw_presubmit.git_repo_path(repo=repository)))
+
     if not output_directory:
         output_directory = pw_presubmit.git_repo_path('.presubmit',
                                                       repo=repository)
@@ -549,7 +553,8 @@
         shutil.rmtree(environment.joinpath('init_virtualenv'))
 
     if install:
-        install_hook(__file__, 'pre-push', ['--base', 'origin/master..HEAD'],
+        install_hook(__file__, 'pre-push',
+                     ['--base', 'origin/master..HEAD', '--program', 'quick'],
                      repository)
         return 0