private List<Future<BlobDescriptor>> pushBaseImageLayers(
      List<Future<PreparedLayer>> baseLayers,
      ProgressEventDispatcher.Factory progressDispatcherFactory)
      throws InterruptedException, ExecutionException {
    return scheduleCallables(
        PushLayerStep.makeList(
            buildContext,
            progressDispatcherFactory,
            results.targetRegistryClient.get(),
            baseLayers));
  }
Run all steps and return a BuildResult after a build is completed.

@return a {@link BuildResult} with build metadata
@throws ExecutionException if an error occurred during asynchronous execution of steps
@throws InterruptedException if the build was interrupted while waiting for results
jib-core/src/main/java/com/google/cloud/tools/jib/builder/steps/StepsRunner.java