diff --git a/Trigger/TrigValidation/TrigValTools/bin/trig-art-result-parser.sh b/Trigger/TrigValidation/TrigValTools/bin/trig-art-result-parser.sh
new file mode 100755
index 0000000000000000000000000000000000000000..314f64752c2af4d32866a2634a042a91208e5d80
--- /dev/null
+++ b/Trigger/TrigValidation/TrigValTools/bin/trig-art-result-parser.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+#
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+#
+
+# This script is used to parse output (stdout) from locally-ran Trigger ART tests in order to define the final return
+# code of the test. Similarly to ART, it looks for lines starting with "art-result:" and checks the corresponding codes.
+# The script returs zero if all results are zero. Otherwise, it returns the first non-zero code it finds.
+#
+# Usage:
+# trig-art-result-parser.sh logfile [stepsToCheck]
+#
+# Example:
+# test_physics_pp_v7_build.sh > stdout.txt
+# retcode=`trig-art-result-parser.sh stdout.txt "athena CheckLog RegTest"`
+# echo "test_physics_pp_v7_build final result is $retcode"
+
+# The log file to parse
+logfile=$1
+
+# Step names to check (matching is done to the beginning of the name)
+stepsToCheck=($2)
+
+# If stepsToCheck not provided, set the default value
+if [ -z "$stepsToCheck" ]; then
+  stepsToCheck=(athena CheckLog)
+fi
+
+# Take only the lines starting from 'art-result:'
+results=`grep '^art-result:' $logfile`
+
+# Iterate over the result lines and parse each of them
+echo "========== art-result summary =========="
+retcode=0
+IFS=$'\n' # make newlines the only separator
+for result in $results; do
+  resultcode=`echo $result | cut -d ' ' -f 2`
+  stepname=`echo $result | cut -d ' ' -f 3`
+
+  # Ignore steps which we don't want to check
+  ignoreThisStep=1
+  for token in "${stepsToCheck[@]}"; do
+    if [[ "$stepname" == "$token"* ]]; then
+      ignoreThisStep=0
+      break
+    fi
+  done
+  if [ "$ignoreThisStep" -eq 1 ]; then
+    continue
+  fi
+
+  # Print the result and check the return code
+  echo $result
+  if [ "$resultcode" -ne "0" ] && [ "$retcode" -eq "0" ]; then
+    retcode=$resultcode
+    echo "ERROR: non-zero return code detected, will return $retcode as the final result"
+  fi
+done
+unset IFS
+
+exit $retcode