diff --git a/scripts/dashboard/common.cmake b/scripts/dashboard/common.cmake
index aa3649705e5fc695c27f5e36340e0756e0a9bb42..2f029d8b04f3c3694dd08e7d88a675735e299246 100644
--- a/scripts/dashboard/common.cmake
+++ b/scripts/dashboard/common.cmake
@@ -40,6 +40,8 @@
 #   dashboard_do_test      = True to enable the Test step
 #   dashboard_do_coverage  = True to enable coverage (ex: gcov)
 #   dashboard_do_memcheck  = True to enable memcheck (ex: valgrind)
+#   dashboard_do_submit    = Submit each step (ON)
+#   dashboard_do_submit_only = Only submit step results, do nto run them (OFF)
 
 #   CTEST_GIT_COMMAND     = path to git command-line client
 #   CTEST_BUILD_FLAGS     = build tool arguments (ex: -j2)
@@ -107,6 +109,14 @@ if(NOT DEFINED dashboard_fresh)
   endif()
 endif()
 
+if(NOT DEFINED dashboard_do_submit_only)
+  set(dashboard_do_submit_only FALSE)
+endif()
+
+if(NOT DEFINED dashboard_do_submit)
+  set(dashboard_do_submit TRUE)
+endif()
+
 if(NOT DEFINED CTEST_PROJECT_NAME)
   message(FATAL_ERROR "project-specific script including 'universal.cmake' should set CTEST_PROJECT_NAME")
 endif()
@@ -367,7 +377,9 @@ if(dashboard_fresh)
     dashboard_hook_start()
   endif()
   ctest_start(${dashboard_model} ${dashboard_track_arg})
-  ctest_submit(PARTS Start)
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Start)
+  endif()
   if(COMMAND dashboard_hook_started)
     dashboard_hook_started()
   endif()
@@ -377,85 +389,109 @@ endif()
 
 # Look for updates.
 if(dashboard_do_update)
-  if(COMMAND dashboard_hook_update)
-    dashboard_hook_update()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_update)
+      dashboard_hook_update()
+    endif()
+    message("Calling ctest_update...")
+    ctest_update(RETURN_VALUE count)
+    set(CTEST_CHECKOUT_COMMAND) # checkout on first iteration only
+    message("Found ${count} changed files")
   endif()
-  message("Calling ctest_update...")
-  ctest_update(RETURN_VALUE count)
-  set(CTEST_CHECKOUT_COMMAND) # checkout on first iteration only
-  message("Found ${count} changed files")
-
-  if(ADIOS_CTEST_SUBMIT_NOTES)
-    message("Submitting dashboard scripts as Notes")
-    # Send the main script as a note while submitting the Update part
-    set(CTEST_NOTES_FILES
-      "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}"
-      "${CMAKE_CURRENT_LIST_FILE}"
-    )
-    ctest_submit(PARTS Update Notes)
-  else()
-    message("Skipping notes submission for Update step")
-    ctest_submit(PARTS Update)
+
+  if(dashboard_do_submit)
+    if(ADIOS_CTEST_SUBMIT_NOTES)
+      message("Submitting dashboard scripts as Notes")
+      # Send the main script as a note while submitting the Update part
+      set(CTEST_NOTES_FILES
+        "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}"
+        "${CMAKE_CURRENT_LIST_FILE}"
+      )
+      ctest_submit(PARTS Update Notes)
+    else()
+      message("Skipping notes submission for Update step")
+      ctest_submit(PARTS Update)
+    endif()
   endif()
 endif()
 
 if(dashboard_do_configure)
-  if(COMMAND dashboard_hook_configure)
-    dashboard_hook_configure()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_configure)
+      dashboard_hook_configure()
+    endif()
+    message("Calling ctest_configure")
+    ctest_configure(${dashboard_configure_args})
   endif()
-  message("Calling ctest_configure")
-  ctest_configure(${dashboard_configure_args})
-  if(ADIOS_CTEST_SUBMIT_NOTES)
-    message("Submitting CMakeCache.txt as Notes")
-    set(CTEST_NOTES_FILES "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt")
-    ctest_submit(PARTS Configure Notes)
-  else()
-    message("Skipping notes submission for Configure step")
-    ctest_submit(PARTS Configure)
+  if(dashboard_do_submit)
+    if(ADIOS_CTEST_SUBMIT_NOTES)
+      message("Submitting CMakeCache.txt as Notes")
+      set(CTEST_NOTES_FILES "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt")
+      ctest_submit(PARTS Configure Notes)
+    else()
+      message("Skipping notes submission for Configure step")
+      ctest_submit(PARTS Configure)
+    endif()
   endif()
 endif()
 
 ctest_read_custom_files(${CTEST_BINARY_DIRECTORY})
 
 if(dashboard_do_build)
-  if(COMMAND dashboard_hook_build)
-    dashboard_hook_build()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_build)
+      dashboard_hook_build()
+    endif()
+    message("Calling ctest_build")
+    ctest_build()
+  endif()
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Build)
   endif()
-  message("Calling ctest_build")
-  ctest_build()
-  ctest_submit(PARTS Build)
 endif()
 
 if(dashboard_do_test)
-  if(COMMAND dashboard_hook_test)
-    dashboard_hook_test()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_test)
+      dashboard_hook_test()
+    endif()
+    message("Calling ctest_test")
+    ctest_test(${CTEST_TEST_ARGS} RETURN_VALUE TEST_RESULTS)
+    if(${TEST_RESULTS} EQUAL 0)
+      message("ctest test results return value: ${TEST_RESULTS}")
+    else()
+      message(SEND_ERROR "Some tests failed")
+    endif()
   endif()
-  message("Calling ctest_test")
-  ctest_test(${CTEST_TEST_ARGS} RETURN_VALUE TEST_RESULTS)
-  if(${TEST_RESULTS} EQUAL 0)
-    message("ctest test results return value: ${TEST_RESULTS}")
-  else()
-    message(SEND_ERROR "Some tests failed")
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Test)
   endif()
-  ctest_submit(PARTS Test)
 endif()
 
 if(dashboard_do_coverage)
-  if(COMMAND dashboard_hook_coverage)
-    dashboard_hook_coverage()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_coverage)
+      dashboard_hook_coverage()
+    endif()
+    message("Calling ctest_coverage")
+    ctest_coverage()
+  endif()
+  if(dashboard_do_submit)
+    ctest_submit(PARTS Coverage)
   endif()
-  message("Calling ctest_coverage")
-  ctest_coverage()
-  ctest_submit(PARTS Coverage)
 endif()
 
 if(dashboard_do_memcheck)
-  if(COMMAND dashboard_hook_memcheck)
-    dashboard_hook_memcheck()
+  if(NOT dashboard_do_submit_only)
+    if(COMMAND dashboard_hook_memcheck)
+      dashboard_hook_memcheck()
+    endif()
+    message("Calling ctest_memcheck")
+    ctest_memcheck()
+  endif()
+  if(dashboard_do_submit)
+    ctest_submit(PARTS MemCheck)
   endif()
-  message("Calling ctest_memcheck")
-  ctest_memcheck()
-  ctest_submit(PARTS MemCheck)
 endif()
 
 if(COMMAND dashboard_hook_end)