| #!/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}" |