| #!/bin/bash | 
 |  | 
 | # Run an obmc test robot program in a docker environment. | 
 |  | 
 | # This program is to be run from a Jenkins job such as 'Run-Robot-Program'. | 
 | # This program expects the Jenkins job to provide several parameter values | 
 | # as environment variables.  This includes but is not limited to the | 
 | # following: | 
 | # WORKSPACE | 
 | # robot_file_path | 
 | # git_dir_path | 
 | # post_clone_command | 
 | # openbmc_host | 
 | # openbmc_username | 
 | # openbmc_password | 
 | # additional_parms | 
 |  | 
 | # Source other bash files containing required functions. | 
 | source_files="jenkins_funcs.sh" | 
 | pathlist=$(/usr/bin/which $source_files) || exit 1 | 
 | for filepath in $pathlist ; do source $filepath || exit 1 ; done | 
 |  | 
 | # Fail if an unset variable is accessed. | 
 | set -u | 
 |  | 
 | # Assign default values. | 
 | WORKSPACE="${WORKSPACE:-${HOME}}" | 
 | git_dir_path="${git_dir_path:-${WORKSPACE}}" | 
 |  | 
 | # Follow the convention of ensuring that dir paths end with slash. | 
 | WORKSPACE="${WORKSPACE%/}/" | 
 | git_dir_path="${git_dir_path%/}/" | 
 |  | 
 |  | 
 | function mainf { | 
 |  | 
 |   # Delete leftover output from prior runs. | 
 |   rm -f ${WORKSPACE}*.html ${WORKSPACE}*.xml || return 1 | 
 |   process_git "${git_dir_path}" "${post_clone_command-}" || return 1 | 
 |   process_docker "${git_dir_path}" || return 1 | 
 |  | 
 |   if [ -z "${robot_file_path-}" ] ; then | 
 |     echo "robot_file_path is blank so no there is no need to continue." | 
 |     return | 
 |   fi | 
 |  | 
 |   run_docker_robot "${robot_file_path}" || return 1 | 
 |  | 
 | } | 
 |  | 
 |  | 
 | # Main | 
 |  | 
 |   mainf "${@}" | 
 |   rc="${?}" | 
 |   exit "${rc}" |