diff --git a/pw_presubmit/docs.rst b/pw_presubmit/docs.rst
index f03d57d..4083837 100644
--- a/pw_presubmit/docs.rst
+++ b/pw_presubmit/docs.rst
@@ -115,6 +115,8 @@
 * ``override_gn_args``: Additional GN args processed by ``build.gn_gen()``
 * ``luci``: Information about the LUCI build or None if not running in LUCI
 * ``num_jobs``: Number of jobs to run in parallel
+* ``continue_after_build_error``: For steps that compile, don't exit on the
+  first compilation error
 
 The ``luci`` member is of type ``LuciContext`` and has the following members:
 
diff --git a/pw_presubmit/py/pw_presubmit/build.py b/pw_presubmit/py/pw_presubmit/build.py
index de72d92..6aca99a 100644
--- a/pw_presubmit/py/pw_presubmit/build.py
+++ b/pw_presubmit/py/pw_presubmit/build.py
@@ -53,6 +53,10 @@
     if ctx.num_jobs is not None:
         num_jobs.extend(('--jobs', str(ctx.num_jobs)))
 
+    keep_going: List[str] = []
+    if ctx.continue_after_build_error:
+        keep_going.append('--keep_going')
+
     call('bazel',
          cmd,
          '--verbose_failures',
@@ -60,6 +64,7 @@
          '--worker_verbose',
          f'--symlink_prefix={ctx.output_dir / ".bazel-"}',
          *num_jobs,
+         *keep_going,
          *args,
          cwd=ctx.root,
          env=env_with_clang_vars())
@@ -159,6 +164,10 @@
     if ctx.num_jobs is not None:
         num_jobs.extend(('-j', str(ctx.num_jobs)))
 
+    keep_going: List[str] = []
+    if ctx.continue_after_build_error:
+        keep_going.extend(('-k', '0'))
+
     if save_compdb:
         proc = subprocess.run(
             ['ninja', '-C', ctx.output_dir, '-t', 'compdb', *args],
@@ -173,7 +182,8 @@
             **kwargs)
         (ctx.output_dir / 'ninja.graph').write_bytes(proc.stdout)
 
-    call('ninja', '-C', ctx.output_dir, *num_jobs, *args, **kwargs)
+    call('ninja', '-C', ctx.output_dir, *num_jobs, *keep_going, *args,
+         **kwargs)
     (ctx.output_dir / '.ninja_log').rename(ctx.output_dir / 'ninja.log')
 
 
diff --git a/pw_presubmit/py/pw_presubmit/cli.py b/pw_presubmit/py/pw_presubmit/cli.py
index 31566b8..bda9a7b 100644
--- a/pw_presubmit/py/pw_presubmit/cli.py
+++ b/pw_presubmit/py/pw_presubmit/cli.py
@@ -133,10 +133,16 @@
     """Adds common presubmit check options to an argument parser."""
 
     add_path_arguments(parser)
-    parser.add_argument('-k',
-                        '--keep-going',
-                        action='store_true',
-                        help='Continue instead of aborting when errors occur.')
+    parser.add_argument(
+        '-k',
+        '--keep-going',
+        action='store_true',
+        help='Continue running presubmit steps after a failure.')
+    parser.add_argument(
+        '--continue-after-build-error',
+        action='store_true',
+        help=('Within presubmit steps, continue running build steps after a '
+              'failure.'))
     parser.add_argument(
         '--output-directory',
         type=Path,
diff --git a/pw_presubmit/py/pw_presubmit/presubmit.py b/pw_presubmit/py/pw_presubmit/presubmit.py
index dcfaf7b..68a6f46 100644
--- a/pw_presubmit/py/pw_presubmit/presubmit.py
+++ b/pw_presubmit/py/pw_presubmit/presubmit.py
@@ -220,6 +220,7 @@
     luci: Optional[LuciContext]
     override_gn_args: Dict[str, str]
     num_jobs: Optional[int] = None
+    continue_after_build_error: bool = False
     _failed: bool = False
 
     @property
@@ -312,7 +313,8 @@
     """Runs a series of presubmit checks on a list of files."""
     def __init__(self, root: Path, repos: Sequence[Path],
                  output_directory: Path, paths: Sequence[Path],
-                 package_root: Path, override_gn_args: Dict[str, str]):
+                 package_root: Path, override_gn_args: Dict[str, str],
+                 continue_after_build_error: bool):
         self._root = root.resolve()
         self._repos = tuple(repos)
         self._output_directory = output_directory.resolve()
@@ -321,6 +323,7 @@
             tools.relative_paths(self._paths, self._root))
         self._package_root = package_root.resolve()
         self._override_gn_args = override_gn_args
+        self._continue_after_build_error = continue_after_build_error
 
     def run(self, program: Program, keep_going: bool = False) -> bool:
         """Executes a series of presubmit checks on the paths."""
@@ -430,6 +433,7 @@
                 paths=paths,
                 package_root=self._package_root,
                 override_gn_args=self._override_gn_args,
+                continue_after_build_error=self._continue_after_build_error,
                 luci=LuciContext.create_from_environment(),
             )
 
@@ -499,7 +503,8 @@
         package_root: Path = None,
         only_list_steps: bool = False,
         override_gn_args: Sequence[Tuple[str, str]] = (),
-        keep_going: bool = False) -> bool:
+        keep_going: bool = False,
+        continue_after_build_error: bool = False) -> bool:
     """Lists files in the current Git repo and runs a Presubmit with them.
 
     This changes the directory to the root of the Git repository after listing
@@ -524,7 +529,8 @@
         package_root: where to place package files
         only_list_steps: print step names instead of running them
         override_gn_args: additional GN args to set on steps
-        keep_going: whether to continue running checks if an error occurs
+        keep_going: continue running presubmit steps after a step fails
+        continue_after_build_error: continue building if a build step fails
 
     Returns:
         True if all presubmit checks succeeded
@@ -567,6 +573,7 @@
         paths=files,
         package_root=package_root,
         override_gn_args=dict(override_gn_args or {}),
+        continue_after_build_error=continue_after_build_error,
     )
 
     if only_list_steps:
